summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Doxyfile.in394
-rw-r--r--Makefile.in5
-rw-r--r--NEWS180
-rw-r--r--README.md3
-rwxr-xr-xconfigure1136
-rw-r--r--configure.ac201
-rw-r--r--debian/changelog180
-rw-r--r--debian/control50
-rw-r--r--debian/gbp.conf2
-rw-r--r--debian/knot-exporter.install2
-rw-r--r--debian/knot.install1
l---------debian/libknot14.symbols.alpha1
l---------debian/libknot14.symbols.arc1
l---------debian/libknot14.symbols.hppa1
l---------debian/libknot14.symbols.hurd-amd641
-rw-r--r--debian/libknot14.symbols.hurd-i386251
l---------debian/libknot14.symbols.ia641
l---------debian/libknot14.symbols.loong641
l---------debian/libknot14.symbols.m68k1
l---------debian/libknot14.symbols.powerpc1
l---------debian/libknot14.symbols.sh41
l---------debian/libknot14.symbols.sparc641
l---------debian/libknot14.symbols.x321
-rw-r--r--debian/libknot15.install (renamed from debian/libknot14.install)0
-rw-r--r--debian/libknot15.symbols (renamed from debian/libknot14.symbols)50
l---------debian/libknot15.symbols.alpha1
l---------debian/libknot15.symbols.armel1
l---------debian/libknot15.symbols.hppa1
l---------debian/libknot15.symbols.hurd-amd641
-rw-r--r--debian/libknot15.symbols.hurd-i386 (renamed from distro/pkg/deb-noxdp/libknot14.symbols)23
l---------debian/libknot15.symbols.loong641
l---------debian/libknot15.symbols.m68k1
l---------debian/libknot15.symbols.powerpc1
l---------debian/libknot15.symbols.sh41
l---------debian/libknot15.symbols.sparc641
l---------debian/libknot15.symbols.x321
-rwxr-xr-xdebian/rules62
-rw-r--r--debian/ufw/knot4
-rw-r--r--distro/Makefile.in5
-rw-r--r--distro/config/apkg.toml8
-rw-r--r--distro/pkg/deb-nolibxdp/control14
-rw-r--r--distro/pkg/deb-nolibxdp/knot.install1
-rw-r--r--distro/pkg/deb-nolibxdp/libknot14.symbols277
-rw-r--r--distro/pkg/deb-nolibxdp/libknot15.install (renamed from distro/pkg/deb-nolibxdp/libknot14.install)0
-rw-r--r--distro/pkg/deb-nolibxdp/libknot15.symbols290
-rwxr-xr-xdistro/pkg/deb-nolibxdp/rules6
-rw-r--r--distro/pkg/deb-nolibxdp/ufw/knot4
-rw-r--r--distro/pkg/deb-noxdp/changelog6
-rw-r--r--distro/pkg/deb-noxdp/clean2
-rw-r--r--distro/pkg/deb-noxdp/compat1
-rw-r--r--distro/pkg/deb-noxdp/control287
-rw-r--r--distro/pkg/deb-noxdp/copyright179
-rw-r--r--distro/pkg/deb-noxdp/cz.nic.knotd.conf9
-rw-r--r--distro/pkg/deb-noxdp/docs1
-rw-r--r--distro/pkg/deb-noxdp/knot-dnssecutils.install3
-rw-r--r--distro/pkg/deb-noxdp/knot-dnssecutils.manpages3
-rw-r--r--distro/pkg/deb-noxdp/knot-dnsutils.install2
-rw-r--r--distro/pkg/deb-noxdp/knot-dnsutils.manpages2
-rw-r--r--distro/pkg/deb-noxdp/knot-doc.install1
-rw-r--r--distro/pkg/deb-noxdp/knot-doc.links5
-rw-r--r--distro/pkg/deb-noxdp/knot-exporter.install3
-rw-r--r--distro/pkg/deb-noxdp/knot-host.install1
-rw-r--r--distro/pkg/deb-noxdp/knot-host.manpages1
-rw-r--r--distro/pkg/deb-noxdp/knot-module-dnstap.install1
-rw-r--r--distro/pkg/deb-noxdp/knot-module-geoip.install1
-rw-r--r--distro/pkg/deb-noxdp/knot.dirs1
-rw-r--r--distro/pkg/deb-noxdp/knot.init149
-rw-r--r--distro/pkg/deb-noxdp/knot.install8
-rw-r--r--distro/pkg/deb-noxdp/knot.manpages6
-rw-r--r--distro/pkg/deb-noxdp/knot.postinst16
-rw-r--r--distro/pkg/deb-noxdp/knot.postrm21
-rw-r--r--distro/pkg/deb-noxdp/knot.service30
-rw-r--r--distro/pkg/deb-noxdp/libdnssec9.install1
-rw-r--r--distro/pkg/deb-noxdp/libdnssec9.symbols96
-rw-r--r--distro/pkg/deb-noxdp/libknot-dev.install3
-rw-r--r--distro/pkg/deb-noxdp/libzscanner4.install1
-rw-r--r--distro/pkg/deb-noxdp/libzscanner4.symbols12
-rw-r--r--distro/pkg/deb-noxdp/not-installed1
-rw-r--r--distro/pkg/deb-noxdp/patches/05-revert-mod-dnstap-TCP-sink.patch160
-rw-r--r--distro/pkg/deb-noxdp/patches/series1
-rwxr-xr-xdistro/pkg/deb-noxdp/prepare-environment38
-rw-r--r--distro/pkg/deb-noxdp/python3-libknot.install2
-rwxr-xr-xdistro/pkg/deb-noxdp/rules95
-rw-r--r--distro/pkg/deb-noxdp/source/format1
-rwxr-xr-xdistro/pkg/deb-noxdp/tests/authoritative-server150
-rw-r--r--distro/pkg/deb-noxdp/tests/control13
-rwxr-xr-xdistro/pkg/deb-noxdp/tests/kdig14
-rw-r--r--distro/pkg/deb-noxdp/ufw/knot4
-rw-r--r--distro/pkg/deb-noxdp/watch4
-rw-r--r--distro/pkg/deb/control13
-rw-r--r--distro/pkg/deb/knot.install1
-rw-r--r--distro/pkg/deb/libknot14.install1
-rw-r--r--distro/pkg/deb/libknot14.symbols277
-rw-r--r--distro/pkg/deb/libknot15.install (renamed from distro/pkg/deb-noxdp/libknot14.install)0
-rw-r--r--distro/pkg/deb/libknot15.symbols290
-rwxr-xr-xdistro/pkg/deb/rules6
-rw-r--r--distro/pkg/deb/ufw/knot4
-rw-r--r--distro/pkg/el-7/01-revert-AC_PROG_CC.patch18
-rw-r--r--distro/pkg/el-7/02-fix-compilation-by-using-SHA-1.patch67
-rw-r--r--distro/pkg/el-7/03-doc-don-t-try-to-import-sphinx_panels.patch25
-rw-r--r--distro/pkg/el-7/04-revert-don-t-share-PKCS-11-private-keys.patch160
-rw-r--r--distro/pkg/el-7/05-revert-mod-dnstap-TCP-sink.patch160
-rw-r--r--distro/pkg/el-7/knot.service25
-rw-r--r--distro/pkg/el-7/knot.spec334
-rw-r--r--distro/pkg/el-7/knot.tmpfiles3
-rw-r--r--distro/pkg/rpm/knot.spec2
-rw-r--r--doc/Makefile.am109
-rw-r--r--doc/Makefile.in275
-rw-r--r--doc/appendices.rst21
-rw-r--r--doc/conf.py5
-rw-r--r--doc/configuration.rst75
-rw-r--r--doc/installation.rst5
-rw-r--r--doc/introduction.rst6
-rw-r--r--doc/man/kcatalogprint.8 (renamed from doc/man/kcatalogprint.8in)9
-rw-r--r--doc/man/kdig.1 (renamed from doc/man/kdig.1in)19
-rw-r--r--doc/man/keymgr.8 (renamed from doc/man/keymgr.8in)38
-rw-r--r--doc/man/khost.1 (renamed from doc/man/khost.1in)9
-rw-r--r--doc/man/kjournalprint.8 (renamed from doc/man/kjournalprint.8in)14
-rw-r--r--doc/man/knot.conf.5 (renamed from doc/man/knot.conf.5in)138
-rw-r--r--doc/man/knotc.8 (renamed from doc/man/knotc.8in)25
-rw-r--r--doc/man/knotd.8 (renamed from doc/man/knotd.8in)13
-rw-r--r--doc/man/knsec3hash.1 (renamed from doc/man/knsec3hash.1in)24
-rw-r--r--doc/man/knsupdate.1 (renamed from doc/man/knsupdate.1in)78
-rw-r--r--doc/man/kxdpgun.8 (renamed from doc/man/kxdpgun.8in)31
-rw-r--r--doc/man/kzonecheck.1 (renamed from doc/man/kzonecheck.1in)7
-rw-r--r--doc/man/kzonesign.1 (renamed from doc/man/kzonesign.1in)11
-rw-r--r--doc/man_kcatalogprint.rst3
-rw-r--r--doc/man_kdig.rst9
-rw-r--r--doc/man_keymgr.rst20
-rw-r--r--doc/man_khost.rst3
-rw-r--r--doc/man_kjournalprint.rst6
-rw-r--r--doc/man_knotc.rst15
-rw-r--r--doc/man_knotd.rst3
-rw-r--r--doc/man_knsec3hash.rst12
-rw-r--r--doc/man_knsupdate.rst74
-rw-r--r--doc/man_kxdpgun.rst25
-rw-r--r--doc/man_kzonecheck.rst3
-rw-r--r--doc/man_kzonesign.rst3
-rw-r--r--doc/migration.rst90
-rw-r--r--doc/operation.rst34
-rw-r--r--doc/reference.rst132
-rw-r--r--doc/requirements.rst8
-rwxr-xr-xltmain.sh28
-rw-r--r--python/Makefile.in5
-rw-r--r--python/knot_exporter/Makefile.in5
-rw-r--r--python/libknot/Makefile.in5
-rw-r--r--python/libknot/libknot/probe.py10
-rw-r--r--samples/Makefile.in5
-rw-r--r--src/Makefile.in494
-rw-r--r--src/config.h.in44
-rw-r--r--src/contrib/Makefile.inc1
-rw-r--r--src/contrib/asan.h13
-rw-r--r--src/contrib/atomic.h73
-rw-r--r--src/contrib/files.c23
-rw-r--r--src/contrib/files.h9
-rw-r--r--src/contrib/json.c7
-rw-r--r--src/contrib/json.h7
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c2
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.h5
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c302
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h11
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c8
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c20
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.h10
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_idtr.c17
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_idtr.h29
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c199
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h46
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_macro.h2
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c168
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h59
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c4
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.h9
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.c47
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.h65
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c3
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c2
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.h2
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c15
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.h18
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c18
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h8
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h1
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c29
-rw-r--r--src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h38
-rw-r--r--src/contrib/libngtcp2/ngtcp2/version.h4
-rw-r--r--src/contrib/mempattern.c10
-rw-r--r--src/contrib/spinlock.h80
-rw-r--r--src/contrib/string.c20
-rw-r--r--src/contrib/string.h4
-rw-r--r--src/contrib/time.h5
-rw-r--r--src/knot/Makefile.inc12
-rw-r--r--src/knot/catalog/catalog_db.c4
-rw-r--r--src/knot/catalog/catalog_update.c4
-rw-r--r--src/knot/catalog/interpret.c4
-rw-r--r--src/knot/common/dbus.c243
-rw-r--r--src/knot/common/dbus.h86
-rw-r--r--src/knot/common/fdset.c9
-rw-r--r--src/knot/common/fdset.h13
-rw-r--r--src/knot/common/stats.c356
-rw-r--r--src/knot/common/stats.h61
-rw-r--r--src/knot/common/systemd.c98
-rw-r--r--src/knot/common/systemd.h66
-rw-r--r--src/knot/conf/base.c19
-rw-r--r--src/knot/conf/base.h3
-rw-r--r--src/knot/conf/conf.c15
-rw-r--r--src/knot/conf/conf.h17
-rw-r--r--src/knot/conf/schema.c37
-rw-r--r--src/knot/conf/schema.h26
-rw-r--r--src/knot/conf/tools.c93
-rw-r--r--src/knot/ctl/commands.c556
-rw-r--r--src/knot/ctl/commands.h4
-rw-r--r--src/knot/ctl/process.c17
-rw-r--r--src/knot/ctl/process.h12
-rw-r--r--src/knot/dnssec/context.c17
-rw-r--r--src/knot/dnssec/context.h16
-rw-r--r--src/knot/dnssec/ds_query.c4
-rw-r--r--src/knot/dnssec/kasp/kasp_zone.c22
-rw-r--r--src/knot/dnssec/kasp/kasp_zone.h4
-rw-r--r--src/knot/dnssec/key-events.c10
-rw-r--r--src/knot/dnssec/key_records.c23
-rw-r--r--src/knot/dnssec/key_records.h6
-rw-r--r--src/knot/dnssec/nsec-chain.c21
-rw-r--r--src/knot/dnssec/rrset-sign.c17
-rw-r--r--src/knot/dnssec/rrset-sign.h6
-rw-r--r--src/knot/dnssec/zone-events.c95
-rw-r--r--src/knot/dnssec/zone-events.h25
-rw-r--r--src/knot/dnssec/zone-sign.c98
-rw-r--r--src/knot/dnssec/zone-sign.h14
-rw-r--r--src/knot/events/events.c3
-rw-r--r--src/knot/events/events.h3
-rw-r--r--src/knot/events/handlers.h4
-rw-r--r--src/knot/events/handlers/dnskey_sync.c4
-rw-r--r--src/knot/events/handlers/ds_push.c6
-rw-r--r--src/knot/events/handlers/load.c7
-rw-r--r--src/knot/events/handlers/notify.c4
-rw-r--r--src/knot/events/handlers/refresh.c66
-rw-r--r--src/knot/events/handlers/update.c86
-rw-r--r--src/knot/events/handlers/validate.c34
-rw-r--r--src/knot/events/replan.c5
-rw-r--r--src/knot/include/module.h55
-rw-r--r--src/knot/modules/authsignal/authsignal.rst6
-rw-r--r--src/knot/modules/cookies/cookies.c19
-rw-r--r--src/knot/modules/dnsproxy/dnsproxy.c52
-rw-r--r--src/knot/modules/probe/probe.c13
-rw-r--r--src/knot/modules/rrl/Makefile.inc9
-rw-r--r--src/knot/modules/rrl/functions.c589
-rw-r--r--src/knot/modules/rrl/functions.h88
-rw-r--r--src/knot/modules/rrl/kru-avx2.c66
-rw-r--r--src/knot/modules/rrl/kru-generic.c20
-rw-r--r--src/knot/modules/rrl/kru.h90
-rw-r--r--src/knot/modules/rrl/kru.inc.c615
-rw-r--r--src/knot/modules/rrl/rrl.c243
-rw-r--r--src/knot/modules/rrl/rrl.rst169
-rw-r--r--src/knot/modules/stats/stats.c14
-rw-r--r--src/knot/modules/stats/stats.rst2
-rw-r--r--src/knot/nameserver/axfr.c6
-rw-r--r--src/knot/nameserver/axfr.h6
-rw-r--r--src/knot/nameserver/internet.c50
-rw-r--r--src/knot/nameserver/internet.h17
-rw-r--r--src/knot/nameserver/ixfr.c10
-rw-r--r--src/knot/nameserver/ixfr.h8
-rw-r--r--src/knot/nameserver/log.h2
-rw-r--r--src/knot/nameserver/notify.c6
-rw-r--r--src/knot/nameserver/notify.h7
-rw-r--r--src/knot/nameserver/nsec_proofs.c6
-rw-r--r--src/knot/nameserver/process_query.c83
-rw-r--r--src/knot/nameserver/process_query.h13
-rw-r--r--src/knot/nameserver/query_module.c50
-rw-r--r--src/knot/nameserver/query_module.h31
-rw-r--r--src/knot/nameserver/update.c35
-rw-r--r--src/knot/nameserver/update.h6
-rw-r--r--src/knot/nameserver/xfr.h6
-rw-r--r--src/knot/query/quic-requestor.c13
-rw-r--r--src/knot/query/quic-requestor.h8
-rw-r--r--src/knot/query/requestor.c62
-rw-r--r--src/knot/query/requestor.h38
-rw-r--r--src/knot/query/tls-requestor.c59
-rw-r--r--src/knot/query/tls-requestor.h51
-rw-r--r--src/knot/server/handler.c13
-rw-r--r--src/knot/server/handler.h35
-rw-r--r--src/knot/server/quic-handler.c11
-rw-r--r--src/knot/server/server.c220
-rw-r--r--src/knot/server/server.h17
-rw-r--r--src/knot/server/tcp-handler.c115
-rw-r--r--src/knot/server/udp-handler.c25
-rw-r--r--src/knot/server/xdp-handler.c61
-rw-r--r--src/knot/updates/acl.c29
-rw-r--r--src/knot/updates/acl.h33
-rw-r--r--src/knot/updates/ddns.c181
-rw-r--r--src/knot/updates/ddns.h14
-rw-r--r--src/knot/updates/zone-update.c26
-rw-r--r--src/knot/updates/zone-update.h2
-rw-r--r--src/knot/zone/backup.c10
-rw-r--r--src/knot/zone/backup.h6
-rw-r--r--src/knot/zone/backup_dir.c42
-rw-r--r--src/knot/zone/contents.c10
-rw-r--r--src/knot/zone/contents.h4
-rw-r--r--src/knot/zone/digest.c6
-rw-r--r--src/knot/zone/semantic-check.c10
-rw-r--r--src/knot/zone/semantic-check.h3
-rw-r--r--src/knot/zone/zone-load.c7
-rw-r--r--src/knot/zone/zone-load.h4
-rw-r--r--src/knot/zone/zone-tree.c4
-rw-r--r--src/knot/zone/zone.c10
-rw-r--r--src/knot/zone/zone.h6
-rw-r--r--src/knot/zone/zonedb-load.c10
-rw-r--r--src/knot/zone/zonedb.c4
-rw-r--r--src/knot/zone/zonefile.c21
-rw-r--r--src/knot/zone/zonefile.h8
-rw-r--r--src/libdnssec/Makefile.inc3
-rw-r--r--src/libdnssec/key/algorithm.c12
-rw-r--r--src/libdnssec/key/convert.c22
-rw-r--r--src/libdnssec/pem.c21
-rw-r--r--src/libdnssec/sample_keys.h (renamed from tests/libdnssec/sample_keys.h)4
-rw-r--r--src/libdnssec/sign/sign.c41
-rw-r--r--src/libdnssec/version.h4
-rwxr-xr-xsrc/libknot/Makefile.inc4
-rw-r--r--src/libknot/attribute.h14
-rw-r--r--src/libknot/codes.c6
-rw-r--r--src/libknot/consts.h7
-rw-r--r--src/libknot/control/control.c23
-rw-r--r--src/libknot/control/control.h24
-rw-r--r--src/libknot/descriptor.c4
-rw-r--r--src/libknot/descriptor.h4
-rw-r--r--src/libknot/dname.c36
-rw-r--r--src/libknot/dname.h9
-rw-r--r--src/libknot/errcode.h6
-rw-r--r--src/libknot/error.c6
-rw-r--r--src/libknot/packet/pkt.h1
-rw-r--r--src/libknot/packet/rrset-wire.c45
-rw-r--r--src/libknot/packet/rrset-wire.h6
-rw-r--r--src/libknot/packet/wire.h21
-rw-r--r--src/libknot/quic/quic.c343
-rw-r--r--src/libknot/quic/quic.h59
-rw-r--r--src/libknot/quic/quic_conn.c35
-rw-r--r--src/libknot/quic/quic_conn.h20
-rw-r--r--src/libknot/quic/tls.c262
-rw-r--r--src/libknot/quic/tls.h135
-rw-r--r--src/libknot/quic/tls_common.c472
-rw-r--r--src/libknot/quic/tls_common.h134
-rw-r--r--src/libknot/rrset-dump.c147
-rw-r--r--src/libknot/rrtype/tsig.c6
-rw-r--r--src/libknot/version.h4
-rw-r--r--src/libknot/xdp/Makefile.in5
-rw-r--r--src/libknot/xdp/bpf-user.c6
-rw-r--r--src/libknot/xdp/bpf-user.h12
-rw-r--r--src/libknot/xdp/tcp.c263
-rw-r--r--src/libknot/xdp/tcp.h13
-rw-r--r--src/libknot/xdp/xdp.c253
-rw-r--r--src/libknot/xdp/xdp.h58
-rw-r--r--src/libknot/yparser/ypschema.h2
-rw-r--r--src/libknot/yparser/yptrafo.c60
-rw-r--r--src/libzscanner/scanner.c.g264385
-rw-r--r--src/libzscanner/scanner.c.t011131
-rw-r--r--src/libzscanner/scanner_body.rl28
-rw-r--r--src/libzscanner/version.h4
-rw-r--r--src/utils/Makefile.inc8
-rw-r--r--src/utils/common/msg.h16
-rw-r--r--src/utils/common/netio.c7
-rw-r--r--src/utils/common/params.c2
-rw-r--r--src/utils/common/params.h13
-rw-r--r--src/utils/common/quic.h4
-rw-r--r--src/utils/common/tls.c7
-rw-r--r--src/utils/kcatalogprint/main.c14
-rw-r--r--src/utils/kdig/kdig_params.c13
-rw-r--r--src/utils/keymgr/bind_privkey.c8
-rw-r--r--src/utils/keymgr/keystore.c395
-rw-r--r--src/utils/keymgr/keystore.h24
-rw-r--r--src/utils/keymgr/main.c49
-rw-r--r--src/utils/keymgr/offline_ksk.c33
-rw-r--r--src/utils/khost/khost_params.c10
-rw-r--r--src/utils/kjournalprint/main.c17
-rw-r--r--src/utils/knotc/commands.c9
-rw-r--r--src/utils/knotc/main.c6
-rw-r--r--src/utils/knotd/main.c256
-rw-r--r--src/utils/knsec3hash/knsec3hash.c12
-rw-r--r--src/utils/knsupdate/knsupdate_exec.c12
-rw-r--r--src/utils/knsupdate/knsupdate_params.c160
-rw-r--r--src/utils/knsupdate/knsupdate_params.h8
-rw-r--r--src/utils/kxdpgun/load_queries.c241
-rw-r--r--src/utils/kxdpgun/load_queries.h14
-rw-r--r--src/utils/kxdpgun/main.c594
-rw-r--r--src/utils/kxdpgun/main.h87
-rw-r--r--src/utils/kxdpgun/stats.c292
-rw-r--r--src/utils/kxdpgun/stats.h78
-rw-r--r--src/utils/kzonecheck/main.c10
-rw-r--r--src/utils/kzonecheck/zone_check.c4
-rw-r--r--src/utils/kzonecheck/zone_check.h2
-rw-r--r--src/utils/kzonesign/main.c10
-rw-r--r--tests-fuzz/Makefile.am6
-rw-r--r--tests-fuzz/Makefile.in13
-rw-r--r--tests/Makefile.am5
-rw-r--r--tests/Makefile.in105
-rw-r--r--tests/contrib/test_atomic.c165
-rw-r--r--tests/knot/semantic_check_data/dnskey_keytags.more31
-rw-r--r--tests/knot/semantic_check_data/nsec_nonauth.invalid27
-rw-r--r--tests/knot/semantic_check_data/soa.duplicate5
-rw-r--r--tests/knot/semantic_check_data/soa.missing3
-rw-r--r--tests/knot/semantic_check_data/soa.multiple5
-rw-r--r--tests/knot/test_confdb.c4
-rw-r--r--tests/knot/test_confio.c7
-rw-r--r--tests/knot/test_journal.c2
-rw-r--r--tests/knot/test_query_module.c15
-rw-r--r--tests/knot/test_semantic_check.in7
-rw-r--r--tests/libdnssec/test_key.c6
-rw-r--r--tests/libdnssec/test_key_algorithm.c6
-rw-r--r--tests/libdnssec/test_key_ds.c8
-rw-r--r--tests/libdnssec/test_keystore_pkcs11.c5
-rw-r--r--tests/libdnssec/test_sign.c14
-rw-r--r--tests/libknot/test_control.c4
-rw-r--r--tests/libknot/test_xdp_tcp.c62
-rw-r--r--tests/libknot/test_yptrafo.c7
-rw-r--r--tests/libzscanner/TESTS1
-rw-r--r--tests/libzscanner/data/57_SVCB.in9
-rw-r--r--tests/libzscanner/data/57_SVCB.out28
-rw-r--r--tests/libzscanner/data/59_WALLET.in14
-rw-r--r--tests/libzscanner/data/59_WALLET.out32
-rw-r--r--tests/libzscanner/test_zscanner.in2
-rw-r--r--tests/modules/test_rrl.c482
-rw-r--r--tests/tap/files.c4
421 files changed, 50854 insertions, 45962 deletions
diff --git a/Doxyfile.in b/Doxyfile.in
index da386e3..51f724b 100644
--- a/Doxyfile.in
+++ b/Doxyfile.in
@@ -1,4 +1,4 @@
-# Doxyfile 1.8.17
+# Doxyfile 1.9.1
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
@@ -17,11 +17,11 @@
# Project related configuration options
#---------------------------------------------------------------------------
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all text
-# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-# built into libc) for the transcoding. See https://www.gnu.org/software/libiconv
-# for the list of possible encodings.
+# This tag specifies the encoding used for all characters in the configuration
+# file that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# https://www.gnu.org/software/libiconv/ for the list of possible encodings.
# The default value is: UTF-8.
DOXYFILE_ENCODING = UTF-8
@@ -93,6 +93,14 @@ ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
+# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all generated output in the proper direction.
+# Possible values are: None, LTR, RTL and Context.
+# The default value is: None.
+
+OUTPUT_TEXT_DIRECTION = None
+
# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
# descriptions after the members that are listed in the file and class
# documentation (similar to Javadoc). Set to NO to disable this.
@@ -189,6 +197,16 @@ SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
+# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line
+# such as
+# /***************
+# as being the beginning of a Javadoc-style comment "banner". If set to NO, the
+# Javadoc-style will behave just like regular comments and it will not be
+# interpreted by doxygen.
+# The default value is: NO.
+
+JAVADOC_BANNER = NO
+
# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
# line (until the first dot) of a Qt-style comment as the brief description. If
# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
@@ -209,6 +227,14 @@ QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
+# By default Python docstrings are displayed as preformatted text and doxygen's
+# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the
+# doxygen's special commands can be used and the contents of the docstring
+# documentation blocks is shown as doxygen documentation.
+# The default value is: YES.
+
+PYTHON_DOCSTRING = YES
+
# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
# documentation from any documented member that it re-implements.
# The default value is: YES.
@@ -236,16 +262,15 @@ TAB_SIZE = 8
# will allow you to put the command \sideeffect (or @sideeffect) in the
# documentation, which will result in a user-defined paragraph with heading
# "Side Effects:". You can put \n's in the value part of an alias to insert
-# newlines.
+# newlines (in the resulting output). You can put ^^ in the value part of an
+# alias to insert a newline as if a physical newline was in the original file.
+# When you need a literal { or } or , in the value part of an alias you have to
+# escape them by means of a backslash (\), this can lead to conflicts with the
+# commands \{ and \} for these it is advised to use the version @{ and @} or use
+# a double escape (\\{ and \\})
ALIASES =
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
# instance, some of the names that are used will be different. The list of all
@@ -274,28 +299,40 @@ OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
+# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice
+# sources only. Doxygen will then generate output that is more tailored for that
+# language. For instance, namespaces will be presented as modules, types will be
+# separated into more groups, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_SLICE = NO
+
# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension, and
-# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
-# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
-# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
-# Fortran. In the later case the parser tries to guess whether the code is fixed
-# or free formatted code, this is the default for Fortran type files), VHDL. For
-# instance to make doxygen treat .inc files as Fortran files (default is PHP),
-# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
+# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL,
+# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
+# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
+# tries to guess whether the code is fixed or free formatted code, this is the
+# default for Fortran type files). For instance to make doxygen treat .inc files
+# as Fortran files (default is PHP), and .f files as C (default is Fortran),
+# use: inc=Fortran f=C.
#
# Note: For files without extension you can use no_extension as a placeholder.
#
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
-# the files are not read by doxygen.
+# the files are not read by doxygen. When specifying no_extension you should add
+# * to the FILE_PATTERNS.
+#
+# Note see also the list of default file extension mappings.
EXTENSION_MAPPING =
# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# documentation. See https://daringfireball.net/projects/markdown/ for details.
# The output of markdown processing is further processed by doxygen, so you can
# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
# case of backward compatibilities issues.
@@ -303,6 +340,15 @@ EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES
+# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
+# to that level are automatically included in the table of contents, even if
+# they do not have an id attribute.
+# Note: This feature currently applies only to Markdown headings.
+# Minimum value: 0, maximum value: 99, default value: 5.
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
+
+TOC_INCLUDE_HEADINGS = 5
+
# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
# be prevented in individual cases by putting a % sign in front of the word or
@@ -328,7 +374,7 @@ BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen
# will parse them like normal C++ but will assume all classes use public instead
# of private inheritance when no explicit protection keyword is present.
# The default value is: NO.
@@ -414,6 +460,19 @@ TYPEDEF_HIDES_STRUCT = YES
LOOKUP_CACHE_SIZE = 0
+# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use
+# during processing. When set to 0 doxygen will based this on the number of
+# cores available in the system. You can set it explicitly to a value larger
+# than 0 to get more control over the balance between CPU load and processing
+# speed. At this moment only the input processing can be done using multiple
+# threads. Since this is still an experimental feature the default is set to 1,
+# which efficively disables parallel processing. Please report any issues you
+# encounter. Generating dot graphs in parallel is controlled by the
+# DOT_NUM_THREADS setting.
+# Minimum value: 0, maximum value: 32, default value: 1.
+
+NUM_PROC_THREADS = 1
+
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
@@ -434,6 +493,12 @@ EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
+# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual
+# methods of a class will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIV_VIRTUAL = NO
+
# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
# scope will be included in the documentation.
# The default value is: NO.
@@ -471,6 +536,13 @@ EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
+# If this flag is set to YES, the name of an unnamed parameter in a declaration
+# will be determined by the corresponding definition. By default unnamed
+# parameters remain unnamed in the output.
+# The default value is: YES.
+
+RESOLVE_UNNAMED_PARAMS = YES
+
# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
# undocumented members inside documented classes or files. If set to NO these
# members will be included in the various overviews, but no documentation
@@ -488,8 +560,8 @@ HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
-# (class|struct|union) declarations. If set to NO, these declarations will be
-# included in the documentation.
+# declarations. If set to NO, these declarations will be included in the
+# documentation.
# The default value is: NO.
HIDE_FRIEND_COMPOUNDS = NO
@@ -508,11 +580,18 @@ HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES, upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
+# With the correct setting of option CASE_SENSE_NAMES doxygen will better be
+# able to match the capabilities of the underlying filesystem. In case the
+# filesystem is case sensitive (i.e. it supports files in the same directory
+# whose names only differ in casing), the option must be set to YES to properly
+# deal with such files in case they appear in the input. For filesystems that
+# are not case sensitive the option should be be set to NO to properly deal with
+# output files written for symbols that only differ in casing, such as for two
+# classes, one named CLASS and the other named Class, and to also support
+# references to files without having to specify the exact matching casing. On
+# Windows (including Cygwin) and MacOS, users should typically set this option
+# to NO, whereas on Linux or other Unix flavors it should typically be set to
+# YES.
# The default value is: system dependent.
CASE_SENSE_NAMES = NO
@@ -699,7 +778,7 @@ LAYOUT_FILE = doc/doxygen/DoxygenLayout.xml
# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
# the reference definitions. This must be a list of .bib files. The .bib
# extension is automatically appended if omitted. This requires the bibtex tool
-# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.
# For LaTeX the style of the bibliography can be controlled using
# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
# search path. See also \cite for info how to create references.
@@ -744,13 +823,17 @@ WARN_IF_DOC_ERROR = YES
# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
# are documented, but have no documentation for their parameters or return
# value. If set to NO, doxygen will only warn about wrong or incomplete
-# parameter documentation, but not about the absence of documentation.
+# parameter documentation, but not about the absence of documentation. If
+# EXTRACT_ALL is set to YES then this flag will automatically be disabled.
# The default value is: NO.
WARN_NO_PARAMDOC = NO
# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
-# a warning is encountered.
+# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS
+# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but
+# at the end of the doxygen process doxygen will return with a non-zero status.
+# Possible values are: NO, YES and FAIL_ON_WARNINGS.
# The default value is: NO.
WARN_AS_ERROR = NO
@@ -790,8 +873,8 @@ INPUT = doc/doxygen/Doxy.page.h \
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-# documentation (see: https://www.gnu.org/software/libiconv) for the list of
-# possible encodings.
+# documentation (see:
+# https://www.gnu.org/software/libiconv/) for the list of possible encodings.
# The default value is: UTF-8.
INPUT_ENCODING = UTF-8
@@ -804,11 +887,15 @@ INPUT_ENCODING = UTF-8
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# read by doxygen.
#
+# Note the list of default checked file patterns might differ from the list of
+# default file extension mappings.
+#
# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
-# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl,
-# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js.
+# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment),
+# *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl,
+# *.ucf, *.qsf and *.ice.
FILE_PATTERNS = *.h
@@ -963,7 +1050,7 @@ INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
-# function all documented functions referencing it will be listed.
+# entity all documented functions referencing it will be listed.
# The default value is: NO.
REFERENCED_BY_RELATION = NO
@@ -1000,7 +1087,7 @@ SOURCE_TOOLTIPS = YES
#
# To use it do the following:
# - Install the latest version of global
-# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file
# - Make sure the INPUT points to the root of the source tree
# - Run doxygen as normal
#
@@ -1023,16 +1110,22 @@ USE_HTAGS = NO
VERBATIM_HEADERS = YES
# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
-# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
-# cost of reduced performance. This can be particularly helpful with template
-# rich C++ code for which doxygen's built-in parser lacks the necessary type
-# information.
+# clang parser (see:
+# http://clang.llvm.org/) for more accurate parsing at the cost of reduced
+# performance. This can be particularly helpful with template rich C++ code for
+# which doxygen's built-in parser lacks the necessary type information.
# Note: The availability of this option depends on whether or not doxygen was
-# generated with the -Duse-libclang=ON option for CMake.
+# generated with the -Duse_libclang=ON option for CMake.
# The default value is: NO.
CLANG_ASSISTED_PARSING = NO
+# If clang assisted parsing is enabled and the CLANG_ADD_INC_PATHS tag is set to
+# YES then doxygen will add the directory of each input to the include path.
+# The default value is: YES.
+
+CLANG_ADD_INC_PATHS = YES
+
# If clang assisted parsing is enabled you can provide the compiler with command
# line options that you would normally use when invoking the compiler. Note that
# the include paths will already be set by doxygen for the files and directories
@@ -1041,6 +1134,19 @@ CLANG_ASSISTED_PARSING = NO
CLANG_OPTIONS =
+# If clang assisted parsing is enabled you can provide the clang parser with the
+# path to the directory containing a file called compile_commands.json. This
+# file is the compilation database (see:
+# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the
+# options used when the source files were built. This is equivalent to
+# specifying the -p option to a clang tool, such as clang-check. These options
+# will then be passed to the parser. Any options specified with CLANG_OPTIONS
+# will be added as well.
+# Note: The availability of this option depends on whether or not doxygen was
+# generated with the -Duse_libclang=ON option for CMake.
+
+CLANG_DATABASE_PATH =
+
#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
@@ -1052,13 +1158,6 @@ CLANG_OPTIONS =
ALPHABETICAL_INDEX = YES
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 5
-
# In case all classes in a project start with a common prefix, all classes will
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
# can be used to specify a prefix (or a list of prefixes) that should be ignored
@@ -1159,7 +1258,7 @@ HTML_EXTRA_FILES =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the style sheet and background images according to
# this color. Hue is specified as an angle on a colorwheel, see
-# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# https://en.wikipedia.org/wiki/Hue for more information. For instance the value
# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
# purple, and 360 is red again.
# Minimum value: 0, maximum value: 359, default value: 220.
@@ -1195,6 +1294,17 @@ HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = YES
+# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
+# documentation will contain a main index with vertical navigation menus that
+# are dynamically created via JavaScript. If disabled, the navigation index will
+# consists of multiple levels of tabs that are statically embedded in every HTML
+# page. Disable this option to support browsers that do not have JavaScript,
+# like the Qt help browser.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_MENUS = YES
+
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded.
@@ -1218,13 +1328,14 @@ HTML_INDEX_NUM_ENTRIES = 100
# If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development
-# environment (see: http://developer.apple.com/tools/xcode/), introduced with
-# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
-# Makefile in the HTML output directory. Running make will produce the docset in
-# that directory and running make install will install the docset in
+# environment (see:
+# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To
+# create a documentation set, doxygen will generate a Makefile in the HTML
+# output directory. Running make will produce the docset in that directory and
+# running make install will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
+# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy
+# genXcode/_index.html for more information.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
@@ -1263,8 +1374,8 @@ DOCSET_PUBLISHER_NAME = Publisher
# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
+# (see:
+# https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows.
#
# The HTML Help Workshop contains a compiler that can convert all HTML output
# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
@@ -1294,7 +1405,7 @@ CHM_FILE =
HHC_LOCATION =
# The GENERATE_CHI flag controls if a separate .chi index file is generated
-# (YES) or that it should be included in the master .chm file (NO).
+# (YES) or that it should be included in the main .chm file (NO).
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
@@ -1339,7 +1450,8 @@ QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
# Project output. For more information please see Qt Help Project / Namespace
-# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace).
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_QHP is set to YES.
@@ -1347,8 +1459,8 @@ QHP_NAMESPACE = org.doxygen.Project
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
# Help Project output. For more information please see Qt Help Project / Virtual
-# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
-# folders).
+# Folders (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders).
# The default value is: doc.
# This tag requires that the tag GENERATE_QHP is set to YES.
@@ -1356,30 +1468,30 @@ QHP_VIRTUAL_FOLDER = doc
# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
# filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
+# Filters (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
+# Filters (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. Qt Help Project / Filter Attributes (see:
-# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_SECT_FILTER_ATTRS =
-# The QHG_LOCATION tag can be used to specify the location of Qt's
-# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
-# generated .qhp file.
+# The QHG_LOCATION tag can be used to specify the location (absolute path
+# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to
+# run qhelpgenerator on the generated .qhp file.
# This tag requires that the tag GENERATE_QHP is set to YES.
QHG_LOCATION =
@@ -1456,6 +1568,17 @@ TREEVIEW_WIDTH = 250
EXT_LINKS_IN_WINDOW = NO
+# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg
+# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see
+# https://inkscape.org) to generate formulas as SVG images instead of PNGs for
+# the HTML output. These images will generally look nicer at scaled resolutions.
+# Possible values are: png (the default) and svg (looks nicer but requires the
+# pdf2svg or inkscape tool).
+# The default value is: png.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FORMULA_FORMAT = png
+
# Use this tag to change the font size of LaTeX formulas included as images in
# the HTML documentation. When you change the font size after a successful
# doxygen run you need to manually remove any form_*.png images from the HTML
@@ -1476,8 +1599,14 @@ FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
+# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands
+# to create new LaTeX commands to be used in formulas as building blocks. See
+# the section "Including formulas" for details.
+
+FORMULA_MACROFILE =
+
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://www.mathjax.org) which uses client side Javascript for the rendering
+# https://www.mathjax.org) which uses client side JavaScript for the rendering
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path
@@ -1489,7 +1618,7 @@ USE_MATHJAX = NO
# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
+# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details.
# Possible values are: HTML-CSS (which is slower, but has the best
# compatibility), NativeMML (i.e. MathML) and SVG.
# The default value is: HTML-CSS.
@@ -1504,8 +1633,8 @@ MATHJAX_FORMAT = HTML-CSS
# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
# Content Delivery Network so you can quickly see the result without installing
# MathJax. However, it is strongly recommended to install a local copy of
-# MathJax from http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# MathJax from https://www.mathjax.org before deployment.
+# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2.
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
@@ -1519,7 +1648,8 @@ MATHJAX_EXTENSIONS =
# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
# of code that will be used on startup of the MathJax code. See the MathJax site
-# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# (see:
+# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an
# example see the documentation.
# This tag requires that the tag USE_MATHJAX is set to YES.
@@ -1547,7 +1677,7 @@ MATHJAX_CODEFILE =
SEARCHENGINE = YES
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a web server instead of a web client using Javascript. There
+# implemented using a web server instead of a web client using JavaScript. There
# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
# setting. When disabled, doxygen will generate a PHP script for searching and
# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
@@ -1566,7 +1696,8 @@ SERVER_BASED_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/).
+# Xapian (see:
+# https://xapian.org/).
#
# See the section "External Indexing and Searching" for details.
# The default value is: NO.
@@ -1579,8 +1710,9 @@ EXTERNAL_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/). See the section "External Indexing and
-# Searching" for details.
+# Xapian (see:
+# https://xapian.org/). See the section "External Indexing and Searching" for
+# details.
# This tag requires that the tag SEARCHENGINE is set to YES.
SEARCHENGINE_URL =
@@ -1631,21 +1763,35 @@ LATEX_OUTPUT = latex
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
# invoked.
#
-# Note that when enabling USE_PDFLATEX this option is only used for generating
-# bitmaps for formulas in the HTML output, but not in the Makefile that is
-# written to the output directory.
-# The default file is: latex.
+# Note that when not enabling USE_PDFLATEX the default is latex when enabling
+# USE_PDFLATEX the default is pdflatex and when in the later case latex is
+# chosen this is overwritten by pdflatex. For specific output languages the
+# default can have been set differently, this depends on the implementation of
+# the output language.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_CMD_NAME = latex
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
# index for LaTeX.
+# Note: This tag is used in the Makefile / make.bat.
+# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file
+# (.tex).
# The default file is: makeindex.
# This tag requires that the tag GENERATE_LATEX is set to YES.
MAKEINDEX_CMD_NAME = makeindex
+# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to
+# generate index for LaTeX. In case there is no backslash (\) as first character
+# it will be automatically added in the LaTeX code.
+# Note: This tag is used in the generated output file (.tex).
+# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat.
+# The default value is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_MAKEINDEX_CMD = makeindex
+
# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
# documents. This may be useful for small projects and may help to save some
# trees in general.
@@ -1661,7 +1807,7 @@ COMPACT_LATEX = NO
# The default value is: a4.
# This tag requires that the tag GENERATE_LATEX is set to YES.
-PAPER_TYPE = a4wide
+PAPER_TYPE = a4
# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
# that should be included in the LaTeX output. The package can be specified just
@@ -1730,9 +1876,11 @@ LATEX_EXTRA_FILES =
PDF_HYPERLINKS = YES
-# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
-# the PDF file directly from the LaTeX files. Set this option to YES, to get a
-# higher quality PDF documentation.
+# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as
+# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX
+# files. Set this option to YES, to get a higher quality PDF documentation.
+#
+# See also section LATEX_CMD_NAME for selecting the engine.
# The default value is: YES.
# This tag requires that the tag GENERATE_LATEX is set to YES.
@@ -1766,7 +1914,7 @@ LATEX_SOURCE_CODE = NO
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
-# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
# The default value is: plain.
# This tag requires that the tag GENERATE_LATEX is set to YES.
@@ -1780,6 +1928,14 @@ LATEX_BIB_STYLE = plain
LATEX_TIMESTAMP = NO
+# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute)
+# path from which the emoji images will be read. If a relative path is entered,
+# it will be relative to the LATEX_OUTPUT directory. If left blank the
+# LATEX_OUTPUT directory will be used.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EMOJI_DIRECTORY =
+
#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
@@ -1819,9 +1975,9 @@ COMPACT_RTF = NO
RTF_HYPERLINKS = NO
-# Load stylesheet definitions from file. Syntax is similar to doxygen's config
-# file, i.e. a series of assignments. You only have to provide replacements,
-# missing definitions are set to their default value.
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# configuration file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
#
# See also section "Doxygen usage" for information on how to generate the
# default style sheet that doxygen normally uses.
@@ -1830,8 +1986,8 @@ RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
# Set optional variables used in the generation of an RTF document. Syntax is
-# similar to doxygen's config file. A template extensions file can be generated
-# using doxygen -e rtf extensionFile.
+# similar to doxygen's configuration file. A template extensions file can be
+# generated using doxygen -e rtf extensionFile.
# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_EXTENSIONS_FILE =
@@ -1917,6 +2073,13 @@ XML_OUTPUT = xml
XML_PROGRAMLISTING = YES
+# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include
+# namespace members in file scope as well, matching the HTML output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_NS_MEMB_FILE_SCOPE = NO
+
#---------------------------------------------------------------------------
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
@@ -1949,9 +2112,9 @@ DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-# AutoGen Definitions (see http://autogen.sf.net) file that captures the
-# structure of the code including all documentation. Note that this feature is
-# still experimental and incomplete at the moment.
+# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
+# the structure of the code including all documentation. Note that this feature
+# is still experimental and incomplete at the moment.
# The default value is: NO.
GENERATE_AUTOGEN_DEF = NO
@@ -2228,10 +2391,32 @@ UML_LOOK = NO
# but if the number exceeds 15, the total amount of fields shown is limited to
# 10.
# Minimum value: 0, maximum value: 100, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
+# This tag requires that the tag UML_LOOK is set to YES.
UML_LIMIT_NUM_FIELDS = 10
+# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and
+# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS
+# tag is set to YES, doxygen will add type and arguments for attributes and
+# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen
+# will not generate fields with class member information in the UML graphs. The
+# class diagrams will look similar to the default class diagrams but using UML
+# notation for the relationships.
+# Possible values are: NO, YES and NONE.
+# The default value is: NO.
+# This tag requires that the tag UML_LOOK is set to YES.
+
+DOT_UML_DETAILS = NO
+
+# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters
+# to display on a single line. If the actual line length exceeds this threshold
+# significantly it will wrapped across multiple lines. Some heuristics are apply
+# to avoid ugly line breaks.
+# Minimum value: 0, maximum value: 1000, default value: 17.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_WRAP_THRESHOLD = 17
+
# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
# collaboration graphs will show the relations between templates and their
# instances.
@@ -2360,6 +2545,11 @@ DIAFILE_DIRS =
PLANTUML_JAR_PATH =
+# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
+# configuration file for plantuml.
+
+PLANTUML_CFG_FILE =
+
# When using plantuml, the specified paths are searched for files specified by
# the !include statement in a plantuml block.
@@ -2418,9 +2608,11 @@ DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
-# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate
# files that are used to generate the various graphs.
+#
+# Note: This setting is not only used for dot files but also for msc and
+# plantuml temporary files.
# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
DOT_CLEANUP = YES
diff --git a/Makefile.in b/Makefile.in
index 3dfda33..d7ac091 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -348,6 +348,8 @@ infodir = @infodir@
install_sh = @install_sh@
libbpf_CFLAGS = @libbpf_CFLAGS@
libbpf_LIBS = @libbpf_LIBS@
+libdbus_CFLAGS = @libdbus_CFLAGS@
+libdbus_LIBS = @libdbus_LIBS@
libdir = @libdir@
libdnssec_SONAME = @libdnssec_SONAME@
libdnssec_SOVERSION = @libdnssec_SOVERSION@
@@ -359,8 +361,6 @@ libfstrm_CFLAGS = @libfstrm_CFLAGS@
libfstrm_LIBS = @libfstrm_LIBS@
libidn2_CFLAGS = @libidn2_CFLAGS@
libidn2_LIBS = @libidn2_LIBS@
-libidn_CFLAGS = @libidn_CFLAGS@
-libidn_LIBS = @libidn_LIBS@
libknot_SONAME = @libknot_SONAME@
libknot_SOVERSION = @libknot_SOVERSION@
libknot_VERSION_INFO = @libknot_VERSION_INFO@
@@ -378,7 +378,6 @@ libprotobuf_c_CFLAGS = @libprotobuf_c_CFLAGS@
libprotobuf_c_LIBS = @libprotobuf_c_LIBS@
liburcu_CFLAGS = @liburcu_CFLAGS@
liburcu_LIBS = @liburcu_LIBS@
-liburcu_PKGCONFIG = @liburcu_PKGCONFIG@
libxdp_CFLAGS = @libxdp_CFLAGS@
libxdp_LIBS = @libxdp_LIBS@
libzscanner_SONAME = @libzscanner_SONAME@
diff --git a/NEWS b/NEWS
index c450989..9e9e71d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,113 @@
+Knot DNS 3.4.0 (2024-09-02)
+===========================
+
+Features:
+---------
+ - knotd: full DNS over TLS (DoT, RFC 7858) implementation (see 'DNS over TLS')
+ - knotd: bidirectional XFR over TLS (XoT) support with opportunistic, strict,
+ and mutual authentication profiles
+ - knotd: support for DDNS over QUIC and TLS
+ - knotd: DNSSEC validation requires the remaining RRSIG validity is longer than 'rrsig-refresh'
+ - knotd: new event for automatic DNSSEC revalidation
+ - knotd: if enabled DNSSEC signing, EDNS expire is adjusted to the earliest RRSIG expiration
+ - knotd: added support for libdbus as an alternative to systemd dbus
+ (see '--enable-dbus=libdbus' configure parameter)
+ - knotd: new XDP-related configuration options
+ (see 'xdp.ring-size', 'xdp.busypoll-budget', and 'xdp.busypoll-timeout')
+ - knotc: new command for explicit triggering DNSSEC validation (see 'zone-validate' command)
+ - keymgr: SKR verification requires end of DNSKEY RRSIG validity covers next DNSKEY snapshot
+ - kdig: +nocrypto applies also to CERT, DS, SSHFP, DHCID, TLSA, ZONEMD, and TSIG
+ - knsupdate: added support for DDNS over QUIC and TLS (see '-Q' and '-S' parameters)
+ - kxdpgun: support for reading a binary input file (see '-B' parameter)
+ - kxdpgun: support for output in JSON (see '-j' parameter)
+ - kxdpgun: support for periodical output (see '-S' parameter)
+ - mod-rrl: module offers limiting of non-UDP protocols based on consumed time
+ (see 'mod-rrl.time-rate-limit' and 'mod-rrl.time-instant-limit')
+ - utils: -VV option for listing compile time configuration summary
+
+Improvements:
+-------------
+ - knotd: up to eight DDNS queries can be queued per zone when frozen
+ - knotd: the number of created/validated RRSIGs is logged
+ - knotd: overhaul of atomic operations usage
+ - knotd: unified DNAME semantic errors with the CNAME ones
+ (see 'Handling CNAME and DNAME-related updates')
+ - knotd: better DDNS pre-check to prevent dropping a bulk of updates
+ - knotd: extended SOA presence semantic checks
+ - knotd: disallowed concurrent control zone and config transactions to avoid deadlock
+ - knotd: disallowed opening zone transaction when blocking command is running to avoid deadlock
+ - knotd: new XDP statistic counters
+ - knotd: remote zone serial is logged upon received incoming transfer
+ - knotd: zone backup stores and zone restore checks the CPU architecture compatibility
+ - knotd: time configuration options support 'w', 'M', and 'y' units
+ - knotd: some control commands can be processed asynchronously
+ - knotc: zone backup overwrites already existing backupdir in the force mode
+ - kdig: EDNS is enabled by default
+ - kdig: the default EDNS payload size was lowered to 1232
+ - mod-rrl: completely reimplemented UDP rate limiting using an efficient
+ query-counting mechanism on several address prefix lengths
+ - mod-rrl: module no longer requires explicit configuration
+ - libknot: various XDP improvements and new configuration parameters
+ - docker: increased -D_FORTIFY_SOURCE to 3
+
+Bugfixes:
+---------
+ - knotd: deadlock during zone-ksk-submitted processing of a frozen zone
+ - kxdpgun: race condition in SIGUSR1 signal processing
+ - doc: parallel build is unreliable #928
+
+Compatibility:
+--------------
+ - configure: increase minimal GnuTLS version to 3.6.10
+ - configure: removed deprecated libidn 1 support
+ - configure: removed liburcu search fallback
+ - configure: required GCC or LLVM Clang compiler with C11 support
+ - knotd: removed already ignored obsolete configuration options
+ - keymgr: removed legacy parameter '--brief'
+ - kjournalprint: removed legacy parameter '--no-color'
+ - kjournalprint: removed legacy database specification without '--dir'
+ - kcatalogprint: removed legacy database specification without '--dir'
+ - packaging: CentOS 7, Debian 10, and Ubuntu 18.04 no longer supported
+ - doc: removed info pages
+
+Knot DNS 3.3.9 (2024-08-26)
+===========================
+
+Improvements:
+-------------
+ - libknot: added EDE code 30
+ - libknot: improved performance of knot_rrset_to_wire_extra()
+ - libs: upgraded embedded libngtcp2 to 1.7.0
+ - doc: various fixes and updates
+
+Bugfixes:
+---------
+ - keymgr: pregenerate clears future timestamps of old keys and creates new keys
+ - mod-dnsproxy: defective TSIG processing
+ - mod-dnsproxy: TCP not detected in the XDP mode
+ - kxdpgun: unsuccessful interface initialization leaks memory
+ - packaging: libknot not installed with python3-libknot
+
+Knot DNS 3.3.8 (2024-07-22)
+===========================
+
+Features:
+---------
+ - libzscanner,libknot: added support for 'dohpath' and 'ohttp' SVCB parameters
+ - libzscanner,libknot: added support for WALLET rrtype
+ - keymgr: new commands for keystore testing (see 'keystore-test' and 'keystore-bench')
+ - knotd: new configuration option for setting default TTL (see 'zone.default-ttl')
+
+Improvements:
+-------------
+ - libknot: added error codes to better describe some failures
+
+Bugfixes:
+---------
+ - knotd: DNSSEC signing doesn't remove NSEC records for non-authoritative nodes
+ - knotd: DNSSEC signing not scheduled on secondary if nothing to be reloaded
+ - libknot: TCP over XDP doesn't ignore SYN+ACK packets on the server side
+
Knot DNS 3.3.7 (2024-06-25)
===========================
@@ -258,6 +368,76 @@ Packaging:
- debian,ubuntu: new self-hosted repository (see https://pkg.labs.nic.cz/doc/)
- docker: upgraded to Debian bookworm-slim
+Knot DNS 3.2.13 (2024-06-25)
+============================
+
+Bugfixes:
+---------
+ - knotd: insufficient metadata check can cause journal corruption
+ - knotd: failed to build on macOS #909
+ - knotd: early NSEC3 salt replanning if 'nsec3-salt-lifetime: -1'
+ - knotc: zone check complains about missing zone file #913
+ - kdig: failed to parse empty QNAME (do not fill question section)
+ - python: failed to set an empty configuration value
+ - libzscanner: incorrect alpn processing #923
+ - libknot: insufficient check for malformed TCP header options over XDP
+ - libknot: infinite loop in knot_rrset_to_wire_extra() #916
+
+Knot DNS 3.2.12 (2023-12-19)
+============================
+
+Improvements:
+-------------
+ - knotd: zone purging waits for finished zone expiration for better reliability
+ - doc: various fixes and extensions
+
+Bugfixes:
+---------
+ - knotd: zone backup fails due to improper backup context deinitialization #891
+ - knotd: failed to sign the zone if maximum zone's TTL is too high
+ - knotd: malformed TCP header if used with QUIC in the generic XDP mode
+ - knotd: incorrect initialization of TCP limits
+ - knotd: orphaned PEM file not deleted when key generation fails
+ - knotd: server can crash when processing new TCP connections over XDP
+ - kdig: crashed when querying DNS over TLS if TLS handshake times out #896
+ - kzonecheck: failed to check DS with SHA-1 or GOST if not supported by local policy
+
+Knot DNS 3.2.11 (2023-10-30)
+============================
+
+Improvements:
+-------------
+ - keymgr: improved error message if a key file is not accessible
+ - keymgr: added offline RRSIGs validation at the end of their validity intervals
+ - doc: fixed some typos
+
+Bugfixes:
+---------
+ - knotd: DNAME record returned with query domain name instead of actual name #873
+ - knotd: failed to import configuration file if mod-geoip is in use #881
+ - knotd: failed to sign RRSet that fits to 64k only if compressed
+ - keymgr: offline RRSIGs not refreshed if 'rrsig-refresh' is not set
+ - knsupdate: incorrect processing of @ in the delete operation #879
+
+Knot DNS 3.2.10 (2023-09-11)
+============================
+
+Improvements:
+-------------
+ - knotd: multiple catalog groups per member are tolerated, but only one is used
+ - knotd: server cleans up stale LMDB readers when opening a RW transaction
+
+Bugfixes:
+---------
+ - knotd: server can crash when adjusting a wildcard glue
+ - knotd: failed to forward DDNS if 'zone.master' points to 'remotes'
+ - knotd: subsequent addition and removal to catalog zone isn't handled properly
+ - knotd: server can crash if a shared module is loaded and dynamic configuration used
+ - knotc: configuration import fails if an explicit shared module is configured
+ - kdig: double-free on some malformed responses over QUIC #869
+ - kdig: some TLS parameters override QUIC parameters
+ - libs: NULL record with empty RDATA isn't allowed
+
Knot DNS 3.2.9 (2023-07-27)
===========================
diff --git a/README.md b/README.md
index 42f4401..249fc0a 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,5 @@
[![Coverity Status](https://img.shields.io/coverity/scan/knot-dns.svg)](https://scan.coverity.com/projects/knot-dns)
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/knot-dns.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:knot-dns)
-[![Documentation Status](https://readthedocs.org/projects/knot/badge/?version=master)](https://knot.readthedocs.io/en/master/)
# Requirements
@@ -29,7 +28,7 @@ sudo apt-get install \
#### Install optional packages:
```bash
sudo apt-get install \
- libcap-ng-dev libsystemd-dev libidn2-0-dev libprotobuf-c-dev protobuf-c-compiler libfstrm-dev libmaxminddb-dev libnghttp2-dev libbpf-dev libxdp-dev libmnl-dev python3-sphinx python3-sphinx-panels
+ libcap-ng-dev libsystemd-dev libidn2-dev libprotobuf-c-dev protobuf-c-compiler libfstrm-dev libmaxminddb-dev libnghttp2-dev libbpf-dev libxdp-dev libmnl-dev python3-sphinx python3-sphinx-panels
```
### Fedora like distributions
diff --git a/configure b/configure
index 0f8ab66..26445fe 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for knot 3.3.7.
+# Generated by GNU Autoconf 2.71 for knot 3.4.0.
#
# Report bugs to <knot-dns@labs.nic.cz>.
#
@@ -621,8 +621,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='knot'
PACKAGE_TARNAME='knot'
-PACKAGE_VERSION='3.3.7'
-PACKAGE_STRING='knot 3.3.7'
+PACKAGE_VERSION='3.4.0'
+PACKAGE_STRING='knot 3.4.0'
PACKAGE_BUGREPORT='knot-dns@labs.nic.cz'
PACKAGE_URL=''
@@ -663,14 +663,6 @@ ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
-HAVE_MAKEINFO_FALSE
-HAVE_MAKEINFO_TRUE
-HAVE_PDFLATEX_FALSE
-HAVE_PDFLATEX_TRUE
-HAVE_SPHINXBUILD_FALSE
-HAVE_SPHINXBUILD_TRUE
-PDFLATEX
-SPHINXBUILD
OSS_FUZZ_FALSE
OSS_FUZZ_TRUE
FUZZER_FALSE
@@ -695,8 +687,6 @@ libmnl_LIBS
libmnl_CFLAGS
libnghttp2_LIBS
libnghttp2_CFLAGS
-libidn_LIBS
-libidn_CFLAGS
libidn2_LIBS
libidn2_CFLAGS
embedded_libngtcp2_LIBS
@@ -782,12 +772,13 @@ SHARED_MODULE_authsignal_FALSE
SHARED_MODULE_authsignal_TRUE
STATIC_MODULE_authsignal_FALSE
STATIC_MODULE_authsignal_TRUE
-liburcu_PKGCONFIG
liburcu_LIBS
liburcu_CFLAGS
malloc_LIBS
libkqueue_LIBS
libkqueue_CFLAGS
+libdbus_LIBS
+libdbus_CFLAGS
systemd_LIBS
systemd_CFLAGS
libxdp_LIBS
@@ -802,10 +793,14 @@ gnutls_LIBS
gnutls_CFLAGS
FAST_PARSER_FALSE
FAST_PARSER_TRUE
-HAVE_LIBUTILS_FALSE
-HAVE_LIBUTILS_TRUE
+HAVE_PDFLATEX_FALSE
+HAVE_PDFLATEX_TRUE
HAVE_DOCS_FALSE
HAVE_DOCS_TRUE
+PDFLATEX
+SPHINXBUILD
+HAVE_LIBUTILS_FALSE
+HAVE_LIBUTILS_TRUE
HAVE_UTILS_FALSE
HAVE_UTILS_TRUE
HAVE_DAEMON_FALSE
@@ -979,9 +974,9 @@ enable_recvmmsg
enable_xdp
enable_reuseport
enable_systemd
+enable_dbus
with_socket_polling
with_memory_allocator
-with_urcu
with_module_authsignal
with_module_cookies
with_module_dnsproxy
@@ -1029,6 +1024,8 @@ libxdp_CFLAGS
libxdp_LIBS
systemd_CFLAGS
systemd_LIBS
+libdbus_CFLAGS
+libdbus_LIBS
libkqueue_CFLAGS
libkqueue_LIBS
liburcu_CFLAGS
@@ -1047,8 +1044,6 @@ libngtcp2_CFLAGS
libngtcp2_LIBS
libidn2_CFLAGS
libidn2_LIBS
-libidn_CFLAGS
-libidn_LIBS
libnghttp2_CFLAGS
libnghttp2_LIBS
libmnl_CFLAGS
@@ -1603,7 +1598,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures knot 3.3.7 to adapt to many kinds of systems.
+\`configure' configures knot 3.4.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1674,7 +1669,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of knot 3.3.7:";;
+ short | recursive ) echo "Configuration of knot 3.4.0:";;
esac
cat <<\_ACEOF
@@ -1706,6 +1701,8 @@ Optional Features:
enable SO_REUSEPORT(_LB) support [default=auto]
--enable-systemd=auto|yes|no
enable systemd integration [default=auto]
+ --enable-dbus=auto|systemd|libdbus|no
+ enable D-bus support [default=auto]
--enable-dnstap Enable dnstap support for kdig (requires fstrm,
protobuf-c)
--enable-maxminddb=auto|yes|no
@@ -1742,7 +1739,6 @@ Optional Packages:
--with-memory-allocator=auto|LIBRARY
Use specific memory allocator for the server (e.g.
jemalloc) [default=auto]
- --with-urcu=DIR where to find userspace-rcu library
--with-module-authsignal=yes|shared|no
Build 'authsignal' module [default="yes"]
--with-module-cookies=yes|shared|no
@@ -1773,7 +1769,7 @@ Optional Packages:
--with-conf-mapsize=NUM Configuration DB mapsize in MiB
[default=$conf_mapsize_default]
- --with-libidn=DIR Support IDN (needs GNU libidn2 or libidn)
+ --with-libidn=DIR Support IDN (needs GNU libidn2)
--with-libnghttp2=DIR Support DoH (needs libnghttp2)
--with-sanitizer Compile with sanitizer [default=no]
--with-fuzzer Compile with libfuzzer [default=no]
@@ -1808,6 +1804,10 @@ Some influential environment variables:
C compiler flags for systemd, overriding pkg-config
systemd_LIBS
linker flags for systemd, overriding pkg-config
+ libdbus_CFLAGS
+ C compiler flags for libdbus, overriding pkg-config
+ libdbus_LIBS
+ linker flags for libdbus, overriding pkg-config
libkqueue_CFLAGS
C compiler flags for libkqueue, overriding pkg-config
libkqueue_LIBS
@@ -1842,9 +1842,6 @@ Some influential environment variables:
C compiler flags for libidn2, overriding pkg-config
libidn2_LIBS
linker flags for libidn2, overriding pkg-config
- libidn_CFLAGS
- C compiler flags for libidn, overriding pkg-config
- libidn_LIBS linker flags for libidn, overriding pkg-config
libnghttp2_CFLAGS
C compiler flags for libnghttp2, overriding pkg-config
libnghttp2_LIBS
@@ -1923,7 +1920,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-knot configure 3.3.7
+knot configure 3.4.0
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2274,7 +2271,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by knot $as_me 3.3.7, which was
+It was created by knot $as_me 3.4.0, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -2865,7 +2862,6 @@ as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H"
as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H"
as_fn_append ac_header_c_list " pthread_np.h pthread_np_h HAVE_PTHREAD_NP_H"
-as_fn_append ac_header_c_list " stdatomic.h stdatomic_h HAVE_STDATOMIC_H"
as_fn_append ac_header_c_list " sys/uio.h sys_uio_h HAVE_SYS_UIO_H"
as_fn_append ac_header_c_list " bsd/string.h bsd_string_h HAVE_BSD_STRING_H"
@@ -3549,7 +3545,7 @@ fi
# Define the identity of the package.
PACKAGE='knot'
- VERSION='3.3.7'
+ VERSION='3.4.0'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -5196,22 +5192,22 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
# Update library versions
# https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
- libknot_VERSION_INFO="-version-info 14:0:0"
+ libknot_VERSION_INFO="-version-info 15:0:0"
- libknot_SOVERSION="14"
+ libknot_SOVERSION="15"
case $host_os in #(
darwin*) :
- libknot_SONAME="libknot.14.dylib"
+ libknot_SONAME="libknot.15.dylib"
;; #(
cygwin*) :
- libknot_SONAME="cygknot-14.dll"
+ libknot_SONAME="cygknot-15.dll"
;; #(
msys*) :
- libknot_SONAME="msys-knot-14.dll"
+ libknot_SONAME="msys-knot-15.dll"
;; #(
*) :
- libknot_SONAME="libknot.so.14"
+ libknot_SONAME="libknot.so.15"
;; #(
*) :
@@ -5267,17 +5263,9 @@ esac
KNOT_VERSION_MAJOR=3
-KNOT_VERSION_MINOR=3
+KNOT_VERSION_MINOR=4
-KNOT_VERSION_PATCH=7
-
-
-# Store ./configure parameters and CFLAGS
-
-printf "%s\n" "#define CONFIGURE_PARAMS \"$*\"" >>confdefs.h
-
-
-printf "%s\n" "#define CONFIGURE_CFLAGS \"$CFLAGS\"" >>confdefs.h
+KNOT_VERSION_PATCH=0
ac_config_files="$ac_config_files src/libknot/version.h src/libdnssec/version.h src/libzscanner/version.h"
@@ -15272,6 +15260,15 @@ else
HAVE_UTILS_FALSE=
fi
+ if test "$enable_utilities" != "no" -o \
+ "$enable_daemon" != "no"; then
+ HAVE_LIBUTILS_TRUE=
+ HAVE_LIBUTILS_FALSE='#'
+else
+ HAVE_LIBUTILS_TRUE='#'
+ HAVE_LIBUTILS_FALSE=
+fi
+
# Build Knot DNS documentation
# Check whether --enable-documentation was given.
@@ -15282,6 +15279,110 @@ else $as_nop
enable_documentation=yes
fi
+if test "$enable_documentation" = "yes"
+then :
+
+ # Extract the first word of "sphinx-build", so it can be a program name with args.
+set dummy sphinx-build; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_SPHINXBUILD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $SPHINXBUILD in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_SPHINXBUILD="$SPHINXBUILD" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_SPHINXBUILD="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_SPHINXBUILD" && ac_cv_path_SPHINXBUILD="false"
+ ;;
+esac
+fi
+SPHINXBUILD=$ac_cv_path_SPHINXBUILD
+if test -n "$SPHINXBUILD"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SPHINXBUILD" >&5
+printf "%s\n" "$SPHINXBUILD" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ if test "$SPHINXBUILD" = "false"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: missing 'sphinx-build' executable for documentation generation" >&5
+printf "%s\n" "$as_me: WARNING: missing 'sphinx-build' executable for documentation generation" >&2;}
+ enable_documentation=no
+
+fi
+ # Extract the first word of "pdflatex", so it can be a program name with args.
+set dummy pdflatex; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PDFLATEX+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $PDFLATEX in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PDFLATEX="$PDFLATEX" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PDFLATEX="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_PDFLATEX" && ac_cv_path_PDFLATEX="false"
+ ;;
+esac
+fi
+PDFLATEX=$ac_cv_path_PDFLATEX
+if test -n "$PDFLATEX"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PDFLATEX" >&5
+printf "%s\n" "$PDFLATEX" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+
+fi
if test "$enable_documentation" = "yes"; then
HAVE_DOCS_TRUE=
HAVE_DOCS_FALSE='#'
@@ -15290,16 +15391,15 @@ else
HAVE_DOCS_FALSE=
fi
-
- if test "$enable_utilities" != "no" -o \
- "$enable_daemon" != "no"; then
- HAVE_LIBUTILS_TRUE=
- HAVE_LIBUTILS_FALSE='#'
+ if test "$PDFLATEX" != "false"; then
+ HAVE_PDFLATEX_TRUE=
+ HAVE_PDFLATEX_FALSE='#'
else
- HAVE_LIBUTILS_TRUE='#'
- HAVE_LIBUTILS_FALSE=
+ HAVE_PDFLATEX_TRUE='#'
+ HAVE_PDFLATEX_FALSE=
fi
+
######################
# Generic dependencies
######################
@@ -15410,19 +15510,19 @@ esac
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gnutls >= 3.3" >&5
-printf %s "checking for gnutls >= 3.3... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gnutls >= 3.6.10" >&5
+printf %s "checking for gnutls >= 3.6.10... " >&6; }
if test -n "$gnutls_CFLAGS"; then
pkg_cv_gnutls_CFLAGS="$gnutls_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 3.3\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gnutls >= 3.3") 2>&5
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 3.6.10\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gnutls >= 3.6.10") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_gnutls_CFLAGS=`$PKG_CONFIG --cflags "gnutls >= 3.3" 2>/dev/null`
+ pkg_cv_gnutls_CFLAGS=`$PKG_CONFIG --cflags "gnutls >= 3.6.10" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -15434,12 +15534,12 @@ if test -n "$gnutls_LIBS"; then
pkg_cv_gnutls_LIBS="$gnutls_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 3.3\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gnutls >= 3.3") 2>&5
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 3.6.10\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gnutls >= 3.6.10") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_gnutls_LIBS=`$PKG_CONFIG --libs "gnutls >= 3.3" 2>/dev/null`
+ pkg_cv_gnutls_LIBS=`$PKG_CONFIG --libs "gnutls >= 3.6.10" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -15460,14 +15560,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- gnutls_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gnutls >= 3.3" 2>&1`
+ gnutls_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gnutls >= 3.6.10" 2>&1`
else
- gnutls_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gnutls >= 3.3" 2>&1`
+ gnutls_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gnutls >= 3.6.10" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$gnutls_PKG_ERRORS" >&5
- as_fn_error $? "Package requirements (gnutls >= 3.3) were not met:
+ as_fn_error $? "Package requirements (gnutls >= 3.6.10) were not met:
$gnutls_PKG_ERRORS
@@ -15518,18 +15618,6 @@ printf "%s\n" "#define ENABLE_PKCS11 1" >>confdefs.h
fi
- ac_fn_check_decl "$LINENO" "GNUTLS_PK_EDDSA_ED25519" "ac_cv_have_decl_GNUTLS_PK_EDDSA_ED25519" "#include <gnutls/gnutls.h>
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_GNUTLS_PK_EDDSA_ED25519" = xyes
-then :
-
-printf "%s\n" "#define HAVE_ED25519 1" >>confdefs.h
-
- enable_ed25519=yes
-else $as_nop
- enable_ed25519=no
-fi
-
ac_fn_check_decl "$LINENO" "GNUTLS_SIGN_EDDSA_ED448" "ac_cv_have_decl_GNUTLS_SIGN_EDDSA_ED448" "#include <gnutls/gnutls.h>
" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_GNUTLS_SIGN_EDDSA_ED448" = xyes
@@ -15542,56 +15630,6 @@ else $as_nop
enable_ed448=no
fi
- ac_fn_check_decl "$LINENO" "GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE" "ac_cv_have_decl_GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE" "#include <gnutls/abstract.h>
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE" = xyes
-then :
-
-printf "%s\n" "#define HAVE_GNUTLS_REPRODUCIBLE 1" >>confdefs.h
-
- # Ensure the version is at least 3.6.10
- ac_fn_c_check_func "$LINENO" "gnutls_aead_cipher_encryptv2" "ac_cv_func_gnutls_aead_cipher_encryptv2"
-if test "x$ac_cv_func_gnutls_aead_cipher_encryptv2" = xyes
-then :
- enable_repro_signing=yes
-else $as_nop
- enable_repro_signing=no
-fi
-
-else $as_nop
- enable_repro_signing=no
-fi
-
- ac_fn_c_check_func "$LINENO" "gnutls_privkey_sign_data2" "ac_cv_func_gnutls_privkey_sign_data2"
-if test "x$ac_cv_func_gnutls_privkey_sign_data2" = xyes
-then :
-
-printf "%s\n" "#define HAVE_SIGN_DATA2 1" >>confdefs.h
-
-fi
-
-
- ac_fn_c_check_func "$LINENO" "gnutls_privkey_export_x509" "ac_cv_func_gnutls_privkey_export_x509"
-if test "x$ac_cv_func_gnutls_privkey_export_x509" = xyes
-then :
-
-printf "%s\n" "#define HAVE_EXPORT_X509 1" >>confdefs.h
-
-fi
-
-
- ac_fn_c_check_func "$LINENO" "gnutls_memset" "ac_cv_func_gnutls_memset"
-if test "x$ac_cv_func_gnutls_memset" = xyes
-then :
-
-printf "%s\n" "#define HAVE_GNUTLS_MEMSET 1" >>confdefs.h
-
- gnutls_memset=yes
-else $as_nop
- gnutls_memset=no
-fi
-
-
ac_fn_c_check_func "$LINENO" "gnutls_early_cipher_get" "ac_cv_func_gnutls_early_cipher_get"
if test "x$ac_cv_func_gnutls_early_cipher_get" = xyes
then :
@@ -15972,6 +16010,15 @@ else $as_nop
fi
+# Check whether --enable-dbus was given.
+if test ${enable_dbus+y}
+then :
+ enableval=$enable_dbus; enable_dbus="$enableval"
+else $as_nop
+ enable_dbus=auto
+fi
+
+
if test "$enable_daemon" = "yes"
then :
@@ -16462,16 +16509,187 @@ then :
printf "%s\n" "#define ENABLE_SYSTEMD 1" >>confdefs.h
- ac_fn_c_check_header_compile "$LINENO" "systemd/sd-bus.h" "ac_cv_header_systemd_sd_bus_h" "$ac_includes_default"
-if test "x$ac_cv_header_systemd_sd_bus_h" = xyes
+fi
+
+if test "$enable_dbus" != "no"
+then :
+
+ case $enable_dbus in #(
+ auto) :
+ if test "$enable_systemd" = "yes"
+then :
+
+printf "%s\n" "#define ENABLE_DBUS_SYSTEMD 1" >>confdefs.h
+
+ enable_dbus=systemd
+else $as_nop
+
+pkg_failed=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbus-1" >&5
+printf %s "checking for dbus-1... " >&6; }
+
+if test -n "$libdbus_CFLAGS"; then
+ pkg_cv_libdbus_CFLAGS="$libdbus_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-1") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_libdbus_CFLAGS=`$PKG_CONFIG --cflags "dbus-1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$libdbus_LIBS"; then
+ pkg_cv_libdbus_LIBS="$libdbus_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-1") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_libdbus_LIBS=`$PKG_CONFIG --libs "dbus-1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ libdbus_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dbus-1" 2>&1`
+ else
+ libdbus_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dbus-1" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$libdbus_PKG_ERRORS" >&5
+
+ enable_dbus=no
+elif test $pkg_failed = untried; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ enable_dbus=no
+else
+ libdbus_CFLAGS=$pkg_cv_libdbus_CFLAGS
+ libdbus_LIBS=$pkg_cv_libdbus_LIBS
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+printf "%s\n" "#define ENABLE_DBUS_LIBDBUS 1" >>confdefs.h
+
+ enable_dbus=libdbus
+fi
+fi ;; #(
+ systemd) :
+ if test "$enable_systemd" = "yes"
then :
-printf "%s\n" "#define ENABLE_DBUS 1" >>confdefs.h
+printf "%s\n" "#define ENABLE_DBUS_SYSTEMD 1" >>confdefs.h
+ enable_dbus=systemd
else $as_nop
- enable_systemd="yes (without D-Bus)"
+ as_fn_error $? "systemd >= 221 not available." "$LINENO" 5
+fi ;; #(
+ libdbus) :
+
+pkg_failed=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbus-1" >&5
+printf %s "checking for dbus-1... " >&6; }
+
+if test -n "$libdbus_CFLAGS"; then
+ pkg_cv_libdbus_CFLAGS="$libdbus_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-1") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_libdbus_CFLAGS=`$PKG_CONFIG --cflags "dbus-1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$libdbus_LIBS"; then
+ pkg_cv_libdbus_LIBS="$libdbus_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-1") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_libdbus_LIBS=`$PKG_CONFIG --libs "dbus-1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
fi
+ if test $_pkg_short_errors_supported = yes; then
+ libdbus_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dbus-1" 2>&1`
+ else
+ libdbus_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dbus-1" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$libdbus_PKG_ERRORS" >&5
+
+ as_fn_error $? "libdbus not available." "$LINENO" 5
+elif test $pkg_failed = untried; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ as_fn_error $? "libdbus not available." "$LINENO" 5
+else
+ libdbus_CFLAGS=$pkg_cv_libdbus_CFLAGS
+ libdbus_LIBS=$pkg_cv_libdbus_LIBS
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+printf "%s\n" "#define ENABLE_DBUS_LIBDBUS 1" >>confdefs.h
+
+ enable_dbus=libdbus
+fi ;; #(
+ no) :
+ enable_dbus=no ;; #(
+ *) :
+ as_fn_error $? "Invalid value of --enable-dbus." "$LINENO" 5 ;; #(
+ *) :
+ ;;
+esac
fi
@@ -16666,21 +16884,10 @@ then :
fi
-
-# Check whether --with-urcu was given.
-if test ${with_urcu+y}
-then :
- withval=$with_urcu;
-fi
-
-
if test "$enable_daemon" = "yes"
then :
-if test "$with_urcu" != "no"
-then :
-
pkg_failed=no
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for liburcu" >&5
@@ -16741,217 +16948,13 @@ fi
echo "$liburcu_PKG_ERRORS" >&5
- for try_urcu in "$with_urcu" "" "/usr/local"; do
- save_LIBS="$LIBS"
- save_CPPFLAGS="$CPPFLAGS"
-
- if test -d "$try_urcu"
-then :
-
- liburcu_CFLAGS="-I$try_urcu/include"
- liburcu_LIBS="-L$try_urcu/lib"
-
-else $as_nop
-
- liburcu_CFLAGS=""
- liburcu_LIBS=""
-
-fi
-
- CPPFLAGS="$CPPFLAGS $liburcu_CFLAGS"
- LIBS="$LIBS $liburcu_LIBS"
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing rcu_set_pointer_sym" >&5
-printf %s "checking for library containing rcu_set_pointer_sym... " >&6; }
-if test ${ac_cv_search_rcu_set_pointer_sym+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char rcu_set_pointer_sym ();
-int
-main (void)
-{
-return rcu_set_pointer_sym ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' urcu
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_rcu_set_pointer_sym=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_rcu_set_pointer_sym+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_rcu_set_pointer_sym+y}
-then :
-
-else $as_nop
- ac_cv_search_rcu_set_pointer_sym=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_rcu_set_pointer_sym" >&5
-printf "%s\n" "$ac_cv_search_rcu_set_pointer_sym" >&6; }
-ac_res=$ac_cv_search_rcu_set_pointer_sym
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
- with_urcu=yes
- liburcu_LIBS="$liburcu_LIBS -lurcu"
-
-
- break
-
-else $as_nop
-
- CPPFLAGS="$save_CPPFLAGS"
- LIBS="$save_LIBS"
- with_urcu=no
- # do not cache result of AC_SEARCH_LIBS test
- unset ac_cv_search_rcu_set_pointer_sym
-
-fi
-
- done
- CPPFLAGS="$save_CPPFLAGS"
- LIBS="$save_LIBS"
-
- if test "$with_urcu" = "no"
-then :
-
- as_fn_error $? "liburcu is required" "$LINENO" 5
-
-fi
+ as_fn_error $? "liburcu not found" "$LINENO" 5
elif test $pkg_failed = untried; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
- for try_urcu in "$with_urcu" "" "/usr/local"; do
- save_LIBS="$LIBS"
- save_CPPFLAGS="$CPPFLAGS"
-
- if test -d "$try_urcu"
-then :
-
- liburcu_CFLAGS="-I$try_urcu/include"
- liburcu_LIBS="-L$try_urcu/lib"
-
-else $as_nop
-
- liburcu_CFLAGS=""
- liburcu_LIBS=""
-
-fi
-
- CPPFLAGS="$CPPFLAGS $liburcu_CFLAGS"
- LIBS="$LIBS $liburcu_LIBS"
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing rcu_set_pointer_sym" >&5
-printf %s "checking for library containing rcu_set_pointer_sym... " >&6; }
-if test ${ac_cv_search_rcu_set_pointer_sym+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char rcu_set_pointer_sym ();
-int
-main (void)
-{
-return rcu_set_pointer_sym ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' urcu
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_rcu_set_pointer_sym=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_rcu_set_pointer_sym+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_rcu_set_pointer_sym+y}
-then :
-
-else $as_nop
- ac_cv_search_rcu_set_pointer_sym=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_rcu_set_pointer_sym" >&5
-printf "%s\n" "$ac_cv_search_rcu_set_pointer_sym" >&6; }
-ac_res=$ac_cv_search_rcu_set_pointer_sym
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
- with_urcu=yes
- liburcu_LIBS="$liburcu_LIBS -lurcu"
-
-
- break
-
-else $as_nop
-
- CPPFLAGS="$save_CPPFLAGS"
- LIBS="$save_LIBS"
- with_urcu=no
- # do not cache result of AC_SEARCH_LIBS test
- unset ac_cv_search_rcu_set_pointer_sym
-
-fi
-
- done
- CPPFLAGS="$save_CPPFLAGS"
- LIBS="$save_LIBS"
-
- if test "$with_urcu" = "no"
-then :
-
- as_fn_error $? "liburcu is required" "$LINENO" 5
-
-fi
+ as_fn_error $? "liburcu not found" "$LINENO" 5
else
liburcu_CFLAGS=$pkg_cv_liburcu_CFLAGS
@@ -16959,12 +16962,6 @@ else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
- liburcu_PKGCONFIG="liburcu >= 0.4.0"
-
- with_urcu=yes
-
-fi
-
fi
@@ -19226,185 +19223,17 @@ fi
echo "$libidn2_PKG_ERRORS" >&5
-
-pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libidn >= 0.0.0" >&5
-printf %s "checking for libidn >= 0.0.0... " >&6; }
-
-if test -n "$libidn_CFLAGS"; then
- pkg_cv_libidn_CFLAGS="$libidn_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libidn >= 0.0.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libidn >= 0.0.0") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_libidn_CFLAGS=`$PKG_CONFIG --cflags "libidn >= 0.0.0" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-if test -n "$libidn_LIBS"; then
- pkg_cv_libidn_LIBS="$libidn_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libidn >= 0.0.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libidn >= 0.0.0") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_libidn_LIBS=`$PKG_CONFIG --libs "libidn >= 0.0.0" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- libidn_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libidn >= 0.0.0" 2>&1`
- else
- libidn_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libidn >= 0.0.0" 2>&1`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$libidn_PKG_ERRORS" >&5
-
-
- with_libidn=no
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libidn2 or libidn not found" >&5
-printf "%s\n" "$as_me: WARNING: libidn2 or libidn not found" >&2;}
-
-elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
- with_libidn=no
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libidn2 or libidn not found" >&5
-printf "%s\n" "$as_me: WARNING: libidn2 or libidn not found" >&2;}
-
-else
- libidn_CFLAGS=$pkg_cv_libidn_CFLAGS
- libidn_LIBS=$pkg_cv_libidn_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
- with_libidn=libidn
-
-printf "%s\n" "#define LIBIDN 1" >>confdefs.h
-
-
-printf "%s\n" "#define LIBIDN_HEADER <idna.h>" >>confdefs.h
-
-
-fi
-
-elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-
-pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libidn >= 0.0.0" >&5
-printf %s "checking for libidn >= 0.0.0... " >&6; }
-
-if test -n "$libidn_CFLAGS"; then
- pkg_cv_libidn_CFLAGS="$libidn_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libidn >= 0.0.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libidn >= 0.0.0") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_libidn_CFLAGS=`$PKG_CONFIG --cflags "libidn >= 0.0.0" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-if test -n "$libidn_LIBS"; then
- pkg_cv_libidn_LIBS="$libidn_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libidn >= 0.0.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libidn >= 0.0.0") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_libidn_LIBS=`$PKG_CONFIG --libs "libidn >= 0.0.0" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- libidn_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libidn >= 0.0.0" 2>&1`
- else
- libidn_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libidn >= 0.0.0" 2>&1`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$libidn_PKG_ERRORS" >&5
-
-
- with_libidn=no
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libidn2 or libidn not found" >&5
-printf "%s\n" "$as_me: WARNING: libidn2 or libidn not found" >&2;}
+ with_libidn=no
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libidn2 not found" >&5
+printf "%s\n" "$as_me: WARNING: libidn2 not found" >&2;}
elif test $pkg_failed = untried; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
- with_libidn=no
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libidn2 or libidn not found" >&5
-printf "%s\n" "$as_me: WARNING: libidn2 or libidn not found" >&2;}
-
-else
- libidn_CFLAGS=$pkg_cv_libidn_CFLAGS
- libidn_LIBS=$pkg_cv_libidn_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
- with_libidn=libidn
-
-printf "%s\n" "#define LIBIDN 1" >>confdefs.h
-
-
-printf "%s\n" "#define LIBIDN_HEADER <idna.h>" >>confdefs.h
-
-
-fi
+ with_libidn=no
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libidn2 not found" >&5
+printf "%s\n" "$as_me: WARNING: libidn2 not found" >&2;}
else
libidn2_CFLAGS=$pkg_cv_libidn2_CFLAGS
@@ -19417,9 +19246,6 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define LIBIDN 1" >>confdefs.h
-printf "%s\n" "#define LIBIDN_HEADER <idn2.h>" >>confdefs.h
-
-
fi
fi
@@ -20245,7 +20071,6 @@ fi
-
# Checks for optional library functions.
ac_fn_c_check_func "$LINENO" "accept4" "ac_cv_func_accept4"
if test "x$ac_cv_func_accept4" = xyes
@@ -20330,7 +20155,7 @@ else $as_nop
fi
- if test "$explicit_bzero" = "no" -a "$explicit_memset" = "no" -a "$gnutls_memset" = "yes"; then
+ if test "$explicit_bzero" = "no" -a "$explicit_memset" = "no"; then
USE_GNUTLS_MEMSET_TRUE=
USE_GNUTLS_MEMSET_FALSE='#'
else
@@ -20409,14 +20234,19 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
-# Check for '__atomic' compiler builtin atomic functions.
+# Check for a C11 or GCC-style '__atomic' compiler builtin atomic functions.
+atomic_type="none"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdint.h>
+#if (__STDC_VERSION__ < 201112L) || defined(__STDC_NO_ATOMICS__)
+ #error "No C11 atomics"
+ #endif
+ #include <stdatomic.h>
int
main (void)
{
-uint64_t val = 0; __atomic_add_fetch(&val, 1, __ATOMIC_RELAXED);
+atomic_uint_fast64_t val = 0;
+ atomic_fetch_add_explicit(&val, 1, memory_order_relaxed);
;
return 0;
}
@@ -20424,21 +20254,17 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
-printf "%s\n" "#define HAVE_ATOMIC 1" >>confdefs.h
-
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
+printf "%s\n" "#define HAVE_C11_ATOMIC 1" >>confdefs.h
-# Check for '__sync' compiler builtin atomic functions.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ atomic_type="C11"
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdint.h>
int
main (void)
{
-int val = 0; __sync_add_and_fetch(&val, 1);
+uint64_t val = 0; __atomic_add_fetch(&val, 1, __ATOMIC_RELAXED);
;
return 0;
}
@@ -20446,8 +20272,13 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
-printf "%s\n" "#define HAVE_SYNC_ATOMIC 1" >>confdefs.h
+printf "%s\n" "#define HAVE_GCC_ATOMIC 1" >>confdefs.h
+
+ atomic_type="__atomic"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
@@ -20799,191 +20630,15 @@ else
fi
-if test "$enable_documentation" = "yes"
-then :
-
-
-# Extract the first word of "sphinx-build", so it can be a program name with args.
-set dummy sphinx-build; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_SPHINXBUILD+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $SPHINXBUILD in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_SPHINXBUILD="$SPHINXBUILD" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_path_SPHINXBUILD="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_SPHINXBUILD" && ac_cv_path_SPHINXBUILD="false"
- ;;
-esac
-fi
-SPHINXBUILD=$ac_cv_path_SPHINXBUILD
-if test -n "$SPHINXBUILD"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SPHINXBUILD" >&5
-printf "%s\n" "$SPHINXBUILD" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-if test "$SPHINXBUILD" = "false"
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: missing 'sphinx-build' executable for documentation generation" >&5
-printf "%s\n" "$as_me: WARNING: missing 'sphinx-build' executable for documentation generation" >&2;}
-
-fi
-# Extract the first word of "pdflatex", so it can be a program name with args.
-set dummy pdflatex; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_PDFLATEX+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $PDFLATEX in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PDFLATEX="$PDFLATEX" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_path_PDFLATEX="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_PDFLATEX" && ac_cv_path_PDFLATEX="false"
- ;;
-esac
-fi
-PDFLATEX=$ac_cv_path_PDFLATEX
-if test -n "$PDFLATEX"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PDFLATEX" >&5
-printf "%s\n" "$PDFLATEX" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-# Extract the first word of "makeinfo", so it can be a program name with args.
-set dummy makeinfo; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_MAKEINFO+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $MAKEINFO in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_MAKEINFO="$MAKEINFO" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_path_MAKEINFO="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_MAKEINFO" && ac_cv_path_MAKEINFO="false"
- ;;
-esac
-fi
-MAKEINFO=$ac_cv_path_MAKEINFO
-if test -n "$MAKEINFO"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAKEINFO" >&5
-printf "%s\n" "$MAKEINFO" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-
-
-fi
-
- if test "$SPHINXBUILD" != "false"; then
- HAVE_SPHINXBUILD_TRUE=
- HAVE_SPHINXBUILD_FALSE='#'
-else
- HAVE_SPHINXBUILD_TRUE='#'
- HAVE_SPHINXBUILD_FALSE=
-fi
-
- if test "$PDFLATEX" != "false"; then
- HAVE_PDFLATEX_TRUE=
- HAVE_PDFLATEX_FALSE='#'
-else
- HAVE_PDFLATEX_TRUE='#'
- HAVE_PDFLATEX_FALSE=
-fi
-
- if test "$MAKEINFO" != "false"; then
- HAVE_MAKEINFO_TRUE=
- HAVE_MAKEINFO_FALSE='#'
-else
- HAVE_MAKEINFO_TRUE='#'
- HAVE_MAKEINFO_FALSE=
-fi
-
-
# Strip -fdebug-prefix-map= parameters from flags for better reproducibility of binaries.
filtered_cflags=$(echo -n "$CFLAGS" | \
sed 's/[^[:alnum:]]-f[^[:space:]]*-prefix-map=[^[:space:]]*//g')
filtered_cppflags=$(echo -n "$CPPFLAGS" | \
sed 's/[^[:alnum:]]-f[^[:space:]]*-prefix-map=[^[:space:]]*//g')
+filtered_config_params=$(echo -n "$ac_configure_args" | \
+ sed 's/[^[:alnum:]]-f[^[:space:]]*-prefix-map=[^[:space:]]*//g')
-result_msg_base=" Knot DNS $VERSION
-
+result_msg_base="
Target: $host_os $host_cpu $endianity
Compiler: ${CC}
CFLAGS: ${filtered_cflags} ${filtered_cppflags}
@@ -21013,6 +20668,7 @@ result_msg_base=" Knot DNS $VERSION
XDP support: ${enable_xdp}
DoQ support: ${enable_quic}
Socket polling: ${socket_polling}
+ Atomic support: ${atomic_type}
Memory allocator: ${with_memory_allocator}
Fast zone parser: ${enable_fastparser}
Utilities with IDN: ${with_libidn}
@@ -21020,17 +20676,17 @@ result_msg_base=" Knot DNS $VERSION
Utilities with Dnstap: ${enable_dnstap}
MaxMind DB support: ${enable_maxminddb}
Systemd integration: ${enable_systemd}
+ D-Bus support: ${enable_dbus}
POSIX capabilities: ${enable_cap_ng}
PKCS #11 support: ${enable_pkcs11}
- Ed25519 support: ${enable_ed25519}
Ed448 support: ${enable_ed448}
- Reproducible signing: ${enable_repro_signing}
+
Code coverage: ${enable_code_coverage}
Sanitizer: ${with_sanitizer}
LibFuzzer: ${with_fuzzer}
OSS-Fuzz: ${with_oss_fuzz}"
-result_msg_esc=$(echo -n "$result_msg_base" | sed '$!s/$/\\n/' | tr -d '\n')
+result_msg_esc=$(echo -n " Configure:$filtered_config_params\n$result_msg_base" | sed '$!s/$/\\n/' | tr -d '\n')
printf "%s\n" "#define CONFIGURE_SUMMARY \"$result_msg_esc\"" >>confdefs.h
@@ -21188,12 +20844,16 @@ if test -z "${HAVE_UTILS_TRUE}" && test -z "${HAVE_UTILS_FALSE}"; then
as_fn_error $? "conditional \"HAVE_UTILS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${HAVE_LIBUTILS_TRUE}" && test -z "${HAVE_LIBUTILS_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_LIBUTILS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${HAVE_DOCS_TRUE}" && test -z "${HAVE_DOCS_FALSE}"; then
as_fn_error $? "conditional \"HAVE_DOCS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${HAVE_LIBUTILS_TRUE}" && test -z "${HAVE_LIBUTILS_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_LIBUTILS\" was never defined.
+if test -z "${HAVE_PDFLATEX_TRUE}" && test -z "${HAVE_PDFLATEX_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_PDFLATEX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${FAST_PARSER_TRUE}" && test -z "${FAST_PARSER_FALSE}"; then
@@ -21348,18 +21008,6 @@ if test -z "${OSS_FUZZ_TRUE}" && test -z "${OSS_FUZZ_FALSE}"; then
as_fn_error $? "conditional \"OSS_FUZZ\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${HAVE_SPHINXBUILD_TRUE}" && test -z "${HAVE_SPHINXBUILD_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_SPHINXBUILD\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_PDFLATEX_TRUE}" && test -z "${HAVE_PDFLATEX_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_PDFLATEX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_MAKEINFO_TRUE}" && test -z "${HAVE_MAKEINFO_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_MAKEINFO\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
@@ -21750,7 +21398,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by knot $as_me 3.3.7, which was
+This file was extended by knot $as_me 3.4.0, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21818,7 +21466,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-knot config.status 3.3.7
+knot config.status 3.4.0
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
@@ -23543,9 +23191,11 @@ printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result:
+ Knot DNS $VERSION
$result_msg_base
" >&5
printf "%s\n" "
+ Knot DNS $VERSION
$result_msg_base
" >&6; }
diff --git a/configure.ac b/configure.ac
index 949d734..eb11c14 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
AC_PREREQ([2.69])
m4_define([knot_VERSION_MAJOR], 3)dnl
-m4_define([knot_VERSION_MINOR], 3)dnl
-m4_define([knot_VERSION_PATCH], 7)dnl Leave empty if the master branch!
+m4_define([knot_VERSION_MINOR], 4)dnl
+m4_define([knot_VERSION_PATCH], 0)dnl Leave empty if the master branch!
m4_include([m4/knot-version.m4])
AC_INIT([knot], [knot_PKG_VERSION], [knot-dns@labs.nic.cz])
@@ -16,7 +16,7 @@ AC_CANONICAL_HOST
# Update library versions
# https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
-KNOT_LIB_VERSION([libknot], 14, 0, 0)
+KNOT_LIB_VERSION([libknot], 15, 0, 0)
KNOT_LIB_VERSION([libdnssec], 9, 0, 0)
KNOT_LIB_VERSION([libzscanner], 4, 0, 0)
@@ -24,10 +24,6 @@ AC_SUBST([KNOT_VERSION_MAJOR], knot_VERSION_MAJOR)
AC_SUBST([KNOT_VERSION_MINOR], knot_VERSION_MINOR)
AC_SUBST([KNOT_VERSION_PATCH], knot_VERSION_PATCH)
-# Store ./configure parameters and CFLAGS
-AC_DEFINE_UNQUOTED([CONFIGURE_PARAMS],["$*"],[Params passed to configure])
-AC_DEFINE_UNQUOTED([CONFIGURE_CFLAGS],["$CFLAGS"],[Passed CFLAGS from environment])
-
AC_CONFIG_FILES([src/libknot/version.h
src/libdnssec/version.h
src/libzscanner/version.h])
@@ -119,14 +115,23 @@ AC_ARG_ENABLE([modules],
AC_ARG_ENABLE([utilities],
AS_HELP_STRING([--disable-utilities], [Don't build Knot DNS utilities]), [], [enable_utilities=yes])
AM_CONDITIONAL([HAVE_UTILS], [test "$enable_utilities" = "yes"])
+AM_CONDITIONAL([HAVE_LIBUTILS], test "$enable_utilities" != "no" -o \
+ "$enable_daemon" != "no")
# Build Knot DNS documentation
AC_ARG_ENABLE([documentation],
AS_HELP_STRING([--disable-documentation], [Don't build Knot DNS documentation]), [], [enable_documentation=yes])
+AS_IF([test "$enable_documentation" = "yes"], [
+ AC_PATH_PROG([SPHINXBUILD], [sphinx-build], [false])
+ AS_IF([test "$SPHINXBUILD" = "false"],
+ [AC_MSG_WARN([missing 'sphinx-build' executable for documentation generation])
+ enable_documentation=no]
+ )
+ AC_PATH_PROG([PDFLATEX], [pdflatex], [false])
+])
AM_CONDITIONAL([HAVE_DOCS], [test "$enable_documentation" = "yes"])
+AM_CONDITIONAL([HAVE_PDFLATEX], test "$PDFLATEX" != "false")
-AM_CONDITIONAL([HAVE_LIBUTILS], test "$enable_utilities" != "no" -o \
- "$enable_daemon" != "no")
######################
# Generic dependencies
######################
@@ -138,7 +143,7 @@ AC_ARG_ENABLE([fastparser],
AM_CONDITIONAL([FAST_PARSER], [test "$enable_fastparser" = "yes"])
# GnuTLS crypto backend
-PKG_CHECK_MODULES([gnutls], [gnutls >= 3.3], [
+PKG_CHECK_MODULES([gnutls], [gnutls >= 3.6.10], [
save_CFLAGS=$CFLAGS
save_LIBS=$LIBS
CFLAGS="$CFLAGS $gnutls_CFLAGS"
@@ -148,35 +153,12 @@ PKG_CHECK_MODULES([gnutls], [gnutls >= 3.3], [
AS_IF([test "$enable_pkcs11" = yes],
[AC_DEFINE([ENABLE_PKCS11], [1], [PKCS #11 support available])])
- AC_CHECK_DECL([GNUTLS_PK_EDDSA_ED25519],
- [AC_DEFINE([HAVE_ED25519], [1], [GnuTLS ED25519 support available])
- enable_ed25519=yes],
- [enable_ed25519=no],
- [#include <gnutls/gnutls.h>])
-
AC_CHECK_DECL([GNUTLS_SIGN_EDDSA_ED448],
[AC_DEFINE([HAVE_ED448], [1], [GnuTLS ED448 support available])
enable_ed448=yes],
[enable_ed448=no],
[#include <gnutls/gnutls.h>])
- AC_CHECK_DECL([GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE],
- [AC_DEFINE([HAVE_GNUTLS_REPRODUCIBLE], [1], [GnuTLS reproducible signing available])
- # Ensure the version is at least 3.6.10
- AC_CHECK_FUNC([gnutls_aead_cipher_encryptv2], [enable_repro_signing=yes], [enable_repro_signing=no])],
- [enable_repro_signing=no],
- [#include <gnutls/abstract.h>])
-
- AC_CHECK_FUNC([gnutls_privkey_sign_data2],
- [AC_DEFINE([HAVE_SIGN_DATA2], [1], [gnutls_privkey_sign_data2 available])])
-
- AC_CHECK_FUNC([gnutls_privkey_export_x509],
- [AC_DEFINE([HAVE_EXPORT_X509], [1], [gnutls_privkey_export_x509 available])])
-
- AC_CHECK_FUNC([gnutls_memset],
- [AC_DEFINE([HAVE_GNUTLS_MEMSET], [1], [gnutls_memset available])
- gnutls_memset=yes], [gnutls_memset=no])
-
AC_CHECK_FUNC([gnutls_early_cipher_get],
[AC_DEFINE([HAVE_GNUTLS_QUIC], [1], [gnutls_early_cipher_get available])
gnutls_quic=yes], [gnutls_quic=no])
@@ -281,6 +263,10 @@ AC_ARG_ENABLE([systemd],
AS_HELP_STRING([--enable-systemd=auto|yes|no], [enable systemd integration [default=auto]]),
[enable_systemd="$enableval"], [enable_systemd=auto])
+AC_ARG_ENABLE([dbus],
+ AS_HELP_STRING([--enable-dbus=auto|systemd|libdbus|no], [enable D-bus support [default=auto]]),
+ [enable_dbus="$enableval"], [enable_dbus=auto])
+
AS_IF([test "$enable_daemon" = "yes"],[
AS_IF([test "$enable_systemd" != "no"],[
@@ -293,11 +279,28 @@ AS_IF([test "$enable_systemd" != "no"],[
])
AS_IF([test "$enable_systemd" = "yes"],[
- AC_DEFINE([ENABLE_SYSTEMD], [1], [Use systemd integration.])
- AC_CHECK_HEADER([systemd/sd-bus.h],
- [AC_DEFINE([ENABLE_DBUS], [1], [systemd D-Bus available])],
- [enable_systemd="yes (without D-Bus)"])
-])
+ AC_DEFINE([ENABLE_SYSTEMD], [1], [Use systemd integration.])])
+
+AS_IF([test "$enable_dbus" != "no"],[
+ AS_CASE([$enable_dbus],
+ [auto],[AS_IF([test "$enable_systemd" = "yes"],
+ [AC_DEFINE([ENABLE_DBUS_SYSTEMD], [1], [systemd D-Bus available])
+ enable_dbus=systemd],
+ [PKG_CHECK_MODULES([libdbus], [dbus-1],
+ [AC_DEFINE([ENABLE_DBUS_LIBDBUS], [1], [libdbus D-Bus available])
+ enable_dbus=libdbus],
+ [enable_dbus=no])])],
+ [systemd],[AS_IF([test "$enable_systemd" = "yes"],
+ [AC_DEFINE([ENABLE_DBUS_SYSTEMD], [1], [systemd D-Bus available])
+ enable_dbus=systemd],
+ [AC_MSG_ERROR([systemd >= 221 not available.])])],
+ [libdbus],[PKG_CHECK_MODULES([libdbus], [dbus-1],
+ [AC_DEFINE([ENABLE_DBUS_LIBDBUS], [1], [libdbus D-Bus available])
+ enable_dbus=libdbus],
+ [AC_MSG_ERROR([libdbus not available.])])],
+ [no],[enable_dbus=no],
+ [*],[AC_MSG_ERROR([Invalid value of --enable-dbus.])])
+ ])
]) dnl enable_daemon
@@ -347,54 +350,10 @@ AC_ARG_WITH([memory-allocator],
AS_IF([test "$with_memory_allocator" = ""], [with_memory_allocator="auto"])
AC_SUBST([malloc_LIBS])
-dnl Check for userspace-rcu library
-AC_ARG_WITH(urcu,
-[ --with-urcu=DIR where to find userspace-rcu library])
-
AS_IF([test "$enable_daemon" = "yes"],[
-AS_IF([test "$with_urcu" != "no"], [
- PKG_CHECK_MODULES([liburcu], liburcu, [
- liburcu_PKGCONFIG="liburcu >= 0.4.0"
- AC_SUBST([liburcu_PKGCONFIG])
- with_urcu=yes
- ],[
- for try_urcu in "$with_urcu" "" "/usr/local"; do
- save_LIBS="$LIBS"
- save_CPPFLAGS="$CPPFLAGS"
-
- AS_IF([test -d "$try_urcu"], [
- liburcu_CFLAGS="-I$try_urcu/include"
- liburcu_LIBS="-L$try_urcu/lib"
- ],[
- liburcu_CFLAGS=""
- liburcu_LIBS=""
- ])
-
- CPPFLAGS="$CPPFLAGS $liburcu_CFLAGS"
- LIBS="$LIBS $liburcu_LIBS"
-
- AC_SEARCH_LIBS([rcu_set_pointer_sym], [urcu], [
- with_urcu=yes
- liburcu_LIBS="$liburcu_LIBS -lurcu"
- AC_SUBST([liburcu_CFLAGS])
- AC_SUBST([liburcu_LIBS])
- break
- ],[
- CPPFLAGS="$save_CPPFLAGS"
- LIBS="$save_LIBS"
- with_urcu=no
- # do not cache result of AC_SEARCH_LIBS test
- unset ac_cv_search_rcu_set_pointer_sym
- ])
- done
- CPPFLAGS="$save_CPPFLAGS"
- LIBS="$save_LIBS"
-
- AS_IF([test "$with_urcu" = "no"],[
- AC_MSG_ERROR([liburcu is required])
- ])
- ])
+PKG_CHECK_MODULES([liburcu], [liburcu], [], [
+ AC_MSG_ERROR([liburcu not found])
])
])
@@ -604,9 +563,9 @@ AS_IF([test "$enable_quic" != "no"], [
# Dependencies needed for Knot DNS utilities
############################################
-dnl Check for libidn.
+dnl Check for libidn2.
AC_ARG_WITH(libidn,
- AS_HELP_STRING([--with-libidn=[DIR]], [Support IDN (needs GNU libidn2 or libidn)]),
+ AS_HELP_STRING([--with-libidn=[DIR]], [Support IDN (needs GNU libidn2)]),
with_libidn=$withval,
with_libidn=yes
)
@@ -623,16 +582,9 @@ AS_IF([test "$enable_utilities" = "yes"], [
PKG_CHECK_MODULES([libidn2], [libidn2 >= 2.0.0], [
with_libidn=libidn2
AC_DEFINE([LIBIDN], [1], [Define to 1 to enable IDN support])
- AC_DEFINE([LIBIDN_HEADER], [<idn2.h>], [Define to proper libidn header])
], [
- PKG_CHECK_MODULES([libidn], [libidn >= 0.0.0], [
- with_libidn=libidn
- AC_DEFINE([LIBIDN], [1], [Define to 1 to enable IDN support])
- AC_DEFINE([LIBIDN_HEADER], [<idna.h>], [Define to proper libidn header])
- ], [
- with_libidn=no
- AC_MSG_WARN([libidn2 or libidn not found])
- ])
+ with_libidn=no
+ AC_MSG_WARN([libidn2 not found])
])
])
@@ -721,7 +673,7 @@ LIBS="$save_LIBS"
# Checks for header files.
AC_HEADER_RESOLV
-AC_CHECK_HEADERS_ONCE([pthread_np.h stdatomic.h sys/uio.h bsd/string.h])
+AC_CHECK_HEADERS_ONCE([pthread_np.h sys/uio.h bsd/string.h])
# Checks for optional library functions.
AC_CHECK_FUNCS([accept4 fgetln getline initgroups malloc_trim \
@@ -736,7 +688,7 @@ AC_CHECK_FUNC([explicit_memset], [
AC_DEFINE([HAVE_EXPLICIT_MEMSET], [1], [explicit_memset available])
explicit_memset=yes], [explicit_memset=no]
)
-AM_CONDITIONAL([USE_GNUTLS_MEMSET], [test "$explicit_bzero" = "no" -a "$explicit_memset" = "no" -a "$gnutls_memset" = "yes"])
+AM_CONDITIONAL([USE_GNUTLS_MEMSET], [test "$explicit_bzero" = "no" -a "$explicit_memset" = "no"])
# Check for mandatory library functions.
AC_CHECK_FUNC([vasprintf], [], [
@@ -750,18 +702,23 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread_np.h>]], [[cpuset_t set; CPU
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sched.h>]], [[cpuset_t* set = cpuset_create(); cpuset_destroy(set);]])],
[AC_DEFINE(HAVE_CPUSET_NETBSD, 1, [Define if cpuset_t and cpuset(3) exists.])])
-# Check for '__atomic' compiler builtin atomic functions.
-AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([[#include <stdint.h>]],
- [[uint64_t val = 0; __atomic_add_fetch(&val, 1, __ATOMIC_RELAXED);]])],
- [AC_DEFINE(HAVE_ATOMIC, 1, [Define to 1 if you have '__atomic' functions.])]
-)
-
-# Check for '__sync' compiler builtin atomic functions.
+# Check for a C11 or GCC-style '__atomic' compiler builtin atomic functions.
+atomic_type="none"
AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([[#include <stdint.h>]],
- [[int val = 0; __sync_add_and_fetch(&val, 1);]])],
- [AC_DEFINE(HAVE_SYNC_ATOMIC, 1, [Define to 1 if you have '__sync' functions.])]
+ [AC_LANG_PROGRAM([[#if (__STDC_VERSION__ < 201112L) || defined(__STDC_NO_ATOMICS__)
+ #error "No C11 atomics"
+ #endif
+ #include <stdatomic.h>]],
+ [[atomic_uint_fast64_t val = 0;]]
+ [[atomic_fetch_add_explicit(&val, 1, memory_order_relaxed);]])],
+ [AC_DEFINE(HAVE_C11_ATOMIC, 1, [Define to 1 if you have C11 'atomic' functions.])
+ atomic_type="C11"],
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[#include <stdint.h>]],
+ [[uint64_t val = 0; __atomic_add_fetch(&val, 1, __ATOMIC_RELAXED);]])],
+ [AC_DEFINE(HAVE_GCC_ATOMIC, 1, [Define to 1 if you have GCC-style '__atomic' functions.])
+ atomic_type="__atomic"]
+ )
)
# Prepare CFLAG_VISIBILITY to be used where needed
@@ -775,29 +732,15 @@ AS_IF([test -n "$sanitizer_CFLAGS"], [CFLAGS="$CFLAGS $sanitizer_CFLAGS"])
AM_CONDITIONAL([FUZZER], [test "$with_fuzzer" != "no"])
AM_CONDITIONAL([OSS_FUZZ], [test "$with_oss_fuzz" != "no"])
-AS_IF([test "$enable_documentation" = "yes"],[
-
-AC_PATH_PROG([SPHINXBUILD], [sphinx-build], [false])
-AS_IF([test "$SPHINXBUILD" = "false"],
- [AC_MSG_WARN([missing 'sphinx-build' executable for documentation generation])]
-)
-AC_PATH_PROG([PDFLATEX], [pdflatex], [false])
-AC_PATH_PROG([MAKEINFO], [makeinfo], [false])
-
-])
-
-AM_CONDITIONAL([HAVE_SPHINXBUILD], test "$SPHINXBUILD" != "false")
-AM_CONDITIONAL([HAVE_PDFLATEX], test "$PDFLATEX" != "false")
-AM_CONDITIONAL([HAVE_MAKEINFO], test "$MAKEINFO" != "false")
-
# Strip -fdebug-prefix-map= parameters from flags for better reproducibility of binaries.
filtered_cflags=$(echo -n "$CFLAGS" | \
sed 's/[[^[:alnum:]]]-f[[^[:space:]]]*-prefix-map=[[^[:space:]]]*//g')
filtered_cppflags=$(echo -n "$CPPFLAGS" | \
sed 's/[[^[:alnum:]]]-f[[^[:space:]]]*-prefix-map=[[^[:space:]]]*//g')
+filtered_config_params=$(echo -n "$ac_configure_args" | \
+ sed 's/[[^[:alnum:]]]-f[[^[:space:]]]*-prefix-map=[[^[:space:]]]*//g')
-result_msg_base=" Knot DNS $VERSION
-
+result_msg_base="
Target: $host_os $host_cpu $endianity
Compiler: ${CC}
CFLAGS: ${filtered_cflags} ${filtered_cppflags}
@@ -827,6 +770,7 @@ result_msg_base=" Knot DNS $VERSION
XDP support: ${enable_xdp}
DoQ support: ${enable_quic}
Socket polling: ${socket_polling}
+ Atomic support: ${atomic_type}
Memory allocator: ${with_memory_allocator}
Fast zone parser: ${enable_fastparser}
Utilities with IDN: ${with_libidn}
@@ -834,17 +778,17 @@ result_msg_base=" Knot DNS $VERSION
Utilities with Dnstap: ${enable_dnstap}
MaxMind DB support: ${enable_maxminddb}
Systemd integration: ${enable_systemd}
+ D-Bus support: ${enable_dbus}
POSIX capabilities: ${enable_cap_ng}
PKCS #11 support: ${enable_pkcs11}
- Ed25519 support: ${enable_ed25519}
Ed448 support: ${enable_ed448}
- Reproducible signing: ${enable_repro_signing}
+
Code coverage: ${enable_code_coverage}
Sanitizer: ${with_sanitizer}
LibFuzzer: ${with_fuzzer}
OSS-Fuzz: ${with_oss_fuzz}"
-result_msg_esc=$(echo -n "$result_msg_base" | sed '$!s/$/\\n/' | tr -d '\n')
+result_msg_esc=$(echo -n " Configure:$filtered_config_params\n$result_msg_base" | sed '$!s/$/\\n/' | tr -d '\n')
AC_DEFINE_UNQUOTED([CONFIGURE_SUMMARY],["$result_msg_esc"],[Configure summary])
@@ -875,5 +819,6 @@ AC_CONFIG_FILES([doc/modules.rst],
AC_OUTPUT
AC_MSG_RESULT([
+ Knot DNS $VERSION
$result_msg_base
])
diff --git a/debian/changelog b/debian/changelog
index ee4b146..d9aa990 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,183 @@
+knot (3.4.0-4~progress7.99u1) graograman-backports; urgency=medium
+
+ * Uploading to graograman-backports, remaining changes:
+ - Updating maintainer field.
+ - Updating uploaders field.
+ - Updating bugs field.
+ - Updating vcs fields.
+ - Adding update-alternatives to use kdig for /usr/bin/dig (Closes:
+ #932087).
+ - Adding update-alternatives to use knsupdate for /usr/bin/nsupdate.
+ - Adding update-alternatives to use khost for /usr/bin/host.
+ - Reverting t64 migration for backports.
+ - Updating libknot15.symbols to fix FTBFS.
+ * Merging debian version 3.4.0-4.
+
+ -- Daniel Baumann <daniel.baumann@progress-linux.org> Thu, 12 Sep 2024 06:57:52 +0200
+
+knot (3.4.0-4) unstable; urgency=medium
+
+ [ Daniel Salzman ]
+ * Remove knot_quic_* symbols for non-well supported architectures
+
+ -- Jakub Ružička <jru@debian.org> Mon, 09 Sep 2024 12:48:18 +0200
+
+knot (3.4.0-3~progress7.99u1) graograman-backports; urgency=medium
+
+ * Uploading to graograman-backports, remaining changes:
+ - Updating maintainer field.
+ - Updating uploaders field.
+ - Updating bugs field.
+ - Updating vcs fields.
+ - Adding update-alternatives to use kdig for /usr/bin/dig (Closes:
+ #932087).
+ - Adding update-alternatives to use knsupdate for /usr/bin/nsupdate.
+ - Adding update-alternatives to use khost for /usr/bin/host.
+ - Reverting t64 migration for backports.
+ * Merging debian version 3.4.0-3.
+ * Updating libknot15.symbols to fix FTBFS.
+
+ -- Daniel Baumann <daniel.baumann@progress-linux.org> Thu, 12 Sep 2024 06:57:35 +0200
+
+knot (3.4.0-3) unstable; urgency=medium
+
+ [ Daniel Salzman ]
+ * Fix maint mode (disabled fast parser)
+ * Enable extra modules and features only for well supported architectures
+ * Tiny rules cleanup
+ * Remove timeout for tests on well supported architectures
+ * Remove ufw configuration
+ * Add missing dependency for test libdnssec/test_keystore_pkcs11
+
+ [ Jakub Ružička ]
+ * Remove unwanted /usr/sbin/knot-exporter dir (Closes: #1081191)
+
+ -- Jakub Ružička <jru@debian.org> Mon, 09 Sep 2024 10:49:08 +0200
+
+knot (3.4.0-2~progress7.99u1) graograman-backports; urgency=medium
+
+ * Uploading to graograman-backports, remaining changes:
+ - Updating maintainer field.
+ - Updating uploaders field.
+ - Updating bugs field.
+ - Updating vcs fields.
+ - Adding update-alternatives to use kdig for /usr/bin/dig (Closes:
+ #932087).
+ - Adding update-alternatives to use knsupdate for /usr/bin/nsupdate.
+ - Adding update-alternatives to use khost for /usr/bin/host.
+ - Reverting t64 migration for backports.
+ * Merging debian version 3.4.0-2.
+
+ -- Daniel Baumann <daniel.baumann@progress-linux.org> Thu, 12 Sep 2024 06:56:29 +0200
+
+knot (3.4.0-2) unstable; urgency=medium
+
+ [ Jakub Ružička ]
+ * Drop t64 suffix from libknot15 after soname bump (Closes: #1080499)
+
+ [ Daniel Salzman ]
+ * Update -latomic usage (Closes: #1080514)
+ * Disable DNSTAP on hurd-amd64 and hurd-i386
+ * Disable GEOIP on hurd-amd64 and hurd-i386
+ * Unification of architecture-dependent exceptions
+ * Disable RRL on hurd-amd64 and hurd-i386
+
+ -- Jakub Ružička <jru@debian.org> Thu, 05 Sep 2024 15:15:17 +0200
+
+knot (3.4.0-1~progress7.99u1) graograman-backports; urgency=medium
+
+ * Uploading to graograman-backports, remaining changes:
+ - Updating maintainer field.
+ - Updating uploaders field.
+ - Updating bugs field.
+ - Updating vcs fields.
+ - Adding update-alternatives to use kdig for /usr/bin/dig (Closes:
+ #932087).
+ - Adding update-alternatives to use knsupdate for /usr/bin/nsupdate.
+ - Adding update-alternatives to use khost for /usr/bin/host.
+ - Reverting t64 migration for backports.
+ * Merging upstream version 3.4.0.
+ * Merging debian version 3.4.0-1.
+
+ -- Daniel Baumann <daniel.baumann@progress-linux.org> Thu, 12 Sep 2024 06:50:31 +0200
+
+knot (3.4.0-1) unstable; urgency=medium
+
+ * New upstream version 3.4.0
+ * d/gbp.conf: Use upstream/3.4 branch for 3.4.x
+ * SONAME bump: libknot 14 -> 15
+ * Move Build-Depends-Indep to Build-Depends
+ * Remove unused lintian-overrides
+
+ -- Jakub Ružička <jru@debian.org> Tue, 03 Sep 2024 12:47:35 +0200
+
+knot (3.3.9-1~progress7.99u1) graograman-backports; urgency=medium
+
+ * Uploading to graograman-backports, remaining changes:
+ - Updating maintainer field.
+ - Updating uploaders field.
+ - Updating bugs field.
+ - Updating vcs fields.
+ - Adding update-alternatives to use kdig for /usr/bin/dig (Closes:
+ #932087).
+ - Adding update-alternatives to use knsupdate for /usr/bin/nsupdate.
+ - Adding update-alternatives to use khost for /usr/bin/host.
+ - Reverting t64 migration for backports.
+ * Merging upstream version 3.3.9.
+ * Merging debian version 3.3.9-1.
+
+ -- Daniel Baumann <daniel.baumann@progress-linux.org> Thu, 12 Sep 2024 06:44:33 +0200
+
+knot (3.3.9-1) unstable; urgency=medium
+
+ * New upstream version 3.3.9 (Closes: #1078625)
+ * Add libknot to python3-libknot Depends
+ * Update Build-Depends: pkg-config => pkgconf
+
+ -- Jakub Ružička <jru@debian.org> Mon, 26 Aug 2024 13:07:53 +0200
+
+knot (3.3.8-1~progress7.99u1) graograman-backports; urgency=medium
+
+ * Uploading to graograman-backports, remaining changes:
+ - Updating maintainer field.
+ - Updating uploaders field.
+ - Updating bugs field.
+ - Updating vcs fields.
+ - Adding update-alternatives to use kdig for /usr/bin/dig (Closes:
+ #932087).
+ - Adding update-alternatives to use knsupdate for /usr/bin/nsupdate.
+ - Adding update-alternatives to use khost for /usr/bin/host.
+ - Reverting t64 migration for backports.
+ * Merging upstream version 3.3.8.
+ * Merging debian version 3.3.8-1.
+
+ -- Daniel Baumann <daniel.baumann@progress-linux.org> Thu, 12 Sep 2024 06:43:45 +0200
+
+knot (3.3.8-1) unstable; urgency=medium
+
+ * New upstream version 3.3.8
+ * Update Standards-Version to 4.7.0 (no changes)
+ * Update my email in Uploaders to jru@debian.org
+
+ -- Jakub Ružička <jru@debian.org> Mon, 22 Jul 2024 15:32:31 +0200
+
+knot (3.3.7-1~progress7.99u1) graograman-backports; urgency=medium
+
+ * Uploading to graograman-backports, remaining changes:
+ - Updating maintainer field.
+ - Updating uploaders field.
+ - Updating bugs field.
+ - Updating vcs fields.
+ - Adding update-alternatives to use kdig for /usr/bin/dig (Closes:
+ #932087).
+ - Adding update-alternatives to use knsupdate for /usr/bin/nsupdate.
+ - Adding update-alternatives to use khost for /usr/bin/host.
+ - Reverting t64 migration for backports.
+ * Merging upstream version 3.3.7.
+ * Merging debian version 3.3.7-1.
+
+ -- Daniel Baumann <daniel.baumann@progress-linux.org> Wed, 26 Jun 2024 07:36:25 +0200
+
knot (3.3.7-1) unstable; urgency=medium
* New upstream version 3.3.7
diff --git a/debian/control b/debian/control
index 660327f..04160ef 100644
--- a/debian/control
+++ b/debian/control
@@ -9,41 +9,40 @@ XSBC-Original-Uploaders:
Daniel Salzman <daniel.salzman@nic.cz>,
Daniel Kahn Gillmor <dkg@fifthhorseman.net>,
Robert Edmonds <edmonds@debian.org>,
- Jakub Ružička <jakub.ruzicka@nic.cz>,
+ Jakub Ružička <jru@debian.org>,
Bugs: mailto:maintainers@lists.progress-linux.org
-Build-Depends-Indep:
- python3-setuptools,
- python3-sphinx,
- python3-sphinx-panels,
Build-Depends:
autoconf,
automake,
debhelper-compat (= 13),
dh-python,
dpkg-dev (>= 1.22.5),
- libbpf-dev [!hurd-amd64 !hurd-i386 !alpha !arc !hppa !ia64 !loong64 !m68k !powerpc !sh4 !sparc64 !x32],
+ libbpf-dev [amd64 arm64 armhf i386 mips64el ppc64el riscv64 s390x ppc64],
libcap-ng-dev [!hurd-amd64 !hurd-i386],
libedit-dev,
- libfstrm-dev,
+ libfstrm-dev [amd64 arm64 armhf i386 mips64el ppc64el riscv64 s390x ppc64],
libgnutls28-dev,
libidn2-dev,
liblmdb-dev,
- libmaxminddb-dev,
- libmnl-dev [!hurd-amd64 !hurd-i386 !alpha !arc !hppa !ia64 !loong64 !m68k !powerpc !sh4 !sparc64 !x32],
+ libmaxminddb-dev [amd64 arm64 armhf i386 mips64el ppc64el riscv64 s390x ppc64],
+ libmnl-dev [amd64 arm64 armhf i386 mips64el ppc64el riscv64 s390x ppc64],
libnghttp2-dev,
- libngtcp2-crypto-gnutls-dev [!hurd-amd64 !hurd-i386 !alpha !arc !hppa !ia64 !loong64 !m68k !powerpc !sh4 !sparc64 !x32],
- libngtcp2-dev [!hurd-amd64 !hurd-i386 !alpha !arc !hppa !ia64 !loong64 !m68k !powerpc !sh4 !sparc64 !x32],
- libprotobuf-c-dev,
- libsofthsm2 <!nocheck>,
+ libngtcp2-crypto-gnutls-dev [amd64 arm64 armhf i386 mips64el ppc64el riscv64 s390x ppc64],
+ libngtcp2-dev [amd64 arm64 armhf i386 mips64el ppc64el riscv64 s390x ppc64],
+ libprotobuf-c-dev [amd64 arm64 armhf i386 mips64el ppc64el riscv64 s390x ppc64],
libsystemd-dev [linux-any] | libsystemd-daemon-dev [linux-any],
libsystemd-dev [linux-any] | libsystemd-journal-dev [linux-any],
libtool,
liburcu-dev,
- libxdp-dev [!hurd-amd64 !hurd-i386 !alpha !arc !hppa !ia64 !loong64 !m68k !powerpc !sh4 !sparc64 !x32],
- pkg-config,
- protobuf-c-compiler,
+ libxdp-dev [amd64 arm64 armhf i386 mips64el ppc64el riscv64 s390x ppc64],
+ pkgconf,
+ protobuf-c-compiler [amd64 arm64 armhf i386 mips64el ppc64el riscv64 s390x ppc64],
python3-all,
-Standards-Version: 4.6.2
+ python3-setuptools,
+ python3-sphinx,
+ python3-sphinx-panels,
+ softhsm2 <!nocheck>,
+Standards-Version: 4.7.0
Homepage: https://www.knot-dns.cz/
Vcs-Browser: https://git.progress-linux.org/packages/graograman-backports/knot
Vcs-Git: https://git.progress-linux.org/packages/graograman-backports/knot
@@ -56,7 +55,7 @@ Architecture: any
Depends:
adduser,
libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
@@ -74,7 +73,7 @@ Description: Authoritative domain name server
registry and hence is well suited to run anything from the root
zone, the top-level domain, to many smaller standard domain names.
-Package: libknot14
+Package: libknot15
Architecture: any
Depends:
${misc:Depends},
@@ -130,7 +129,7 @@ Architecture: any
Depends:
libdnssec9 (= ${binary:Version}),
libgnutls28-dev,
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
Section: libdevel
@@ -149,7 +148,7 @@ Package: knot-dnsutils
Architecture: any
Depends:
libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
@@ -182,7 +181,7 @@ Package: knot-dnssecutils
Architecture: any
Depends:
libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
@@ -210,7 +209,7 @@ Package: knot-host
Architecture: any
Depends:
libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
@@ -227,7 +226,7 @@ Description: Version of 'host' bundled with Knot DNS
compatible with BIND 9.x 'host' program.
Package: knot-module-dnstap
-Architecture: any
+Architecture: amd64 arm64 armhf i386 mips64el ppc64el riscv64 s390x ppc64
Depends:
knot (= ${binary:Version}),
${misc:Depends},
@@ -243,7 +242,7 @@ Description: dnstap module for Knot DNS
This package contains dnstap module for logging DNS traffic.
Package: knot-module-geoip
-Architecture: any
+Architecture: amd64 arm64 armhf i386 mips64el ppc64el riscv64 s390x ppc64
Depends:
knot (= ${binary:Version}),
${misc:Depends},
@@ -297,6 +296,7 @@ Description: Prometheus exporter for Knot DNS
Package: python3-libknot
Architecture: all
Depends:
+ libknot15 (>= ${source:Version}),
${misc:Depends},
${python3:Depends},
Section: python
diff --git a/debian/gbp.conf b/debian/gbp.conf
index 346c603..148bde7 100644
--- a/debian/gbp.conf
+++ b/debian/gbp.conf
@@ -1,7 +1,7 @@
[DEFAULT]
debian-branch = debian/master
pristine-tar = True
-upstream-branch = upstream/3.3
+upstream-branch = upstream/3.4
upstream-vcs-tag = v%(version)s
[dch]
diff --git a/debian/knot-exporter.install b/debian/knot-exporter.install
index 4c2d5ed..9b2bf4f 100644
--- a/debian/knot-exporter.install
+++ b/debian/knot-exporter.install
@@ -1,3 +1,3 @@
usr/lib/python3*/dist-packages/knot_exporter-*.egg-info
usr/lib/python3*/dist-packages/knot_exporter/*.py
-usr/bin/knot-exporter /usr/sbin/knot-exporter
+usr/bin/knot-exporter /usr/sbin/
diff --git a/debian/knot.install b/debian/knot.install
index 5c716fc..a31224f 100644
--- a/debian/knot.install
+++ b/debian/knot.install
@@ -1,5 +1,4 @@
debian/cz.nic.knotd.conf usr/share/dbus-1/system.d/
-debian/ufw/knot etc/ufw/applications.d/
etc/knot/knot.conf
usr/sbin/kcatalogprint
usr/sbin/keymgr
diff --git a/debian/libknot14.symbols.alpha b/debian/libknot14.symbols.alpha
deleted file mode 120000
index d07ec80..0000000
--- a/debian/libknot14.symbols.alpha
+++ /dev/null
@@ -1 +0,0 @@
-libknot14.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot14.symbols.arc b/debian/libknot14.symbols.arc
deleted file mode 120000
index d07ec80..0000000
--- a/debian/libknot14.symbols.arc
+++ /dev/null
@@ -1 +0,0 @@
-libknot14.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot14.symbols.hppa b/debian/libknot14.symbols.hppa
deleted file mode 120000
index d07ec80..0000000
--- a/debian/libknot14.symbols.hppa
+++ /dev/null
@@ -1 +0,0 @@
-libknot14.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot14.symbols.hurd-amd64 b/debian/libknot14.symbols.hurd-amd64
deleted file mode 120000
index d07ec80..0000000
--- a/debian/libknot14.symbols.hurd-amd64
+++ /dev/null
@@ -1 +0,0 @@
-libknot14.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot14.symbols.hurd-i386 b/debian/libknot14.symbols.hurd-i386
deleted file mode 100644
index f2fb279..0000000
--- a/debian/libknot14.symbols.hurd-i386
+++ /dev/null
@@ -1,251 +0,0 @@
-libknot.so.14 libknot14 #MINVER#
- KNOT_DB_LMDB_DUPSORT@Base 3.3.0
- KNOT_DB_LMDB_INTEGERKEY@Base 3.3.0
- KNOT_DB_LMDB_MAPASYNC@Base 3.3.0
- KNOT_DB_LMDB_NOSYNC@Base 3.3.0
- KNOT_DB_LMDB_NOTLS@Base 3.3.0
- KNOT_DB_LMDB_RDONLY@Base 3.3.0
- KNOT_DB_LMDB_WRITEMAP@Base 3.3.0
- KNOT_DUMP_STYLE_DEFAULT@Base 3.3.0
- knot_ctl_accept@Base 3.3.0
- knot_ctl_alloc@Base 3.3.0
- knot_ctl_bind@Base 3.3.0
- knot_ctl_bind2@Base 3.3.6
- knot_ctl_close@Base 3.3.0
- knot_ctl_connect@Base 3.3.0
- knot_ctl_free@Base 3.3.0
- knot_ctl_receive@Base 3.3.0
- knot_ctl_send@Base 3.3.0
- knot_ctl_set_timeout@Base 3.3.0
- knot_ctl_unbind@Base 3.3.0
- knot_db_lmdb_api@Base 3.3.0
- knot_db_lmdb_del_exact@Base 3.3.0
- knot_db_lmdb_get_mapsize@Base 3.3.0
- knot_db_lmdb_get_path@Base 3.3.0
- knot_db_lmdb_get_usage@Base 3.3.0
- knot_db_lmdb_iter_del@Base 3.3.0
- knot_db_lmdb_txn_begin@Base 3.3.0
- knot_db_trie_api@Base 3.3.0
- knot_dname_cmp@Base 3.3.0
- knot_dname_copy@Base 3.3.0
- knot_dname_copy_lower@Base 3.3.0
- knot_dname_free@Base 3.3.0
- knot_dname_from_str@Base 3.3.0
- knot_dname_in_bailiwick@Base 3.3.0
- knot_dname_is_case_equal@Base 3.3.0
- knot_dname_is_equal@Base 3.3.0
- knot_dname_labels@Base 3.3.0
- knot_dname_lf@Base 3.3.0
- knot_dname_matched_labels@Base 3.3.0
- knot_dname_prefixlen@Base 3.3.0
- knot_dname_realsize@Base 3.3.0
- knot_dname_replace_suffix@Base 3.3.0
- knot_dname_size@Base 3.3.0
- knot_dname_store@Base 3.3.0
- knot_dname_to_lower@Base 3.3.0
- knot_dname_to_str@Base 3.3.0
- knot_dname_to_wire@Base 3.3.0
- knot_dname_unpack@Base 3.3.0
- knot_dname_wire_check@Base 3.3.0
- knot_dnssec_alg_names@Base 3.3.0
- knot_edns_add_option@Base 3.3.0
- knot_edns_alignment_size@Base 3.3.0
- knot_edns_chain_parse@Base 3.3.0
- knot_edns_chain_size@Base 3.3.0
- knot_edns_chain_write@Base 3.3.0
- knot_edns_client_subnet_get_addr@Base 3.3.0
- knot_edns_client_subnet_parse@Base 3.3.0
- knot_edns_client_subnet_set_addr@Base 3.3.0
- knot_edns_client_subnet_size@Base 3.3.0
- knot_edns_client_subnet_write@Base 3.3.0
- knot_edns_cookie_client_check@Base 3.3.0
- knot_edns_cookie_client_generate@Base 3.3.0
- knot_edns_cookie_parse@Base 3.3.0
- knot_edns_cookie_server_check@Base 3.3.0
- knot_edns_cookie_server_generate@Base 3.3.0
- knot_edns_cookie_size@Base 3.3.0
- knot_edns_cookie_write@Base 3.3.0
- knot_edns_ede_names@Base 3.3.0
- knot_edns_get_ext_rcode@Base 3.3.0
- knot_edns_get_option@Base 3.3.0
- knot_edns_get_options@Base 3.3.0
- knot_edns_get_version@Base 3.3.0
- knot_edns_init@Base 3.3.0
- knot_edns_keepalive_parse@Base 3.3.0
- knot_edns_keepalive_size@Base 3.3.0
- knot_edns_keepalive_write@Base 3.3.0
- knot_edns_opt_names@Base 3.3.0
- knot_edns_reserve_option@Base 3.3.0
- knot_edns_set_ext_rcode@Base 3.3.0
- knot_edns_set_version@Base 3.3.0
- knot_error_from_libdnssec@Base 3.3.0
- knot_get_obsolete_rdata_descriptor@Base 3.3.0
- knot_get_rdata_descriptor@Base 3.3.0
- knot_naptr_header_size@Base 3.3.0
- knot_opcode_names@Base 3.3.0
- knot_opt_code_to_string@Base 3.3.0
- knot_pkt_begin@Base 3.3.0
- knot_pkt_clear@Base 3.3.0
- knot_pkt_copy@Base 3.3.0
- knot_pkt_ext_rcode@Base 3.3.0
- knot_pkt_ext_rcode_name@Base 3.3.0
- knot_pkt_free@Base 3.3.0
- knot_pkt_init_response@Base 3.3.0
- knot_pkt_new@Base 3.3.0
- knot_pkt_parse@Base 3.3.0
- knot_pkt_parse_question@Base 3.3.0
- knot_pkt_put_question@Base 3.3.0
- knot_pkt_put_rotate@Base 3.3.0
- knot_pkt_reclaim@Base 3.3.0
- knot_pkt_reserve@Base 3.3.0
- knot_probe_alloc@Base 3.3.0
- knot_probe_consume@Base 3.3.0
- knot_probe_data_set@Base 3.3.0
- knot_probe_fd@Base 3.3.0
- knot_probe_free@Base 3.3.0
- knot_probe_produce@Base 3.3.0
- knot_probe_set_consumer@Base 3.3.0
- knot_probe_set_producer@Base 3.3.0
- knot_probe_tcp_rtt@Base 3.3.0
- knot_quic_cleanup@Base 3.3.0
- knot_quic_client@Base 3.3.0
- knot_quic_conn_get_stream@Base 3.3.0
- knot_quic_conn_local_port@Base 3.3.0
- knot_quic_conn_new_stream@Base 3.3.0
- knot_quic_conn_next_timeout@Base 3.3.3
- knot_quic_conn_pin@Base 3.3.0
- knot_quic_conn_rtt@Base 3.3.0
- knot_quic_conn_stream_free@Base 3.3.0
- knot_quic_creds_cert@Base 3.3.0
- knot_quic_free_creds@Base 3.3.0
- knot_quic_handle@Base 3.3.0
- knot_quic_hanle_expiry@Base 3.3.3
- knot_quic_init_creds@Base 3.3.0
- knot_quic_init_creds_peer@Base 3.3.0
- knot_quic_send@Base 3.3.0
- knot_quic_session_available@Base 3.3.0
- knot_quic_session_load@Base 3.3.0
- knot_quic_session_save@Base 3.3.0
- knot_quic_stream_add_data@Base 3.3.0
- knot_quic_stream_get_process@Base 3.3.0
- knot_quic_table_free@Base 3.3.0
- knot_quic_table_new@Base 3.3.0
- knot_quic_table_rem@Base 3.3.0
- knot_quic_table_sweep@Base 3.3.0
- knot_rcode_names@Base 3.3.0
- knot_rdataset_add@Base 3.3.0
- knot_rdataset_at@Base 3.3.0
- knot_rdataset_clear@Base 3.3.0
- knot_rdataset_copy@Base 3.3.0
- knot_rdataset_eq@Base 3.3.0
- knot_rdataset_intersect@Base 3.3.0
- knot_rdataset_intersect2@Base 3.3.0
- knot_rdataset_member@Base 3.3.0
- knot_rdataset_merge@Base 3.3.0
- knot_rdataset_subset@Base 3.3.0
- knot_rdataset_subtract@Base 3.3.0
- knot_rrclass_from_string@Base 3.3.0
- knot_rrclass_to_string@Base 3.3.0
- knot_rrset_add_rdata@Base 3.3.0
- knot_rrset_clear@Base 3.3.0
- knot_rrset_copy@Base 3.3.0
- knot_rrset_equal@Base 3.3.0
- knot_rrset_free@Base 3.3.0
- knot_rrset_is_nsec3rel@Base 3.3.0
- knot_rrset_new@Base 3.3.0
- knot_rrset_rr_from_wire@Base 3.3.0
- knot_rrset_rr_to_canonical@Base 3.3.0
- knot_rrset_size@Base 3.3.0
- knot_rrset_to_wire_extra@Base 3.3.0
- knot_rrset_txt_dump@Base 3.3.0
- knot_rrset_txt_dump_data@Base 3.3.0
- knot_rrset_txt_dump_edns@Base 3.3.0
- knot_rrset_txt_dump_header@Base 3.3.0
- knot_rrtype_additional_needed@Base 3.3.0
- knot_rrtype_from_string@Base 3.3.0
- knot_rrtype_is_dnssec@Base 3.3.0
- knot_rrtype_is_metatype@Base 3.3.0
- knot_rrtype_should_be_lowercased@Base 3.3.0
- knot_rrtype_to_string@Base 3.3.0
- knot_strerror@Base 3.3.0
- knot_svcb_param_names@Base 3.3.0
- knot_tcp_inbufs_upd@Base 3.3.0
- knot_tcp_outbufs_ack@Base 3.3.0
- knot_tcp_outbufs_add@Base 3.3.0
- knot_tcp_outbufs_can_send@Base 3.3.0
- knot_tcp_outbufs_usage@Base 3.3.0
- knot_tsig_add@Base 3.3.0
- knot_tsig_append@Base 3.3.0
- knot_tsig_client_check@Base 3.3.0
- knot_tsig_client_check_next@Base 3.3.0
- knot_tsig_create_rdata@Base 3.3.0
- knot_tsig_key_copy@Base 3.3.0
- knot_tsig_key_deinit@Base 3.3.0
- knot_tsig_key_init@Base 3.3.0
- knot_tsig_key_init_file@Base 3.3.0
- knot_tsig_key_init_str@Base 3.3.0
- knot_tsig_rcode_names@Base 3.3.0
- knot_tsig_rdata_alg@Base 3.3.0
- knot_tsig_rdata_alg_name@Base 3.3.0
- knot_tsig_rdata_error@Base 3.3.0
- knot_tsig_rdata_fudge@Base 3.3.0
- knot_tsig_rdata_is_ok@Base 3.3.0
- knot_tsig_rdata_mac@Base 3.3.0
- knot_tsig_rdata_mac_length@Base 3.3.0
- knot_tsig_rdata_orig_id@Base 3.3.0
- knot_tsig_rdata_other_data@Base 3.3.0
- knot_tsig_rdata_other_data_length@Base 3.3.0
- knot_tsig_rdata_set_fudge@Base 3.3.0
- knot_tsig_rdata_set_mac@Base 3.3.0
- knot_tsig_rdata_set_orig_id@Base 3.3.0
- knot_tsig_rdata_set_other_data@Base 3.3.0
- knot_tsig_rdata_set_time_signed@Base 3.3.0
- knot_tsig_rdata_time_signed@Base 3.3.0
- knot_tsig_rdata_tsig_timers_length@Base 3.3.0
- knot_tsig_rdata_tsig_variables_length@Base 3.3.0
- knot_tsig_server_check@Base 3.3.0
- knot_tsig_sign@Base 3.3.0
- knot_tsig_sign_next@Base 3.3.0
- knot_tsig_wire_maxsize@Base 3.3.0
- knot_tsig_wire_size@Base 3.3.0
- yp_addr@Base 3.3.0
- yp_addr_noport@Base 3.3.0
- yp_addr_noport_to_bin@Base 3.3.0
- yp_addr_noport_to_txt@Base 3.3.0
- yp_addr_range_to_bin@Base 3.3.0
- yp_addr_range_to_txt@Base 3.3.0
- yp_addr_to_bin@Base 3.3.0
- yp_addr_to_txt@Base 3.3.0
- yp_base64_to_bin@Base 3.3.0
- yp_base64_to_txt@Base 3.3.0
- yp_bool_to_bin@Base 3.3.0
- yp_bool_to_txt@Base 3.3.0
- yp_deinit@Base 3.3.0
- yp_dname_to_bin@Base 3.3.0
- yp_dname_to_txt@Base 3.3.0
- yp_format_id@Base 3.3.0
- yp_format_key0@Base 3.3.0
- yp_format_key1@Base 3.3.0
- yp_hex_to_bin@Base 3.3.0
- yp_hex_to_txt@Base 3.3.0
- yp_init@Base 3.3.0
- yp_int_to_bin@Base 3.3.0
- yp_int_to_txt@Base 3.3.0
- yp_item_to_bin@Base 3.3.0
- yp_item_to_txt@Base 3.3.0
- yp_option_to_bin@Base 3.3.0
- yp_option_to_txt@Base 3.3.0
- yp_parse@Base 3.3.0
- yp_schema_check_deinit@Base 3.3.0
- yp_schema_check_init@Base 3.3.0
- yp_schema_check_parser@Base 3.3.0
- yp_schema_check_str@Base 3.3.0
- yp_schema_copy@Base 3.3.0
- yp_schema_find@Base 3.3.0
- yp_schema_free@Base 3.3.0
- yp_schema_merge@Base 3.3.0
- yp_schema_purge_dynamic@Base 3.3.0
- yp_set_input_file@Base 3.3.0
- yp_set_input_string@Base 3.3.0
- yp_str_to_bin@Base 3.3.0
- yp_str_to_txt@Base 3.3.0
diff --git a/debian/libknot14.symbols.ia64 b/debian/libknot14.symbols.ia64
deleted file mode 120000
index d07ec80..0000000
--- a/debian/libknot14.symbols.ia64
+++ /dev/null
@@ -1 +0,0 @@
-libknot14.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot14.symbols.loong64 b/debian/libknot14.symbols.loong64
deleted file mode 120000
index d07ec80..0000000
--- a/debian/libknot14.symbols.loong64
+++ /dev/null
@@ -1 +0,0 @@
-libknot14.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot14.symbols.m68k b/debian/libknot14.symbols.m68k
deleted file mode 120000
index d07ec80..0000000
--- a/debian/libknot14.symbols.m68k
+++ /dev/null
@@ -1 +0,0 @@
-libknot14.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot14.symbols.powerpc b/debian/libknot14.symbols.powerpc
deleted file mode 120000
index d07ec80..0000000
--- a/debian/libknot14.symbols.powerpc
+++ /dev/null
@@ -1 +0,0 @@
-libknot14.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot14.symbols.sh4 b/debian/libknot14.symbols.sh4
deleted file mode 120000
index d07ec80..0000000
--- a/debian/libknot14.symbols.sh4
+++ /dev/null
@@ -1 +0,0 @@
-libknot14.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot14.symbols.sparc64 b/debian/libknot14.symbols.sparc64
deleted file mode 120000
index d07ec80..0000000
--- a/debian/libknot14.symbols.sparc64
+++ /dev/null
@@ -1 +0,0 @@
-libknot14.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot14.symbols.x32 b/debian/libknot14.symbols.x32
deleted file mode 120000
index d07ec80..0000000
--- a/debian/libknot14.symbols.x32
+++ /dev/null
@@ -1 +0,0 @@
-libknot14.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot14.install b/debian/libknot15.install
index f9b9f93..f9b9f93 100644
--- a/debian/libknot14.install
+++ b/debian/libknot15.install
diff --git a/debian/libknot14.symbols b/debian/libknot15.symbols
index 174d517..df626b4 100644
--- a/debian/libknot14.symbols
+++ b/debian/libknot15.symbols
@@ -1,4 +1,4 @@
-libknot.so.14 libknot14 #MINVER#
+libknot.so.15 libknot15 #MINVER#
* Build-Depends-Package: libknot-dev
KNOT_DB_LMDB_DUPSORT@Base 3.3.0
KNOT_DB_LMDB_INTEGERKEY@Base 3.3.0
@@ -8,10 +8,15 @@ libknot.so.14 libknot14 #MINVER#
KNOT_DB_LMDB_RDONLY@Base 3.3.0
KNOT_DB_LMDB_WRITEMAP@Base 3.3.0
KNOT_DUMP_STYLE_DEFAULT@Base 3.3.0
+ knot_creds_cert@Base 3.4.0
+ knot_creds_free@Base 3.4.0
+ knot_creds_init@Base 3.4.0
+ knot_creds_init_peer@Base 3.4.0
+ knot_creds_update@Base 3.4.0
knot_ctl_accept@Base 3.3.0
knot_ctl_alloc@Base 3.3.0
knot_ctl_bind@Base 3.3.0
- knot_ctl_bind2@Base 3.3.6
+ knot_ctl_clone@Base 3.4.0
knot_ctl_close@Base 3.3.0
knot_ctl_connect@Base 3.3.0
knot_ctl_free@Base 3.3.0
@@ -114,39 +119,14 @@ libknot.so.14 libknot14 #MINVER#
knot_probe_set_consumer@Base 3.3.0
knot_probe_set_producer@Base 3.3.0
knot_probe_tcp_rtt@Base 3.3.0
- knot_quic_cleanup@Base 3.3.0
- knot_quic_client@Base 3.3.0
- knot_quic_conn_get_stream@Base 3.3.0
- knot_quic_conn_local_port@Base 3.3.0
- knot_quic_conn_new_stream@Base 3.3.0
- knot_quic_conn_next_timeout@Base 3.3.3
- knot_quic_conn_pin@Base 3.3.0
- knot_quic_conn_rtt@Base 3.3.0
- knot_quic_conn_stream_free@Base 3.3.0
- knot_quic_creds_cert@Base 3.3.0
- knot_quic_free_creds@Base 3.3.0
- knot_quic_handle@Base 3.3.0
- knot_quic_hanle_expiry@Base 3.3.3
- knot_quic_init_creds@Base 3.3.0
- knot_quic_init_creds_peer@Base 3.3.0
- knot_quic_send@Base 3.3.0
- knot_quic_session_available@Base 3.3.0
- knot_quic_session_load@Base 3.3.0
- knot_quic_session_save@Base 3.3.0
- knot_quic_stream_add_data@Base 3.3.0
- knot_quic_stream_get_process@Base 3.3.0
- knot_quic_table_free@Base 3.3.0
- knot_quic_table_new@Base 3.3.0
- knot_quic_table_rem@Base 3.3.0
- knot_quic_table_sweep@Base 3.3.0
knot_rcode_names@Base 3.3.0
knot_rdataset_add@Base 3.3.0
knot_rdataset_at@Base 3.3.0
knot_rdataset_clear@Base 3.3.0
knot_rdataset_copy@Base 3.3.0
knot_rdataset_eq@Base 3.3.0
- knot_rdataset_intersect@Base 3.3.0
knot_rdataset_intersect2@Base 3.3.0
+ knot_rdataset_intersect@Base 3.3.0
knot_rdataset_member@Base 3.3.0
knot_rdataset_merge@Base 3.3.0
knot_rdataset_subset@Base 3.3.0
@@ -188,6 +168,17 @@ libknot.so.14 libknot14 #MINVER#
knot_tcp_sweep@Base 3.3.0
knot_tcp_table_free@Base 3.3.0
knot_tcp_table_new@Base 3.3.0
+ knot_tls_conn_block@Base 3.4.0
+ knot_tls_conn_del@Base 3.4.0
+ knot_tls_conn_new@Base 3.4.0
+ knot_tls_ctx_free@Base 3.4.0
+ knot_tls_ctx_new@Base 3.4.0
+ knot_tls_handshake@Base 3.4.0
+ knot_tls_pin@Base 3.4.0
+ knot_tls_pin_check@Base 3.4.0
+ knot_tls_recv_dns@Base 3.4.0
+ knot_tls_send_dns@Base 3.4.0
+ knot_tls_session@Base 3.4.0
knot_tsig_add@Base 3.3.0
knot_tsig_append@Base 3.3.0
knot_tsig_client_check@Base 3.3.0
@@ -232,8 +223,9 @@ libknot.so.14 libknot14 #MINVER#
knot_xdp_send_finish@Base 3.3.0
knot_xdp_send_free@Base 3.3.0
knot_xdp_send_prepare@Base 3.3.0
- knot_xdp_socket_info@Base 3.3.0
knot_xdp_socket_fd@Base 3.3.0
+ knot_xdp_socket_info@Base 3.3.0
+ knot_xdp_socket_stats@Base 3.4.0
yp_addr@Base 3.3.0
yp_addr_noport@Base 3.3.0
yp_addr_noport_to_bin@Base 3.3.0
diff --git a/debian/libknot15.symbols.alpha b/debian/libknot15.symbols.alpha
new file mode 120000
index 0000000..b4a28cc
--- /dev/null
+++ b/debian/libknot15.symbols.alpha
@@ -0,0 +1 @@
+libknot15.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot15.symbols.armel b/debian/libknot15.symbols.armel
new file mode 120000
index 0000000..b4a28cc
--- /dev/null
+++ b/debian/libknot15.symbols.armel
@@ -0,0 +1 @@
+libknot15.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot15.symbols.hppa b/debian/libknot15.symbols.hppa
new file mode 120000
index 0000000..b4a28cc
--- /dev/null
+++ b/debian/libknot15.symbols.hppa
@@ -0,0 +1 @@
+libknot15.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot15.symbols.hurd-amd64 b/debian/libknot15.symbols.hurd-amd64
new file mode 120000
index 0000000..b4a28cc
--- /dev/null
+++ b/debian/libknot15.symbols.hurd-amd64
@@ -0,0 +1 @@
+libknot15.symbols.hurd-i386 \ No newline at end of file
diff --git a/distro/pkg/deb-noxdp/libknot14.symbols b/debian/libknot15.symbols.hurd-i386
index ba2024a..3c67c3f 100644
--- a/distro/pkg/deb-noxdp/libknot14.symbols
+++ b/debian/libknot15.symbols.hurd-i386
@@ -1,4 +1,5 @@
-libknot.so.14 libknot14 #MINVER#
+libknot.so.15 libknot15 #MINVER#
+* Build-Depends-Package: libknot-dev
KNOT_DB_LMDB_DUPSORT@Base 3.3.0
KNOT_DB_LMDB_INTEGERKEY@Base 3.3.0
KNOT_DB_LMDB_MAPASYNC@Base 3.3.0
@@ -7,10 +8,15 @@ libknot.so.14 libknot14 #MINVER#
KNOT_DB_LMDB_RDONLY@Base 3.3.0
KNOT_DB_LMDB_WRITEMAP@Base 3.3.0
KNOT_DUMP_STYLE_DEFAULT@Base 3.3.0
+ knot_creds_cert@Base 3.4.0
+ knot_creds_free@Base 3.4.0
+ knot_creds_init@Base 3.4.0
+ knot_creds_init_peer@Base 3.4.0
+ knot_creds_update@Base 3.4.0
knot_ctl_accept@Base 3.3.0
knot_ctl_alloc@Base 3.3.0
knot_ctl_bind@Base 3.3.0
- knot_ctl_bind2@Base 3.3.6
+ knot_ctl_clone@Base 3.4.0
knot_ctl_close@Base 3.3.0
knot_ctl_connect@Base 3.3.0
knot_ctl_free@Base 3.3.0
@@ -113,8 +119,8 @@ libknot.so.14 libknot14 #MINVER#
knot_rdataset_clear@Base 3.3.0
knot_rdataset_copy@Base 3.3.0
knot_rdataset_eq@Base 3.3.0
- knot_rdataset_intersect@Base 3.3.0
knot_rdataset_intersect2@Base 3.3.0
+ knot_rdataset_intersect@Base 3.3.0
knot_rdataset_member@Base 3.3.0
knot_rdataset_merge@Base 3.3.0
knot_rdataset_subset@Base 3.3.0
@@ -149,6 +155,17 @@ libknot.so.14 libknot14 #MINVER#
knot_tcp_outbufs_add@Base 3.3.0
knot_tcp_outbufs_can_send@Base 3.3.0
knot_tcp_outbufs_usage@Base 3.3.0
+ knot_tls_conn_block@Base 3.4.0
+ knot_tls_conn_del@Base 3.4.0
+ knot_tls_conn_new@Base 3.4.0
+ knot_tls_ctx_free@Base 3.4.0
+ knot_tls_ctx_new@Base 3.4.0
+ knot_tls_handshake@Base 3.4.0
+ knot_tls_pin@Base 3.4.0
+ knot_tls_pin_check@Base 3.4.0
+ knot_tls_recv_dns@Base 3.4.0
+ knot_tls_send_dns@Base 3.4.0
+ knot_tls_session@Base 3.4.0
knot_tsig_add@Base 3.3.0
knot_tsig_append@Base 3.3.0
knot_tsig_client_check@Base 3.3.0
diff --git a/debian/libknot15.symbols.loong64 b/debian/libknot15.symbols.loong64
new file mode 120000
index 0000000..b4a28cc
--- /dev/null
+++ b/debian/libknot15.symbols.loong64
@@ -0,0 +1 @@
+libknot15.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot15.symbols.m68k b/debian/libknot15.symbols.m68k
new file mode 120000
index 0000000..b4a28cc
--- /dev/null
+++ b/debian/libknot15.symbols.m68k
@@ -0,0 +1 @@
+libknot15.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot15.symbols.powerpc b/debian/libknot15.symbols.powerpc
new file mode 120000
index 0000000..b4a28cc
--- /dev/null
+++ b/debian/libknot15.symbols.powerpc
@@ -0,0 +1 @@
+libknot15.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot15.symbols.sh4 b/debian/libknot15.symbols.sh4
new file mode 120000
index 0000000..b4a28cc
--- /dev/null
+++ b/debian/libknot15.symbols.sh4
@@ -0,0 +1 @@
+libknot15.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot15.symbols.sparc64 b/debian/libknot15.symbols.sparc64
new file mode 120000
index 0000000..b4a28cc
--- /dev/null
+++ b/debian/libknot15.symbols.sparc64
@@ -0,0 +1 @@
+libknot15.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/libknot15.symbols.x32 b/debian/libknot15.symbols.x32
new file mode 120000
index 0000000..b4a28cc
--- /dev/null
+++ b/debian/libknot15.symbols.x32
@@ -0,0 +1 @@
+libknot15.symbols.hurd-i386 \ No newline at end of file
diff --git a/debian/rules b/debian/rules
index cdb3a7f..4bc13c2 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,42 +1,37 @@
#!/usr/bin/make -f
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
-export DEB_CFLAGS_MAINT_APPEND = -Wall -DNDEBUG
+export DEB_CFLAGS_MAINT_APPEND = -Wall -DNDEBUG
export DPKG_GENSYMBOLS_CHECK_LEVEL := 4
export KNOT_SOFTHSM2_DSO = /usr/lib/softhsm/libsofthsm2.so
export KNOT_VERSION_FORMAT = release
-
-ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),riscv64))
- export DEB_LDFLAGS_MAINT_APPEND += -latomic
-endif
+export KNOT_FULL_ARCHS = amd64 arm64 armhf i386 mips64el ppc64el riscv64 s390x ppc64
include /usr/share/dpkg/default.mk
-ifeq (maint,$(filter $(DEB_BUILD_OPTIONS),maint))
- FASTPARSER := --disable-fastparser
-else
+# Enable extra modules and features only for well supported architectures
+ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(KNOT_FULL_ARCHS)))
FASTPARSER := --enable-fastparser
-endif
-
-# To make it build on sh4.
-# See https://buildd.debian.org/status/fetch.php?pkg=knot&arch=sh4&ver=3.0.2-2&stamp=1607372581&raw=0
-ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),sh4))
- FASTPARSER := --disable-fastparser
+ RECVMMSG := --enable-recvmmsg=yes
+ QUIC := --enable-quic=auto
+ RRL := --with-module-rrl=yes
+ GEOIP := --with-module-geoip=shared
+ DNSTAP := --enable-dnstap --with-module-dnstap=shared
+ RUN_TEST :=
else
- FASTPARSER := --enable-fastparser
-endif
-
-ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),hurd-i386))
- RECVMMSG:=--enable-recvmmsg=no
-else
- RECVMMSG:=--enable-recvmmsg=yes
+ FASTPARSER := --disable-fastparser
+ RECVMMSG := --enable-recvmmsg=no
+ QUIC := --enable-quic=no
+ RRL := --with-module-rrl=no
+ GEOIP := --with-modle-geoip=no
+ DNSTAP := --disable-dnstap --with-module-dnstap=no
+ RUN_TEST := -timeout --kill-after=5s 5m
endif
-ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),amd64 i386))
- RUN_TEST :=
-else
- RUN_TEST := -timeout --kill-after=5s 5m
+# Disable fastparser if requested
+ifeq (maint,$(filter $(DEB_BUILD_OPTIONS),maint))
+ FASTPARSER := --disable-fastparser
endif
# MAJOR.MINOR version part
@@ -46,18 +41,13 @@ BASE_VERSION := $(shell echo $(DEB_VERSION) | sed 's/^\([^.]\+\.[^.]\+\).*/\1/')
# invocation due to bug in dh-python's plugin_pyproject.py wheel unpack
export PYBUILD_SYSTEM = distutils
-
%:
dh $@ \
--exclude=.la --exclude=example.com.zone \
--with python3
override_dh_auto_configure:
- echo confirming architecture...
- echo 'arch:' $(DEB_HOST_ARCH)
- echo 'filtered arch:' $(filter $(DEB_HOST_ARCH),mips powerpc riscv64)
- echo 'DEB_LDFLAGS_MAINT_APPEND:' $(DEB_LDFLAGS_MAINT_APPEND)
- echo done
+ @echo 'architecture:' $(DEB_HOST_ARCH)
dh_auto_configure -- \
--sysconfdir=/etc \
--localstatedir=/var/lib \
@@ -66,13 +56,13 @@ override_dh_auto_configure:
--with-moduledir=/usr/lib/$(DEB_HOST_MULTIARCH)/knot/modules-$(BASE_VERSION) \
--with-storage=/var/lib/knot \
--enable-systemd=auto \
- --enable-dnstap \
- --with-module-dnstap=shared \
- --with-module-geoip=shared \
+ --disable-silent-rules \
+ $(RRL) \
+ $(GEOIP) \
+ $(DNSTAP) \
$(RECVMMSG) \
$(FASTPARSER) \
- --disable-silent-rules \
- --enable-quic
+ $(QUIC)
override_dh_auto_configure-indep:
pybuild --dir python/libknot --configure
diff --git a/debian/ufw/knot b/debian/ufw/knot
deleted file mode 100644
index ee36916..0000000
--- a/debian/ufw/knot
+++ /dev/null
@@ -1,4 +0,0 @@
-[Knot]
-title=Internet Domain Name Server
-description=The Knot DNS implements an Internet domain name server.
-ports=53
diff --git a/distro/Makefile.in b/distro/Makefile.in
index c19943d..a492ba7 100644
--- a/distro/Makefile.in
+++ b/distro/Makefile.in
@@ -259,6 +259,8 @@ infodir = @infodir@
install_sh = @install_sh@
libbpf_CFLAGS = @libbpf_CFLAGS@
libbpf_LIBS = @libbpf_LIBS@
+libdbus_CFLAGS = @libdbus_CFLAGS@
+libdbus_LIBS = @libdbus_LIBS@
libdir = @libdir@
libdnssec_SONAME = @libdnssec_SONAME@
libdnssec_SOVERSION = @libdnssec_SOVERSION@
@@ -270,8 +272,6 @@ libfstrm_CFLAGS = @libfstrm_CFLAGS@
libfstrm_LIBS = @libfstrm_LIBS@
libidn2_CFLAGS = @libidn2_CFLAGS@
libidn2_LIBS = @libidn2_LIBS@
-libidn_CFLAGS = @libidn_CFLAGS@
-libidn_LIBS = @libidn_LIBS@
libknot_SONAME = @libknot_SONAME@
libknot_SOVERSION = @libknot_SOVERSION@
libknot_VERSION_INFO = @libknot_VERSION_INFO@
@@ -289,7 +289,6 @@ libprotobuf_c_CFLAGS = @libprotobuf_c_CFLAGS@
libprotobuf_c_LIBS = @libprotobuf_c_LIBS@
liburcu_CFLAGS = @liburcu_CFLAGS@
liburcu_LIBS = @liburcu_LIBS@
-liburcu_PKGCONFIG = @liburcu_PKGCONFIG@
libxdp_CFLAGS = @libxdp_CFLAGS@
libxdp_LIBS = @libxdp_LIBS@
libzscanner_SONAME = @libzscanner_SONAME@
diff --git a/distro/config/apkg.toml b/distro/config/apkg.toml
index 0b9f0eb..3483ac2 100644
--- a/distro/config/apkg.toml
+++ b/distro/config/apkg.toml
@@ -12,13 +12,5 @@ signature_url = "https://secure.nic.cz/files/knot-dns/knot-{{ version }}.tar.xz.
compat = 3
[[distro.aliases]]
-name = "el-7"
-distro = ["centos == 7", "rhel == 7"]
-
-[[distro.aliases]]
name = "deb-nolibxdp"
distro = ["debian == 11", "ubuntu == 20.04", "ubuntu == 22.04"]
-
-[[distro.aliases]]
-name = "deb-noxdp"
-distro = ["debian == 10", "ubuntu == 18.04"]
diff --git a/distro/pkg/deb-nolibxdp/control b/distro/pkg/deb-nolibxdp/control
index 7db1fb2..30dc1fd 100644
--- a/distro/pkg/deb-nolibxdp/control
+++ b/distro/pkg/deb-nolibxdp/control
@@ -43,7 +43,7 @@ Architecture: any
Depends:
adduser,
libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
@@ -59,7 +59,7 @@ Description: Authoritative domain name server
registry and hence is well suited to run anything from the root
zone, the top-level domain, to many smaller standard domain names.
-Package: libknot14
+Package: libknot15
Architecture: any
Depends:
${misc:Depends},
@@ -115,10 +115,9 @@ Architecture: any
Depends:
libdnssec9 (= ${binary:Version}),
libgnutls28-dev,
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
- ${shlibs:Depends},
Section: libdevel
Description: Knot DNS shared library development files
Knot DNS is a fast, authoritative only, high performance, feature
@@ -134,7 +133,7 @@ Package: knot-dnsutils
Architecture: any
Depends:
libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
@@ -161,7 +160,7 @@ Package: knot-dnssecutils
Architecture: any
Depends:
libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
@@ -183,7 +182,7 @@ Package: knot-host
Architecture: any
Depends:
libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
@@ -269,6 +268,7 @@ Description: Prometheus exporter for Knot DNS
Package: python3-libknot
Architecture: all
Depends:
+ libknot15 (= ${binary:Version}),
${misc:Depends},
${python3:Depends},
Section: python
diff --git a/distro/pkg/deb-nolibxdp/knot.install b/distro/pkg/deb-nolibxdp/knot.install
index 5c716fc..a31224f 100644
--- a/distro/pkg/deb-nolibxdp/knot.install
+++ b/distro/pkg/deb-nolibxdp/knot.install
@@ -1,5 +1,4 @@
debian/cz.nic.knotd.conf usr/share/dbus-1/system.d/
-debian/ufw/knot etc/ufw/applications.d/
etc/knot/knot.conf
usr/sbin/kcatalogprint
usr/sbin/keymgr
diff --git a/distro/pkg/deb-nolibxdp/libknot14.symbols b/distro/pkg/deb-nolibxdp/libknot14.symbols
deleted file mode 100644
index 174d517..0000000
--- a/distro/pkg/deb-nolibxdp/libknot14.symbols
+++ /dev/null
@@ -1,277 +0,0 @@
-libknot.so.14 libknot14 #MINVER#
-* Build-Depends-Package: libknot-dev
- KNOT_DB_LMDB_DUPSORT@Base 3.3.0
- KNOT_DB_LMDB_INTEGERKEY@Base 3.3.0
- KNOT_DB_LMDB_MAPASYNC@Base 3.3.0
- KNOT_DB_LMDB_NOSYNC@Base 3.3.0
- KNOT_DB_LMDB_NOTLS@Base 3.3.0
- KNOT_DB_LMDB_RDONLY@Base 3.3.0
- KNOT_DB_LMDB_WRITEMAP@Base 3.3.0
- KNOT_DUMP_STYLE_DEFAULT@Base 3.3.0
- knot_ctl_accept@Base 3.3.0
- knot_ctl_alloc@Base 3.3.0
- knot_ctl_bind@Base 3.3.0
- knot_ctl_bind2@Base 3.3.6
- knot_ctl_close@Base 3.3.0
- knot_ctl_connect@Base 3.3.0
- knot_ctl_free@Base 3.3.0
- knot_ctl_receive@Base 3.3.0
- knot_ctl_send@Base 3.3.0
- knot_ctl_set_timeout@Base 3.3.0
- knot_ctl_unbind@Base 3.3.0
- knot_db_lmdb_api@Base 3.3.0
- knot_db_lmdb_del_exact@Base 3.3.0
- knot_db_lmdb_get_mapsize@Base 3.3.0
- knot_db_lmdb_get_path@Base 3.3.0
- knot_db_lmdb_get_usage@Base 3.3.0
- knot_db_lmdb_iter_del@Base 3.3.0
- knot_db_lmdb_txn_begin@Base 3.3.0
- knot_db_trie_api@Base 3.3.0
- knot_dname_cmp@Base 3.3.0
- knot_dname_copy@Base 3.3.0
- knot_dname_copy_lower@Base 3.3.0
- knot_dname_free@Base 3.3.0
- knot_dname_from_str@Base 3.3.0
- knot_dname_in_bailiwick@Base 3.3.0
- knot_dname_is_case_equal@Base 3.3.0
- knot_dname_is_equal@Base 3.3.0
- knot_dname_labels@Base 3.3.0
- knot_dname_lf@Base 3.3.0
- knot_dname_matched_labels@Base 3.3.0
- knot_dname_prefixlen@Base 3.3.0
- knot_dname_realsize@Base 3.3.0
- knot_dname_replace_suffix@Base 3.3.0
- knot_dname_size@Base 3.3.0
- knot_dname_store@Base 3.3.0
- knot_dname_to_lower@Base 3.3.0
- knot_dname_to_str@Base 3.3.0
- knot_dname_to_wire@Base 3.3.0
- knot_dname_unpack@Base 3.3.0
- knot_dname_wire_check@Base 3.3.0
- knot_dnssec_alg_names@Base 3.3.0
- knot_edns_add_option@Base 3.3.0
- knot_edns_alignment_size@Base 3.3.0
- knot_edns_chain_parse@Base 3.3.0
- knot_edns_chain_size@Base 3.3.0
- knot_edns_chain_write@Base 3.3.0
- knot_edns_client_subnet_get_addr@Base 3.3.0
- knot_edns_client_subnet_parse@Base 3.3.0
- knot_edns_client_subnet_set_addr@Base 3.3.0
- knot_edns_client_subnet_size@Base 3.3.0
- knot_edns_client_subnet_write@Base 3.3.0
- knot_edns_cookie_client_check@Base 3.3.0
- knot_edns_cookie_client_generate@Base 3.3.0
- knot_edns_cookie_parse@Base 3.3.0
- knot_edns_cookie_server_check@Base 3.3.0
- knot_edns_cookie_server_generate@Base 3.3.0
- knot_edns_cookie_size@Base 3.3.0
- knot_edns_cookie_write@Base 3.3.0
- knot_edns_ede_names@Base 3.3.0
- knot_edns_get_ext_rcode@Base 3.3.0
- knot_edns_get_option@Base 3.3.0
- knot_edns_get_options@Base 3.3.0
- knot_edns_get_version@Base 3.3.0
- knot_edns_init@Base 3.3.0
- knot_edns_keepalive_parse@Base 3.3.0
- knot_edns_keepalive_size@Base 3.3.0
- knot_edns_keepalive_write@Base 3.3.0
- knot_edns_opt_names@Base 3.3.0
- knot_edns_reserve_option@Base 3.3.0
- knot_edns_set_ext_rcode@Base 3.3.0
- knot_edns_set_version@Base 3.3.0
- knot_error_from_libdnssec@Base 3.3.0
- knot_eth_mtu@Base 3.3.0
- knot_eth_name_from_addr@Base 3.3.0
- knot_eth_queues@Base 3.3.0
- knot_eth_rss@Base 3.3.0
- knot_eth_vlans@Base 3.3.0
- knot_eth_xdp_mode@Base 3.3.0
- knot_get_obsolete_rdata_descriptor@Base 3.3.0
- knot_get_rdata_descriptor@Base 3.3.0
- knot_naptr_header_size@Base 3.3.0
- knot_opcode_names@Base 3.3.0
- knot_opt_code_to_string@Base 3.3.0
- knot_pkt_begin@Base 3.3.0
- knot_pkt_clear@Base 3.3.0
- knot_pkt_copy@Base 3.3.0
- knot_pkt_ext_rcode@Base 3.3.0
- knot_pkt_ext_rcode_name@Base 3.3.0
- knot_pkt_free@Base 3.3.0
- knot_pkt_init_response@Base 3.3.0
- knot_pkt_new@Base 3.3.0
- knot_pkt_parse@Base 3.3.0
- knot_pkt_parse_question@Base 3.3.0
- knot_pkt_put_question@Base 3.3.0
- knot_pkt_put_rotate@Base 3.3.0
- knot_pkt_reclaim@Base 3.3.0
- knot_pkt_reserve@Base 3.3.0
- knot_probe_alloc@Base 3.3.0
- knot_probe_consume@Base 3.3.0
- knot_probe_data_set@Base 3.3.0
- knot_probe_fd@Base 3.3.0
- knot_probe_free@Base 3.3.0
- knot_probe_produce@Base 3.3.0
- knot_probe_set_consumer@Base 3.3.0
- knot_probe_set_producer@Base 3.3.0
- knot_probe_tcp_rtt@Base 3.3.0
- knot_quic_cleanup@Base 3.3.0
- knot_quic_client@Base 3.3.0
- knot_quic_conn_get_stream@Base 3.3.0
- knot_quic_conn_local_port@Base 3.3.0
- knot_quic_conn_new_stream@Base 3.3.0
- knot_quic_conn_next_timeout@Base 3.3.3
- knot_quic_conn_pin@Base 3.3.0
- knot_quic_conn_rtt@Base 3.3.0
- knot_quic_conn_stream_free@Base 3.3.0
- knot_quic_creds_cert@Base 3.3.0
- knot_quic_free_creds@Base 3.3.0
- knot_quic_handle@Base 3.3.0
- knot_quic_hanle_expiry@Base 3.3.3
- knot_quic_init_creds@Base 3.3.0
- knot_quic_init_creds_peer@Base 3.3.0
- knot_quic_send@Base 3.3.0
- knot_quic_session_available@Base 3.3.0
- knot_quic_session_load@Base 3.3.0
- knot_quic_session_save@Base 3.3.0
- knot_quic_stream_add_data@Base 3.3.0
- knot_quic_stream_get_process@Base 3.3.0
- knot_quic_table_free@Base 3.3.0
- knot_quic_table_new@Base 3.3.0
- knot_quic_table_rem@Base 3.3.0
- knot_quic_table_sweep@Base 3.3.0
- knot_rcode_names@Base 3.3.0
- knot_rdataset_add@Base 3.3.0
- knot_rdataset_at@Base 3.3.0
- knot_rdataset_clear@Base 3.3.0
- knot_rdataset_copy@Base 3.3.0
- knot_rdataset_eq@Base 3.3.0
- knot_rdataset_intersect@Base 3.3.0
- knot_rdataset_intersect2@Base 3.3.0
- knot_rdataset_member@Base 3.3.0
- knot_rdataset_merge@Base 3.3.0
- knot_rdataset_subset@Base 3.3.0
- knot_rdataset_subtract@Base 3.3.0
- knot_rrclass_from_string@Base 3.3.0
- knot_rrclass_to_string@Base 3.3.0
- knot_rrset_add_rdata@Base 3.3.0
- knot_rrset_clear@Base 3.3.0
- knot_rrset_copy@Base 3.3.0
- knot_rrset_equal@Base 3.3.0
- knot_rrset_free@Base 3.3.0
- knot_rrset_is_nsec3rel@Base 3.3.0
- knot_rrset_new@Base 3.3.0
- knot_rrset_rr_from_wire@Base 3.3.0
- knot_rrset_rr_to_canonical@Base 3.3.0
- knot_rrset_size@Base 3.3.0
- knot_rrset_to_wire_extra@Base 3.3.0
- knot_rrset_txt_dump@Base 3.3.0
- knot_rrset_txt_dump_data@Base 3.3.0
- knot_rrset_txt_dump_edns@Base 3.3.0
- knot_rrset_txt_dump_header@Base 3.3.0
- knot_rrtype_additional_needed@Base 3.3.0
- knot_rrtype_from_string@Base 3.3.0
- knot_rrtype_is_dnssec@Base 3.3.0
- knot_rrtype_is_metatype@Base 3.3.0
- knot_rrtype_should_be_lowercased@Base 3.3.0
- knot_rrtype_to_string@Base 3.3.0
- knot_strerror@Base 3.3.0
- knot_svcb_param_names@Base 3.3.0
- knot_tcp_cleanup@Base 3.3.0
- knot_tcp_inbufs_upd@Base 3.3.0
- knot_tcp_outbufs_ack@Base 3.3.0
- knot_tcp_outbufs_add@Base 3.3.0
- knot_tcp_outbufs_can_send@Base 3.3.0
- knot_tcp_outbufs_usage@Base 3.3.0
- knot_tcp_recv@Base 3.3.0
- knot_tcp_reply_data@Base 3.3.0
- knot_tcp_send@Base 3.3.0
- knot_tcp_sweep@Base 3.3.0
- knot_tcp_table_free@Base 3.3.0
- knot_tcp_table_new@Base 3.3.0
- knot_tsig_add@Base 3.3.0
- knot_tsig_append@Base 3.3.0
- knot_tsig_client_check@Base 3.3.0
- knot_tsig_client_check_next@Base 3.3.0
- knot_tsig_create_rdata@Base 3.3.0
- knot_tsig_key_copy@Base 3.3.0
- knot_tsig_key_deinit@Base 3.3.0
- knot_tsig_key_init@Base 3.3.0
- knot_tsig_key_init_file@Base 3.3.0
- knot_tsig_key_init_str@Base 3.3.0
- knot_tsig_rcode_names@Base 3.3.0
- knot_tsig_rdata_alg@Base 3.3.0
- knot_tsig_rdata_alg_name@Base 3.3.0
- knot_tsig_rdata_error@Base 3.3.0
- knot_tsig_rdata_fudge@Base 3.3.0
- knot_tsig_rdata_is_ok@Base 3.3.0
- knot_tsig_rdata_mac@Base 3.3.0
- knot_tsig_rdata_mac_length@Base 3.3.0
- knot_tsig_rdata_orig_id@Base 3.3.0
- knot_tsig_rdata_other_data@Base 3.3.0
- knot_tsig_rdata_other_data_length@Base 3.3.0
- knot_tsig_rdata_set_fudge@Base 3.3.0
- knot_tsig_rdata_set_mac@Base 3.3.0
- knot_tsig_rdata_set_orig_id@Base 3.3.0
- knot_tsig_rdata_set_other_data@Base 3.3.0
- knot_tsig_rdata_set_time_signed@Base 3.3.0
- knot_tsig_rdata_time_signed@Base 3.3.0
- knot_tsig_rdata_tsig_timers_length@Base 3.3.0
- knot_tsig_rdata_tsig_variables_length@Base 3.3.0
- knot_tsig_server_check@Base 3.3.0
- knot_tsig_sign@Base 3.3.0
- knot_tsig_sign_next@Base 3.3.0
- knot_tsig_wire_maxsize@Base 3.3.0
- knot_tsig_wire_size@Base 3.3.0
- knot_xdp_deinit@Base 3.3.0
- knot_xdp_init@Base 3.3.0
- knot_xdp_recv@Base 3.3.0
- knot_xdp_recv_finish@Base 3.3.0
- knot_xdp_reply_alloc@Base 3.3.0
- knot_xdp_send@Base 3.3.0
- knot_xdp_send_alloc@Base 3.3.0
- knot_xdp_send_finish@Base 3.3.0
- knot_xdp_send_free@Base 3.3.0
- knot_xdp_send_prepare@Base 3.3.0
- knot_xdp_socket_info@Base 3.3.0
- knot_xdp_socket_fd@Base 3.3.0
- yp_addr@Base 3.3.0
- yp_addr_noport@Base 3.3.0
- yp_addr_noport_to_bin@Base 3.3.0
- yp_addr_noport_to_txt@Base 3.3.0
- yp_addr_range_to_bin@Base 3.3.0
- yp_addr_range_to_txt@Base 3.3.0
- yp_addr_to_bin@Base 3.3.0
- yp_addr_to_txt@Base 3.3.0
- yp_base64_to_bin@Base 3.3.0
- yp_base64_to_txt@Base 3.3.0
- yp_bool_to_bin@Base 3.3.0
- yp_bool_to_txt@Base 3.3.0
- yp_deinit@Base 3.3.0
- yp_dname_to_bin@Base 3.3.0
- yp_dname_to_txt@Base 3.3.0
- yp_format_id@Base 3.3.0
- yp_format_key0@Base 3.3.0
- yp_format_key1@Base 3.3.0
- yp_hex_to_bin@Base 3.3.0
- yp_hex_to_txt@Base 3.3.0
- yp_init@Base 3.3.0
- yp_int_to_bin@Base 3.3.0
- yp_int_to_txt@Base 3.3.0
- yp_item_to_bin@Base 3.3.0
- yp_item_to_txt@Base 3.3.0
- yp_option_to_bin@Base 3.3.0
- yp_option_to_txt@Base 3.3.0
- yp_parse@Base 3.3.0
- yp_schema_check_deinit@Base 3.3.0
- yp_schema_check_init@Base 3.3.0
- yp_schema_check_parser@Base 3.3.0
- yp_schema_check_str@Base 3.3.0
- yp_schema_copy@Base 3.3.0
- yp_schema_find@Base 3.3.0
- yp_schema_free@Base 3.3.0
- yp_schema_merge@Base 3.3.0
- yp_schema_purge_dynamic@Base 3.3.0
- yp_set_input_file@Base 3.3.0
- yp_set_input_string@Base 3.3.0
- yp_str_to_bin@Base 3.3.0
- yp_str_to_txt@Base 3.3.0
diff --git a/distro/pkg/deb-nolibxdp/libknot14.install b/distro/pkg/deb-nolibxdp/libknot15.install
index f9b9f93..f9b9f93 100644
--- a/distro/pkg/deb-nolibxdp/libknot14.install
+++ b/distro/pkg/deb-nolibxdp/libknot15.install
diff --git a/distro/pkg/deb-nolibxdp/libknot15.symbols b/distro/pkg/deb-nolibxdp/libknot15.symbols
new file mode 100644
index 0000000..77dd5b0
--- /dev/null
+++ b/distro/pkg/deb-nolibxdp/libknot15.symbols
@@ -0,0 +1,290 @@
+libknot.so.15 libknot15 #MINVER#
+* Build-Depends-Package: libknot-dev
+ KNOT_DB_LMDB_DUPSORT@Base 3.4.0
+ KNOT_DB_LMDB_INTEGERKEY@Base 3.4.0
+ KNOT_DB_LMDB_MAPASYNC@Base 3.4.0
+ KNOT_DB_LMDB_NOSYNC@Base 3.4.0
+ KNOT_DB_LMDB_NOTLS@Base 3.4.0
+ KNOT_DB_LMDB_RDONLY@Base 3.4.0
+ KNOT_DB_LMDB_WRITEMAP@Base 3.4.0
+ KNOT_DUMP_STYLE_DEFAULT@Base 3.4.0
+ knot_creds_cert@Base 3.4.0
+ knot_creds_free@Base 3.4.0
+ knot_creds_init@Base 3.4.0
+ knot_creds_init_peer@Base 3.4.0
+ knot_creds_update@Base 3.4.0
+ knot_ctl_accept@Base 3.4.0
+ knot_ctl_alloc@Base 3.4.0
+ knot_ctl_bind@Base 3.4.0
+ knot_ctl_clone@Base 3.4.0
+ knot_ctl_close@Base 3.4.0
+ knot_ctl_connect@Base 3.4.0
+ knot_ctl_free@Base 3.4.0
+ knot_ctl_receive@Base 3.4.0
+ knot_ctl_send@Base 3.4.0
+ knot_ctl_set_timeout@Base 3.4.0
+ knot_ctl_unbind@Base 3.4.0
+ knot_db_lmdb_api@Base 3.4.0
+ knot_db_lmdb_del_exact@Base 3.4.0
+ knot_db_lmdb_get_mapsize@Base 3.4.0
+ knot_db_lmdb_get_path@Base 3.4.0
+ knot_db_lmdb_get_usage@Base 3.4.0
+ knot_db_lmdb_iter_del@Base 3.4.0
+ knot_db_lmdb_txn_begin@Base 3.4.0
+ knot_db_trie_api@Base 3.4.0
+ knot_dname_cmp@Base 3.4.0
+ knot_dname_copy@Base 3.4.0
+ knot_dname_copy_lower@Base 3.4.0
+ knot_dname_free@Base 3.4.0
+ knot_dname_from_str@Base 3.4.0
+ knot_dname_in_bailiwick@Base 3.4.0
+ knot_dname_is_case_equal@Base 3.4.0
+ knot_dname_is_equal@Base 3.4.0
+ knot_dname_labels@Base 3.4.0
+ knot_dname_lf@Base 3.4.0
+ knot_dname_matched_labels@Base 3.4.0
+ knot_dname_prefixlen@Base 3.4.0
+ knot_dname_realsize@Base 3.4.0
+ knot_dname_replace_suffix@Base 3.4.0
+ knot_dname_size@Base 3.4.0
+ knot_dname_store@Base 3.4.0
+ knot_dname_to_lower@Base 3.4.0
+ knot_dname_to_str@Base 3.4.0
+ knot_dname_to_wire@Base 3.4.0
+ knot_dname_unpack@Base 3.4.0
+ knot_dname_wire_check@Base 3.4.0
+ knot_dnssec_alg_names@Base 3.4.0
+ knot_edns_add_option@Base 3.4.0
+ knot_edns_alignment_size@Base 3.4.0
+ knot_edns_chain_parse@Base 3.4.0
+ knot_edns_chain_size@Base 3.4.0
+ knot_edns_chain_write@Base 3.4.0
+ knot_edns_client_subnet_get_addr@Base 3.4.0
+ knot_edns_client_subnet_parse@Base 3.4.0
+ knot_edns_client_subnet_set_addr@Base 3.4.0
+ knot_edns_client_subnet_size@Base 3.4.0
+ knot_edns_client_subnet_write@Base 3.4.0
+ knot_edns_cookie_client_check@Base 3.4.0
+ knot_edns_cookie_client_generate@Base 3.4.0
+ knot_edns_cookie_parse@Base 3.4.0
+ knot_edns_cookie_server_check@Base 3.4.0
+ knot_edns_cookie_server_generate@Base 3.4.0
+ knot_edns_cookie_size@Base 3.4.0
+ knot_edns_cookie_write@Base 3.4.0
+ knot_edns_ede_names@Base 3.4.0
+ knot_edns_get_ext_rcode@Base 3.4.0
+ knot_edns_get_option@Base 3.4.0
+ knot_edns_get_options@Base 3.4.0
+ knot_edns_get_version@Base 3.4.0
+ knot_edns_init@Base 3.4.0
+ knot_edns_keepalive_parse@Base 3.4.0
+ knot_edns_keepalive_size@Base 3.4.0
+ knot_edns_keepalive_write@Base 3.4.0
+ knot_edns_opt_names@Base 3.4.0
+ knot_edns_reserve_option@Base 3.4.0
+ knot_edns_set_ext_rcode@Base 3.4.0
+ knot_edns_set_version@Base 3.4.0
+ knot_error_from_libdnssec@Base 3.4.0
+ knot_eth_mtu@Base 3.4.0
+ knot_eth_name_from_addr@Base 3.4.0
+ knot_eth_queues@Base 3.4.0
+ knot_eth_rss@Base 3.4.0
+ knot_eth_vlans@Base 3.4.0
+ knot_eth_xdp_mode@Base 3.4.0
+ knot_get_obsolete_rdata_descriptor@Base 3.4.0
+ knot_get_rdata_descriptor@Base 3.4.0
+ knot_naptr_header_size@Base 3.4.0
+ knot_opcode_names@Base 3.4.0
+ knot_opt_code_to_string@Base 3.4.0
+ knot_pkt_begin@Base 3.4.0
+ knot_pkt_clear@Base 3.4.0
+ knot_pkt_copy@Base 3.4.0
+ knot_pkt_ext_rcode@Base 3.4.0
+ knot_pkt_ext_rcode_name@Base 3.4.0
+ knot_pkt_free@Base 3.4.0
+ knot_pkt_init_response@Base 3.4.0
+ knot_pkt_new@Base 3.4.0
+ knot_pkt_parse@Base 3.4.0
+ knot_pkt_parse_question@Base 3.4.0
+ knot_pkt_put_question@Base 3.4.0
+ knot_pkt_put_rotate@Base 3.4.0
+ knot_pkt_reclaim@Base 3.4.0
+ knot_pkt_reserve@Base 3.4.0
+ knot_probe_alloc@Base 3.4.0
+ knot_probe_consume@Base 3.4.0
+ knot_probe_data_set@Base 3.4.0
+ knot_probe_fd@Base 3.4.0
+ knot_probe_free@Base 3.4.0
+ knot_probe_produce@Base 3.4.0
+ knot_probe_set_consumer@Base 3.4.0
+ knot_probe_set_producer@Base 3.4.0
+ knot_probe_tcp_rtt@Base 3.4.0
+ knot_quic_cleanup@Base 3.4.0
+ knot_quic_client@Base 3.4.0
+ knot_quic_conn_block@Base 3.4.0
+ knot_quic_conn_get_stream@Base 3.4.0
+ knot_quic_conn_local_port@Base 3.4.0
+ knot_quic_conn_new_stream@Base 3.4.0
+ knot_quic_conn_next_timeout@Base 3.4.0
+ knot_quic_conn_rtt@Base 3.4.0
+ knot_quic_conn_stream_free@Base 3.4.0
+ knot_quic_handle@Base 3.4.0
+ knot_quic_hanle_expiry@Base 3.4.0
+ knot_quic_send@Base 3.4.0
+ knot_quic_session_available@Base 3.4.0
+ knot_quic_session_load@Base 3.4.0
+ knot_quic_session_save@Base 3.4.0
+ knot_quic_stream_add_data@Base 3.4.0
+ knot_quic_stream_get_process@Base 3.4.0
+ knot_quic_table_free@Base 3.4.0
+ knot_quic_table_new@Base 3.4.0
+ knot_quic_table_rem@Base 3.4.0
+ knot_quic_table_sweep@Base 3.4.0
+ knot_rcode_names@Base 3.4.0
+ knot_rdataset_add@Base 3.4.0
+ knot_rdataset_at@Base 3.4.0
+ knot_rdataset_clear@Base 3.4.0
+ knot_rdataset_copy@Base 3.4.0
+ knot_rdataset_eq@Base 3.4.0
+ knot_rdataset_intersect@Base 3.4.0
+ knot_rdataset_intersect2@Base 3.4.0
+ knot_rdataset_member@Base 3.4.0
+ knot_rdataset_merge@Base 3.4.0
+ knot_rdataset_subset@Base 3.4.0
+ knot_rdataset_subtract@Base 3.4.0
+ knot_rrclass_from_string@Base 3.4.0
+ knot_rrclass_to_string@Base 3.4.0
+ knot_rrset_add_rdata@Base 3.4.0
+ knot_rrset_clear@Base 3.4.0
+ knot_rrset_copy@Base 3.4.0
+ knot_rrset_equal@Base 3.4.0
+ knot_rrset_free@Base 3.4.0
+ knot_rrset_is_nsec3rel@Base 3.4.0
+ knot_rrset_new@Base 3.4.0
+ knot_rrset_rr_from_wire@Base 3.4.0
+ knot_rrset_rr_to_canonical@Base 3.4.0
+ knot_rrset_size@Base 3.4.0
+ knot_rrset_to_wire_extra@Base 3.4.0
+ knot_rrset_txt_dump@Base 3.4.0
+ knot_rrset_txt_dump_data@Base 3.4.0
+ knot_rrset_txt_dump_edns@Base 3.4.0
+ knot_rrset_txt_dump_header@Base 3.4.0
+ knot_rrtype_additional_needed@Base 3.4.0
+ knot_rrtype_from_string@Base 3.4.0
+ knot_rrtype_is_dnssec@Base 3.4.0
+ knot_rrtype_is_metatype@Base 3.4.0
+ knot_rrtype_should_be_lowercased@Base 3.4.0
+ knot_rrtype_to_string@Base 3.4.0
+ knot_strerror@Base 3.4.0
+ knot_svcb_param_names@Base 3.4.0
+ knot_tcp_cleanup@Base 3.4.0
+ knot_tcp_inbufs_upd@Base 3.4.0
+ knot_tcp_outbufs_ack@Base 3.4.0
+ knot_tcp_outbufs_add@Base 3.4.0
+ knot_tcp_outbufs_can_send@Base 3.4.0
+ knot_tcp_outbufs_usage@Base 3.4.0
+ knot_tcp_recv@Base 3.4.0
+ knot_tcp_reply_data@Base 3.4.0
+ knot_tcp_send@Base 3.4.0
+ knot_tcp_sweep@Base 3.4.0
+ knot_tcp_table_free@Base 3.4.0
+ knot_tcp_table_new@Base 3.4.0
+ knot_tls_conn_block@Base 3.4.0
+ knot_tls_conn_del@Base 3.4.0
+ knot_tls_conn_new@Base 3.4.0
+ knot_tls_ctx_free@Base 3.4.0
+ knot_tls_ctx_new@Base 3.4.0
+ knot_tls_handshake@Base 3.4.0
+ knot_tls_pin@Base 3.4.0
+ knot_tls_pin_check@Base 3.4.0
+ knot_tls_recv_dns@Base 3.4.0
+ knot_tls_send_dns@Base 3.4.0
+ knot_tls_session@Base 3.4.0
+ knot_tsig_add@Base 3.4.0
+ knot_tsig_append@Base 3.4.0
+ knot_tsig_client_check@Base 3.4.0
+ knot_tsig_client_check_next@Base 3.4.0
+ knot_tsig_create_rdata@Base 3.4.0
+ knot_tsig_key_copy@Base 3.4.0
+ knot_tsig_key_deinit@Base 3.4.0
+ knot_tsig_key_init@Base 3.4.0
+ knot_tsig_key_init_file@Base 3.4.0
+ knot_tsig_key_init_str@Base 3.4.0
+ knot_tsig_rcode_names@Base 3.4.0
+ knot_tsig_rdata_alg@Base 3.4.0
+ knot_tsig_rdata_alg_name@Base 3.4.0
+ knot_tsig_rdata_error@Base 3.4.0
+ knot_tsig_rdata_fudge@Base 3.4.0
+ knot_tsig_rdata_is_ok@Base 3.4.0
+ knot_tsig_rdata_mac@Base 3.4.0
+ knot_tsig_rdata_mac_length@Base 3.4.0
+ knot_tsig_rdata_orig_id@Base 3.4.0
+ knot_tsig_rdata_other_data@Base 3.4.0
+ knot_tsig_rdata_other_data_length@Base 3.4.0
+ knot_tsig_rdata_set_fudge@Base 3.4.0
+ knot_tsig_rdata_set_mac@Base 3.4.0
+ knot_tsig_rdata_set_orig_id@Base 3.4.0
+ knot_tsig_rdata_set_other_data@Base 3.4.0
+ knot_tsig_rdata_set_time_signed@Base 3.4.0
+ knot_tsig_rdata_time_signed@Base 3.4.0
+ knot_tsig_rdata_tsig_timers_length@Base 3.4.0
+ knot_tsig_rdata_tsig_variables_length@Base 3.4.0
+ knot_tsig_server_check@Base 3.4.0
+ knot_tsig_sign@Base 3.4.0
+ knot_tsig_sign_next@Base 3.4.0
+ knot_tsig_wire_maxsize@Base 3.4.0
+ knot_tsig_wire_size@Base 3.4.0
+ knot_xdp_deinit@Base 3.4.0
+ knot_xdp_init@Base 3.4.0
+ knot_xdp_recv@Base 3.4.0
+ knot_xdp_recv_finish@Base 3.4.0
+ knot_xdp_reply_alloc@Base 3.4.0
+ knot_xdp_send@Base 3.4.0
+ knot_xdp_send_alloc@Base 3.4.0
+ knot_xdp_send_finish@Base 3.4.0
+ knot_xdp_send_free@Base 3.4.0
+ knot_xdp_send_prepare@Base 3.4.0
+ knot_xdp_socket_info@Base 3.4.0
+ knot_xdp_socket_stats@Base 3.4.0
+ knot_xdp_socket_fd@Base 3.4.0
+ yp_addr@Base 3.4.0
+ yp_addr_noport@Base 3.4.0
+ yp_addr_noport_to_bin@Base 3.4.0
+ yp_addr_noport_to_txt@Base 3.4.0
+ yp_addr_range_to_bin@Base 3.4.0
+ yp_addr_range_to_txt@Base 3.4.0
+ yp_addr_to_bin@Base 3.4.0
+ yp_addr_to_txt@Base 3.4.0
+ yp_base64_to_bin@Base 3.4.0
+ yp_base64_to_txt@Base 3.4.0
+ yp_bool_to_bin@Base 3.4.0
+ yp_bool_to_txt@Base 3.4.0
+ yp_deinit@Base 3.4.0
+ yp_dname_to_bin@Base 3.4.0
+ yp_dname_to_txt@Base 3.4.0
+ yp_format_id@Base 3.4.0
+ yp_format_key0@Base 3.4.0
+ yp_format_key1@Base 3.4.0
+ yp_hex_to_bin@Base 3.4.0
+ yp_hex_to_txt@Base 3.4.0
+ yp_init@Base 3.4.0
+ yp_int_to_bin@Base 3.4.0
+ yp_int_to_txt@Base 3.4.0
+ yp_item_to_bin@Base 3.4.0
+ yp_item_to_txt@Base 3.4.0
+ yp_option_to_bin@Base 3.4.0
+ yp_option_to_txt@Base 3.4.0
+ yp_parse@Base 3.4.0
+ yp_schema_check_deinit@Base 3.4.0
+ yp_schema_check_init@Base 3.4.0
+ yp_schema_check_parser@Base 3.4.0
+ yp_schema_check_str@Base 3.4.0
+ yp_schema_copy@Base 3.4.0
+ yp_schema_find@Base 3.4.0
+ yp_schema_free@Base 3.4.0
+ yp_schema_merge@Base 3.4.0
+ yp_schema_purge_dynamic@Base 3.4.0
+ yp_set_input_file@Base 3.4.0
+ yp_set_input_string@Base 3.4.0
+ yp_str_to_bin@Base 3.4.0
+ yp_str_to_txt@Base 3.4.0
diff --git a/distro/pkg/deb-nolibxdp/rules b/distro/pkg/deb-nolibxdp/rules
index 82cc34b..c5c81d0 100755
--- a/distro/pkg/deb-nolibxdp/rules
+++ b/distro/pkg/deb-nolibxdp/rules
@@ -36,11 +36,9 @@ BASE_VERSION := $(shell echo $(DEB_VERSION) | sed 's/^\([^.]\+\.[^.]\+\).*/\1/')
# invocation due to bug in dh-python's plugin_pyproject.py wheel unpack
export PYBUILD_SYSTEM = distutils
-
%:
dh $@ \
- --exclude=.la --exclude=example.com.zone \
- --with python3
+ --with python3
override_dh_auto_configure:
dh_auto_configure -- \
@@ -95,7 +93,7 @@ ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
endif
override_dh_missing:
- dh_missing --fail-missing
+ dh_missing --exclude=.la --fail-missing
override_dh_installchangelogs:
dh_installchangelogs NEWS
diff --git a/distro/pkg/deb-nolibxdp/ufw/knot b/distro/pkg/deb-nolibxdp/ufw/knot
deleted file mode 100644
index ee36916..0000000
--- a/distro/pkg/deb-nolibxdp/ufw/knot
+++ /dev/null
@@ -1,4 +0,0 @@
-[Knot]
-title=Internet Domain Name Server
-description=The Knot DNS implements an Internet domain name server.
-ports=53
diff --git a/distro/pkg/deb-noxdp/changelog b/distro/pkg/deb-noxdp/changelog
deleted file mode 100644
index 123f92b..0000000
--- a/distro/pkg/deb-noxdp/changelog
+++ /dev/null
@@ -1,6 +0,0 @@
-knot ({{ version }}-cznic.{{ release }}) unstable; urgency=medium
-
- * upstream package
- * see https://www.knot-dns.cz
-
- -- Knot DNS <knot-dns@labs.nic.cz> {{ now }}
diff --git a/distro/pkg/deb-noxdp/clean b/distro/pkg/deb-noxdp/clean
deleted file mode 100644
index b2a9f3f..0000000
--- a/distro/pkg/deb-noxdp/clean
+++ /dev/null
@@ -1,2 +0,0 @@
-doc/modules
-.pybuild/
diff --git a/distro/pkg/deb-noxdp/compat b/distro/pkg/deb-noxdp/compat
deleted file mode 100644
index b4de394..0000000
--- a/distro/pkg/deb-noxdp/compat
+++ /dev/null
@@ -1 +0,0 @@
-11
diff --git a/distro/pkg/deb-noxdp/control b/distro/pkg/deb-noxdp/control
deleted file mode 100644
index 147715a..0000000
--- a/distro/pkg/deb-noxdp/control
+++ /dev/null
@@ -1,287 +0,0 @@
-Source: knot
-Section: net
-Priority: optional
-Maintainer: Knot DNS <knot-dns@labs.nic.cz>
-Uploaders:
- Jakub Ružička <jakub.ruzicka@nic.cz>,
- Daniel Salzman <daniel.salzman@nic.cz>,
-Build-Depends-Indep:
- python3-setuptools,
- python3-sphinx,
-Build-Depends:
- autoconf,
- automake,
- debhelper (>= 11),
- dh-python,
- libcap-ng-dev,
- libedit-dev,
- libfstrm-dev,
- libgnutls28-dev,
- libidn2-dev,
- liblmdb-dev,
- libmaxminddb-dev,
- libmnl-dev,
- libnghttp2-dev,
- libprotobuf-c-dev,
- libsofthsm2 <!nocheck>,
- libsystemd-dev [linux-any] | libsystemd-daemon-dev [linux-any],
- libsystemd-dev [linux-any] | libsystemd-journal-dev [linux-any],
- libtool,
- liburcu-dev,
- pkg-config,
- protobuf-c-compiler,
- python3-all,
-Standards-Version: 4.5.0
-Homepage: https://www.knot-dns.cz/
-Vcs-Browser: https://gitlab.nic.cz/knot/knot-dns
-Vcs-Git: https://gitlab.nic.cz/knot/knot-dns.git
-Rules-Requires-Root: no
-
-Package: knot
-Architecture: any
-Depends:
- adduser,
- libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
- libzscanner4 (= ${binary:Version}),
- lsb-base (>= 3.0-6),
- ${misc:Depends},
- ${shlibs:Depends},
-Pre-Depends:
- ${misc:Pre-Depends},
-Suggests:
- systemd,
-Description: Authoritative domain name server
- Knot DNS is a fast, authoritative only, high performance, feature
- full and open source name server.
- .
- Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ
- registry and hence is well suited to run anything from the root
- zone, the top-level domain, to many smaller standard domain names.
-
-Package: libknot14
-Architecture: any
-Multi-Arch: same
-Depends:
- ${misc:Depends},
- ${shlibs:Depends},
-Section: libs
-Description: DNS shared library from Knot DNS
- Knot DNS is a fast, authoritative only, high performance, feature
- full and open source name server.
- .
- Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ
- registry and hence is well suited to run anything from the root
- zone, the top-level domain, to many smaller standard domain names.
- .
- This package provides a DNS shared library used by Knot DNS and
- Knot Resolver.
-
-Package: libzscanner4
-Architecture: any
-Multi-Arch: same
-Depends:
- ${misc:Depends},
- ${shlibs:Depends},
-Section: libs
-Description: DNS zone-parsing shared library from Knot DNS
- Knot DNS is a fast, authoritative only, high performance, feature
- full and open source name server.
- .
- Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ
- registry and hence is well suited to run anything from the root
- zone, the top-level domain, to many smaller standard domain names.
- .
- This package provides a fast zone parser shared library used by Knot
- DNS and Knot Resolver.
-
-Package: libdnssec9
-Architecture: any
-Multi-Arch: same
-Depends:
- ${misc:Depends},
- ${shlibs:Depends},
-Section: libs
-Description: DNSSEC shared library from Knot DNS
- Knot DNS is a fast, authoritative only, high performance, feature
- full and open source name server.
- .
- Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ
- registry and hence is well suited to run anything from the root
- zone, the top-level domain, to many smaller standard domain names.
- .
- This package provides common DNSSEC shared library used by Knot DNS
- and Knot Resolver.
-
-Package: libknot-dev
-Architecture: any
-Depends:
- libdnssec9 (= ${binary:Version}),
- libgnutls28-dev,
- libknot14 (= ${binary:Version}),
- libzscanner4 (= ${binary:Version}),
- ${misc:Depends},
- ${shlibs:Depends},
-Section: libdevel
-Description: Knot DNS shared library development files
- Knot DNS is a fast, authoritative only, high performance, feature
- full and open source name server.
- .
- Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ
- registry and hence is well suited to run anything from the root
- zone, the top-level domain, to many smaller standard domain names.
- .
- This package provides development files for shared libraries from Knot DNS.
-
-Package: knot-dnsutils
-Architecture: any
-Depends:
- libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
- libzscanner4 (= ${binary:Version}),
- ${misc:Depends},
- ${shlibs:Depends},
-Description: DNS clients provided with Knot DNS (kdig, knsupdate)
- Knot DNS is a fast, authoritative only, high performance, feature
- full and open source name server.
- .
- Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ
- registry and hence is well suited to run anything from the root
- zone, the top-level domain, to many smaller standard domain names.
- .
- This package delivers various DNS client programs from Knot DNS.
- .
- - kdig - query a DNS server in various ways
- - knsupdate - perform dynamic updates (See RFC2136)
- .
- Those clients were designed to be almost 1:1 compatible with BIND dnsutils,
- but they provide some enhancements, which are documented.
- .
- WARNING: knslookup is not provided as it is considered obsolete.
-
-Package: knot-dnssecutils
-Architecture: any
-Depends:
- libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
- libzscanner4 (= ${binary:Version}),
- ${misc:Depends},
- ${shlibs:Depends},
-Description: DNSSEC tools provided with Knot DNS
- Knot DNS is a fast, authoritative only, high performance, feature
- full and open source name server.
- .
- Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ
- registry and hence is well suited to run anything from the root
- zone, the top-level domain, to many smaller standard domain names.
- .
- This package delivers various DNSSEC tools from Knot DNS.
- .
- - kzonecheck
- - kzonesign
- - knsec3hash
-
-Package: knot-host
-Architecture: any
-Depends:
- libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
- libzscanner4 (= ${binary:Version}),
- ${misc:Depends},
- ${shlibs:Depends},
-Description: Version of 'host' bundled with Knot DNS
- Knot DNS is a fast, authoritative only, high performance, feature
- full and open source name server.
- .
- Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ
- registry and hence is well suited to run anything from the root
- zone, the top-level domain, to many smaller standard domain names.
- .
- This package provides the 'host' program from Knot DNS. This program is
- designed to be almost 1:1 compatible with BIND 9.x 'host' program.
-
-Package: knot-module-dnstap
-Architecture: any
-Multi-Arch: same
-Depends:
- knot (= ${binary:Version}),
- ${misc:Depends},
- ${shlibs:Depends},
-Description: dnstap module for Knot DNS
- Knot DNS is a fast, authoritative only, high performance, feature
- full and open source name server.
- .
- Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ
- registry and hence is well suited to run anything from the root
- zone, the top-level domain, to many smaller standard domain names.
- .
- This package contains dnstap module for logging DNS traffic.
-
-Package: knot-module-geoip
-Architecture: any
-Multi-Arch: same
-Depends:
- knot (= ${binary:Version}),
- ${misc:Depends},
- ${shlibs:Depends},
-Description: geoip module for Knot DNS
- Knot DNS is a fast, authoritative only, high performance, feature
- full and open source name server.
- .
- Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ
- registry and hence is well suited to run anything from the root
- zone, the top-level domain, to many smaller standard domain names.
- .
- This package contains geoip module for geography-based responses.
-
-Package: knot-doc
-Architecture: all
-Multi-Arch: foreign
-Depends:
- libjs-jquery,
- libjs-sphinxdoc,
- libjs-underscore,
- ${misc:Depends},
-Section: doc
-Description: Documentation for Knot DNS
- Knot DNS is a fast, authoritative only, high performance, feature
- full and open source name server.
- .
- Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ
- registry and hence is well suited to run anything from the root
- zone, the top-level domain, to many smaller standard domain names.
- .
- This package provides various documents that are useful for
- maintaining a working Knot DNS installation.
-
-Package: knot-exporter
-Architecture: all
-Depends:
- ${misc:Depends},
- ${python3:Depends},
-Section: python
-Description: Prometheus exporter for Knot DNS
- Knot DNS is a fast, authoritative only, high performance, feature
- full and open source name server.
- .
- Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ
- registry and hence is well suited to run anything from the root
- zone, the top-level domain, to many smaller standard domain names.
- .
- This package provides Python Prometheus exporter for Knot DNS.
-
-Package: python3-libknot
-Architecture: all
-Depends:
- ${misc:Depends},
- ${python3:Depends},
-Section: python
-Description: Python bindings for libknot
- Knot DNS is a fast, authoritative only, high performance, feature
- full and open source name server.
- .
- Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ
- registry and hence is well suited to run anything from the root
- zone, the top-level domain, to many smaller standard domain names.
- .
- This package provides Python bindings for the libknot shared library.
diff --git a/distro/pkg/deb-noxdp/copyright b/distro/pkg/deb-noxdp/copyright
deleted file mode 100644
index 20c8b97..0000000
--- a/distro/pkg/deb-noxdp/copyright
+++ /dev/null
@@ -1,179 +0,0 @@
-Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Name: Knot DNS
-Upstream-Contact: knot-dns@labs.nic.cz
-Source: https://secure.nic.cz/files/knot-dns/
-
-Files: *
-Copyright: 2011-2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-License: GPL-3+
-
-Files: m4/*
-Copyright: 2011-2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
- 1996-2001, 2003-2015 Free Software Foundation, Inc.
-License: GPL-3+
-
-Files: install-sh
-Copyright: 1994 X Consortium
-License: MIT
-
-Files: debian/* distro/pkg/deb/*
-Copyright: 2011-2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
- 2011 Ondřej Surý <ondrej@debian.org>
-License: GPL-3+
-
-Files: tests/tap/*
-Copyright: 2000-2001, 2004, 2006-2012 Russ Allbery <rra@stanford.edu>
- 2006, 2007, 2008, 2013 The Board of Trustees of the Leland Stanford Junior University
-License: MIT
-
-Files: tests/tap/files.*
-Copyright: 2011-2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-License: GPL-3+
-
-Files: src/contrib/dnstap/*
-Copyright: 2014, Farsight Security, Inc. <software@farsightsecurity.com>
- 2011-2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-License: GPL-3+
-
-Files: src/contrib/libngtcp2/*
-Copyright: 2016-2023 ngtcp2 contributors
- 2012-2017 nghttp2 contributors
-License: MIT
-
-Files: src/contrib/musl/*
-Copyright: 2005-2020 Rich Felker, et al.
-License: MIT
-
-Files: src/contrib/openbsd/siphash.*
-Copyright: 2013 Andre Oppermann <andre@FreeBSD.org>
-License: BSD-3-Clause
-
-Files: src/contrib/openbsd/strl*
-Copyright: 1998 Todd C. Miller <Todd.Miller@courtesan.com>
-License: 0BSD
-
-Files: src/contrib/proxyv2/*
-Copyright: 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
- 2021 Fastly, Inc.
-License: GPL-3+
-
-Files: src/contrib/qp-trie/*
-Copyright: 2011-2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
- 2018 Tony Finch <dot@dotat.at>
-License: GPL-3+
-
-Files: src/contrib/ucw/*
-Copyright: 2011-2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
- 1997-2017 Martin Mares <mj@ucw.cz>
- 2007 Pavel Charvat <pchar@ucw.cz>
- 2012 Ondrej Filip <feela@network.cz>
-License: LGPL-2.0
-
-Files: src/contrib/ucw/heap.h
-Copyright: 2011-2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-License: GPL-3+
-
-Files: src/contrib/url-parser/*
-Copyright: 2020 Igor Sysoev
- 2020 Nginx, Inc.
- 2020 Joyent, Inc.
-License: MIT
-
-Files: src/contrib/vpool/*
-Copyright: 2006, 2008 Alexey Vatchenko <av@bsdua.org>
-License: 0BSD
-
-Files: tests-fuzz/main.c
-Copyright: 2011-2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
- 2017 Tim Ruehsen
-License: MIT
-
-License: GPL-3+
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- .
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
- .
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>.
- .
- On Debian systems, the full text of the GNU General Public License
- version 3 can be found in the file `/usr/share/common-licenses/GPL-3'.
-
-License: LGPL-2.0
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
- .
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
- .
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the
- Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- Boston, MA 02110-1301, USA.
-
-License: 0BSD
- Permission to use, copy, modify, and distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
- .
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-License: BSD-3-Clause
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
- 1. Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- 3. Neither the name of the copyright holder nor the names of its contributors
- may be used to endorse or promote products derived from this software without
- specific prior written permission.
- .
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- OF THE POSSIBILITY OF SUCH DAMAGE.
-
-License: MIT
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
- .
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
- .
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
diff --git a/distro/pkg/deb-noxdp/cz.nic.knotd.conf b/distro/pkg/deb-noxdp/cz.nic.knotd.conf
deleted file mode 100644
index 50af87a..0000000
--- a/distro/pkg/deb-noxdp/cz.nic.knotd.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-<busconfig>
- <policy user="knot">
- <allow own="cz.nic.knotd" />
- </policy>
- <policy context="default">
- <allow receive_sender="cz.nic.knotd" />
- </policy>
-</busconfig>
diff --git a/distro/pkg/deb-noxdp/docs b/distro/pkg/deb-noxdp/docs
deleted file mode 100644
index b43bf86..0000000
--- a/distro/pkg/deb-noxdp/docs
+++ /dev/null
@@ -1 +0,0 @@
-README.md
diff --git a/distro/pkg/deb-noxdp/knot-dnssecutils.install b/distro/pkg/deb-noxdp/knot-dnssecutils.install
deleted file mode 100644
index 20009e8..0000000
--- a/distro/pkg/deb-noxdp/knot-dnssecutils.install
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/bin/knsec3hash
-usr/bin/kzonecheck
-usr/bin/kzonesign
diff --git a/distro/pkg/deb-noxdp/knot-dnssecutils.manpages b/distro/pkg/deb-noxdp/knot-dnssecutils.manpages
deleted file mode 100644
index 913c4cb..0000000
--- a/distro/pkg/deb-noxdp/knot-dnssecutils.manpages
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/share/man/man1/knsec3hash.1
-usr/share/man/man1/kzonecheck.1
-usr/share/man/man1/kzonesign.1
diff --git a/distro/pkg/deb-noxdp/knot-dnsutils.install b/distro/pkg/deb-noxdp/knot-dnsutils.install
deleted file mode 100644
index 960fa92..0000000
--- a/distro/pkg/deb-noxdp/knot-dnsutils.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin/kdig
-usr/bin/knsupdate
diff --git a/distro/pkg/deb-noxdp/knot-dnsutils.manpages b/distro/pkg/deb-noxdp/knot-dnsutils.manpages
deleted file mode 100644
index 3cc29ec..0000000
--- a/distro/pkg/deb-noxdp/knot-dnsutils.manpages
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/share/man/man1/kdig.1
-usr/share/man/man1/knsupdate.1
diff --git a/distro/pkg/deb-noxdp/knot-doc.install b/distro/pkg/deb-noxdp/knot-doc.install
deleted file mode 100644
index c2a345d..0000000
--- a/distro/pkg/deb-noxdp/knot-doc.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/share/doc/knot/* /usr/share/doc/knot-doc/
diff --git a/distro/pkg/deb-noxdp/knot-doc.links b/distro/pkg/deb-noxdp/knot-doc.links
deleted file mode 100644
index 1376b3a..0000000
--- a/distro/pkg/deb-noxdp/knot-doc.links
+++ /dev/null
@@ -1,5 +0,0 @@
-usr/share/javascript/jquery/jquery.min.js usr/share/doc/knot-doc/_static/jquery.js
-usr/share/javascript/sphinxdoc/1.0/doctools.js usr/share/doc/knot-doc/_static/doctools.js
-usr/share/javascript/sphinxdoc/1.0/language_data.js usr/share/doc/knot-doc/_static/language_data.js
-usr/share/javascript/sphinxdoc/1.0/searchtools.js usr/share/doc/knot-doc/_static/searchtools.js
-usr/share/javascript/underscore/underscore.min.js usr/share/doc/knot-doc/_static/underscore.js
diff --git a/distro/pkg/deb-noxdp/knot-exporter.install b/distro/pkg/deb-noxdp/knot-exporter.install
deleted file mode 100644
index 4c2d5ed..0000000
--- a/distro/pkg/deb-noxdp/knot-exporter.install
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/lib/python3*/dist-packages/knot_exporter-*.egg-info
-usr/lib/python3*/dist-packages/knot_exporter/*.py
-usr/bin/knot-exporter /usr/sbin/knot-exporter
diff --git a/distro/pkg/deb-noxdp/knot-host.install b/distro/pkg/deb-noxdp/knot-host.install
deleted file mode 100644
index 51bacf0..0000000
--- a/distro/pkg/deb-noxdp/knot-host.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/bin/khost
diff --git a/distro/pkg/deb-noxdp/knot-host.manpages b/distro/pkg/deb-noxdp/knot-host.manpages
deleted file mode 100644
index 4891e2c..0000000
--- a/distro/pkg/deb-noxdp/knot-host.manpages
+++ /dev/null
@@ -1 +0,0 @@
-usr/share/man/man1/khost.1
diff --git a/distro/pkg/deb-noxdp/knot-module-dnstap.install b/distro/pkg/deb-noxdp/knot-module-dnstap.install
deleted file mode 100644
index 983455e..0000000
--- a/distro/pkg/deb-noxdp/knot-module-dnstap.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/knot/modules-*/dnstap.so
diff --git a/distro/pkg/deb-noxdp/knot-module-geoip.install b/distro/pkg/deb-noxdp/knot-module-geoip.install
deleted file mode 100644
index 16d87c3..0000000
--- a/distro/pkg/deb-noxdp/knot-module-geoip.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/knot/modules-*/geoip.so
diff --git a/distro/pkg/deb-noxdp/knot.dirs b/distro/pkg/deb-noxdp/knot.dirs
deleted file mode 100644
index 6e937aa..0000000
--- a/distro/pkg/deb-noxdp/knot.dirs
+++ /dev/null
@@ -1 +0,0 @@
-var/lib/knot
diff --git a/distro/pkg/deb-noxdp/knot.init b/distro/pkg/deb-noxdp/knot.init
deleted file mode 100644
index 3f8fcae..0000000
--- a/distro/pkg/deb-noxdp/knot.init
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides: knot
-# Required-Start: $network $local_fs $remote_fs $syslog
-# Required-Stop: $remote_fs $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: authoritative domain name server
-# Description: Knot DNS is a authoritative-only domain name server
-### END INIT INFO
-
-# Author: Ondřej Surý <ondrej@debian.org>
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC="Knot DNS server" # Introduce a short description here
-NAME=knotd # Introduce the short server's name here
-DAEMON=/usr/sbin/$NAME # Introduce the server's location here
-PIDFILE=/run/knot/knot.pid
-SCRIPTNAME=/etc/init.d/knot
-KNOTC=/usr/sbin/knotc
-RUNDIR=/run/knot
-
-# Exit if the package is not installed
-[ -x $DAEMON ] || exit 0
-
-KNOTD_ARGS=""
-
-# Read configuration variable file if it is present
-[ -r /etc/default/knot ] && . /etc/default/knot
-
-DAEMON_ARGS="-d $KNOTD_ARGS"
-
-# Define LSB log_* functions.
-# Depend on sysvinit-utils (>= 2.96) to ensure that this file is present.
-. /lib/lsb/init-functions
-
-#
-# Function that starts the daemon/service
-#
-do_start()
-{
- # Return
- # 0 if daemon has been started
- # 1 if daemon was already running
- # 2 if daemon could not be started
-
- $KNOTC status >/dev/null 2>/dev/null \
- && return 1
-
- start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
- || return 1
- start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
- $DAEMON_ARGS \
- || return 2
-}
-
-#
-# Function that stops the daemon/service
-#
-do_stop()
-{
- # Return
- # 0 if daemon has been stopped
- # 1 if daemon was already stopped
- # 2 if daemon could not be stopped
- # other if a failure occurred
-
- $KNOTC status >/dev/null 2>/dev/null \
- || return 1
-
- $KNOTC stop >/dev/null
- RETVAL="$?"
- [ $? = 1 ] && return 2
-
- # Many daemons don't delete their pidfiles when they exit.
- rm -f $PIDFILE
- return 0
-}
-
-do_reload() {
- $KNOTC reload >/dev/null
- return $?
-}
-
-do_mkrundir() {
- mkdir -p $RUNDIR
- chmod 0755 $RUNDIR
- chown knot:knot $RUNDIR
-}
-
-case "$1" in
- start)
- do_mkrundir
- log_daemon_msg "Starting $DESC " "$NAME"
- do_start
- case "$?" in
- 0|1) log_end_msg 0 ;;
- 2) log_end_msg 1 ;;
- esac
- ;;
- stop)
- log_daemon_msg "Stopping $DESC" "$NAME"
- do_stop
- case "$?" in
- 0|1) log_end_msg 0 ;;
- 2) log_end_msg 1 ;;
- esac
- ;;
- status)
- STATUS=$($KNOTC status 2>&1 >/dev/null)
- RETVAL=$?
- if [ $RETVAL = 0 ]; then
- log_success_msg "$NAME is running"
- else
- log_failure_msg "$NAME is not running ($STATUS)"
- fi
- exit $RETVAL
- ;;
- reload|force-reload)
- log_daemon_msg "Reloading $DESC" "$NAME"
- do_reload
- log_end_msg $?
- ;;
- restart)
- log_daemon_msg "Restarting $DESC" "$NAME"
- do_stop
- case "$?" in
- 0|1)
- do_start
- case "$?" in
- 0) log_end_msg 0 ;;
- 1) log_end_msg 1 ;; # Old process is still running
- *) log_end_msg 1 ;; # Failed to start
- esac
- ;;
- *)
- # Failed to stop
- log_end_msg 1
- ;;
- esac
- ;;
- *)
- echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload}" >&2
- exit 3
- ;;
-esac
-
-:
diff --git a/distro/pkg/deb-noxdp/knot.install b/distro/pkg/deb-noxdp/knot.install
deleted file mode 100644
index 5c716fc..0000000
--- a/distro/pkg/deb-noxdp/knot.install
+++ /dev/null
@@ -1,8 +0,0 @@
-debian/cz.nic.knotd.conf usr/share/dbus-1/system.d/
-debian/ufw/knot etc/ufw/applications.d/
-etc/knot/knot.conf
-usr/sbin/kcatalogprint
-usr/sbin/keymgr
-usr/sbin/kjournalprint
-usr/sbin/knotc
-usr/sbin/knotd
diff --git a/distro/pkg/deb-noxdp/knot.manpages b/distro/pkg/deb-noxdp/knot.manpages
deleted file mode 100644
index 5d23e9f..0000000
--- a/distro/pkg/deb-noxdp/knot.manpages
+++ /dev/null
@@ -1,6 +0,0 @@
-usr/share/man/man5/knot.conf.5
-usr/share/man/man8/kcatalogprint.8
-usr/share/man/man8/keymgr.8
-usr/share/man/man8/kjournalprint.8
-usr/share/man/man8/knotc.8
-usr/share/man/man8/knotd.8
diff --git a/distro/pkg/deb-noxdp/knot.postinst b/distro/pkg/deb-noxdp/knot.postinst
deleted file mode 100644
index da747c8..0000000
--- a/distro/pkg/deb-noxdp/knot.postinst
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-set -e
-
-if [ "$1" = "configure" ]; then
- if ! getent passwd knot > /dev/null; then
- adduser --quiet --system --group --no-create-home --home /var/lib/knot knot
- fi
-
- dpkg-statoverride --list /var/lib/knot >/dev/null 2>&1 || dpkg-statoverride --update --add root knot 0770 /var/lib/knot
- dpkg-statoverride --list /etc/knot/knot.conf >/dev/null 2>&1 || dpkg-statoverride --update --add root knot 0640 /etc/knot/knot.conf
- dpkg-statoverride --list /etc/knot >/dev/null 2>&1 || dpkg-statoverride --update --add root knot 0750 /etc/knot
-fi
-
-#DEBHELPER#
-
-exit 0
diff --git a/distro/pkg/deb-noxdp/knot.postrm b/distro/pkg/deb-noxdp/knot.postrm
deleted file mode 100644
index 14b3d69..0000000
--- a/distro/pkg/deb-noxdp/knot.postrm
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-set -e
-
-if test "$1" = "purge"; then
- state_dir=/var/lib/knot
- for db_name in "catalog" "confdb" "journal" "keys" "timers"; do
- rm -rf $state_dir/$db_name >/dev/null 2>&1 || true
- done
- rmdir $state_dir >/dev/null 2>&1 || true
- [ -e $state_dir/* ] && echo "Notice: there are still data in ${state_dir}, please check."
-
- dpkg-statoverride --remove /var/lib/knot >/dev/null 2>&1 || true
- dpkg-statoverride --remove /etc/knot/knot.conf >/dev/null 2>&1 || true
- dpkg-statoverride --remove /etc/knot >/dev/null 2>&1 || true
-
- deluser --quiet knot >/dev/null 2>&1 || true
-fi
-
-#DEBHELPER#
-
-exit 0
diff --git a/distro/pkg/deb-noxdp/knot.service b/distro/pkg/deb-noxdp/knot.service
deleted file mode 100644
index e6c13ed..0000000
--- a/distro/pkg/deb-noxdp/knot.service
+++ /dev/null
@@ -1,30 +0,0 @@
-[Unit]
-Description=Knot DNS server
-Wants=network-online.target
-After=network-online.target
-Documentation=man:knotd(8) man:knot.conf(5) man:knotc(8)
-
-[Service]
-Type=notify
-User=knot
-Group=knot
-CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SETPCAP
-AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_SETPCAP
-ExecStartPre=/usr/sbin/knotc conf-check
-ExecStart=/usr/sbin/knotd -m "$KNOT_CONF_MAX_SIZE"
-ExecReload=/bin/kill -HUP $MAINPID
-Restart=on-abort
-LimitNOFILE=1048576
-TimeoutStopSec=300
-# Extend the systemd startup timeout by this value (seconds) for each zone
-Environment="KNOT_ZONE_LOAD_TIMEOUT_SEC=180"
-# Maximum size (MiB) of a configuration database
-Environment="KNOT_CONF_MAX_SIZE=512"
-
-# Expected systemd >= v239
-RuntimeDirectory=knot
-StateDirectory=knot
-NoNewPrivileges=yes
-
-[Install]
-WantedBy=multi-user.target
diff --git a/distro/pkg/deb-noxdp/libdnssec9.install b/distro/pkg/deb-noxdp/libdnssec9.install
deleted file mode 100644
index 17a9fe6..0000000
--- a/distro/pkg/deb-noxdp/libdnssec9.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/libdnssec.so.*
diff --git a/distro/pkg/deb-noxdp/libdnssec9.symbols b/distro/pkg/deb-noxdp/libdnssec9.symbols
deleted file mode 100644
index c3ab2ed..0000000
--- a/distro/pkg/deb-noxdp/libdnssec9.symbols
+++ /dev/null
@@ -1,96 +0,0 @@
-libdnssec.so.9 libdnssec9 #MINVER#
-* Build-Depends-Package: libknot-dev
- dnssec_algorithm_digest_support@Base 3.2.0
- dnssec_algorithm_key_size_check@Base 3.2.0
- dnssec_algorithm_key_size_default@Base 3.2.0
- dnssec_algorithm_key_size_range@Base 3.2.0
- dnssec_algorithm_key_support@Base 3.2.0
- dnssec_algorithm_reproducible@Base 3.2.0
- dnssec_binary_alloc@Base 3.2.0
- dnssec_binary_cmp@Base 3.2.0
- dnssec_binary_dup@Base 3.2.0
- dnssec_binary_free@Base 3.2.0
- dnssec_binary_from_base64@Base 3.2.0
- dnssec_binary_resize@Base 3.2.0
- dnssec_binary_to_base64@Base 3.2.0
- dnssec_crypto_cleanup@Base 3.2.0
- dnssec_crypto_init@Base 3.2.0
- dnssec_crypto_reinit@Base 3.2.0
- dnssec_digest@Base 3.2.0
- dnssec_digest_finish@Base 3.2.0
- dnssec_digest_init@Base 3.2.0
- dnssec_key_can_sign@Base 3.2.0
- dnssec_key_can_verify@Base 3.2.0
- dnssec_key_clear@Base 3.2.0
- dnssec_key_create_ds@Base 3.2.0
- dnssec_key_dup@Base 3.2.0
- dnssec_key_free@Base 3.2.0
- dnssec_key_get_algorithm@Base 3.2.0
- dnssec_key_get_dname@Base 3.2.0
- dnssec_key_get_flags@Base 3.2.0
- dnssec_key_get_keyid@Base 3.2.0
- dnssec_key_get_keytag@Base 3.2.0
- dnssec_key_get_protocol@Base 3.2.0
- dnssec_key_get_pubkey@Base 3.2.0
- dnssec_key_get_rdata@Base 3.2.0
- dnssec_key_get_size@Base 3.2.0
- dnssec_key_load_pkcs8@Base 3.2.0
- dnssec_key_new@Base 3.2.0
- dnssec_key_set_algorithm@Base 3.2.0
- dnssec_key_set_dname@Base 3.2.0
- dnssec_key_set_flags@Base 3.2.0
- dnssec_key_set_protocol@Base 3.2.0
- dnssec_key_set_pubkey@Base 3.2.0
- dnssec_key_set_rdata@Base 3.2.0
- dnssec_keyid_copy@Base 3.2.0
- dnssec_keyid_equal@Base 3.2.0
- dnssec_keyid_is_valid@Base 3.2.0
- dnssec_keyid_normalize@Base 3.2.0
- dnssec_keystore_close@Base 3.2.0
- dnssec_keystore_deinit@Base 3.2.0
- dnssec_keystore_generate@Base 3.2.0
- dnssec_keystore_get_private@Base 3.2.0
- dnssec_keystore_import@Base 3.2.0
- dnssec_keystore_init@Base 3.2.0
- dnssec_keystore_init_pkcs11@Base 3.2.0
- dnssec_keystore_init_pkcs8@Base 3.2.0
- dnssec_keystore_open@Base 3.2.0
- dnssec_keystore_remove@Base 3.2.0
- dnssec_keystore_set_private@Base 3.2.0
- dnssec_keytag@Base 3.2.0
- dnssec_nsec3_hash@Base 3.2.0
- dnssec_nsec3_hash_length@Base 3.2.0
- dnssec_nsec3_params_free@Base 3.2.0
- dnssec_nsec3_params_from_rdata@Base 3.2.0
- dnssec_nsec3_params_match@Base 3.2.0
- dnssec_nsec_bitmap_add@Base 3.2.0
- dnssec_nsec_bitmap_clear@Base 3.2.0
- dnssec_nsec_bitmap_contains@Base 3.2.0
- dnssec_nsec_bitmap_free@Base 3.2.0
- dnssec_nsec_bitmap_new@Base 3.2.0
- dnssec_nsec_bitmap_size@Base 3.2.0
- dnssec_nsec_bitmap_write@Base 3.2.0
- dnssec_pem_from_privkey@Base 3.2.0
- dnssec_pem_from_x509@Base 3.2.0
- dnssec_pem_to_privkey@Base 3.2.0
- dnssec_pem_to_x509@Base 3.2.0
- dnssec_random_binary@Base 3.2.0
- dnssec_random_buffer@Base 3.2.0
- dnssec_sign_add@Base 3.2.0
- dnssec_sign_free@Base 3.2.0
- dnssec_sign_init@Base 3.2.0
- dnssec_sign_new@Base 3.2.0
- dnssec_sign_verify@Base 3.2.0
- dnssec_sign_write@Base 3.2.0
- dnssec_strerror@Base 3.2.0
- dnssec_tsig_add@Base 3.2.0
- dnssec_tsig_algorithm_from_dname@Base 3.2.0
- dnssec_tsig_algorithm_from_name@Base 3.2.0
- dnssec_tsig_algorithm_size@Base 3.2.0
- dnssec_tsig_algorithm_to_dname@Base 3.2.0
- dnssec_tsig_algorithm_to_name@Base 3.2.0
- dnssec_tsig_free@Base 3.2.0
- dnssec_tsig_new@Base 3.2.0
- dnssec_tsig_optimal_key_size@Base 3.2.0
- dnssec_tsig_size@Base 3.2.0
- dnssec_tsig_write@Base 3.2.0
diff --git a/distro/pkg/deb-noxdp/libknot-dev.install b/distro/pkg/deb-noxdp/libknot-dev.install
deleted file mode 100644
index cb60d88..0000000
--- a/distro/pkg/deb-noxdp/libknot-dev.install
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/include/
-usr/lib/*/*.so
-usr/lib/*/pkgconfig/*
diff --git a/distro/pkg/deb-noxdp/libzscanner4.install b/distro/pkg/deb-noxdp/libzscanner4.install
deleted file mode 100644
index a8dc226..0000000
--- a/distro/pkg/deb-noxdp/libzscanner4.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/libzscanner.so.*
diff --git a/distro/pkg/deb-noxdp/libzscanner4.symbols b/distro/pkg/deb-noxdp/libzscanner4.symbols
deleted file mode 100644
index 99ac3b7..0000000
--- a/distro/pkg/deb-noxdp/libzscanner4.symbols
+++ /dev/null
@@ -1,12 +0,0 @@
-libzscanner.so.4 libzscanner4 #MINVER#
-* Build-Depends-Package: libknot-dev
- zs_deinit@Base 3.1.0
- zs_errorname@Base 3.1.0
- zs_init@Base 3.1.0
- zs_parse_all@Base 3.1.0
- zs_parse_record@Base 3.1.0
- zs_set_input_file@Base 3.1.0
- zs_set_input_string@Base 3.1.0
- zs_set_processing@Base 3.1.0
- zs_set_processing_comment@Base 3.1.0
- zs_strerror@Base 3.1.0
diff --git a/distro/pkg/deb-noxdp/not-installed b/distro/pkg/deb-noxdp/not-installed
deleted file mode 100644
index c928be1..0000000
--- a/distro/pkg/deb-noxdp/not-installed
+++ /dev/null
@@ -1 +0,0 @@
-etc/knot/example.com.zone
diff --git a/distro/pkg/deb-noxdp/patches/05-revert-mod-dnstap-TCP-sink.patch b/distro/pkg/deb-noxdp/patches/05-revert-mod-dnstap-TCP-sink.patch
deleted file mode 100644
index dae0fac..0000000
--- a/distro/pkg/deb-noxdp/patches/05-revert-mod-dnstap-TCP-sink.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-From d236d2b7fcd5fa607f7bfd38044eb6f510fac7ce Mon Sep 17 00:00:00 2001
-From: Daniel Salzman <daniel.salzman@nic.cz>
-Date: Wed, 12 Jun 2024 11:18:31 +0200
-Subject: [PATCH] Revert "mod-dnstap: add sink for TCP connection"
-
-This reverts commit 2ffd7dfa58ddcd1b860f0c9980fd082c3852d3e6.
----
- src/knot/modules/dnstap/dnstap.c | 74 +++++-------------------------
- src/knot/modules/dnstap/dnstap.rst | 9 ++--
- 2 files changed, 15 insertions(+), 68 deletions(-)
-
-diff --git a/src/knot/modules/dnstap/dnstap.c b/src/knot/modules/dnstap/dnstap.c
-index 612e48869..c8c82eaa4 100644
---- a/src/knot/modules/dnstap/dnstap.c
-+++ b/src/knot/modules/dnstap/dnstap.c
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -185,33 +185,6 @@ finish:
- return writer;
- }
-
--static struct fstrm_writer* dnstap_tcp_writer(const char *address, const char *port)
--{
-- struct fstrm_tcp_writer_options *opt = NULL;
-- struct fstrm_writer_options *wopt = NULL;
-- struct fstrm_writer *writer = NULL;
--
-- opt = fstrm_tcp_writer_options_init();
-- if (opt == NULL) {
-- goto finish;
-- }
--
-- fstrm_tcp_writer_options_set_socket_address(opt, address);
-- fstrm_tcp_writer_options_set_socket_port(opt, port);
--
-- wopt = fstrm_writer_options_init();
-- if (wopt == NULL) {
-- goto finish;
-- }
-- fstrm_writer_options_add_content_type(wopt, DNSTAP_CONTENT_TYPE,
-- strlen(DNSTAP_CONTENT_TYPE));
-- writer = fstrm_tcp_writer_init(opt, wopt);
--finish:
-- fstrm_tcp_writer_options_destroy(&opt);
-- fstrm_writer_options_destroy(&wopt);
-- return writer;
--}
--
- /*! \brief Create a basic file writer sink. */
- static struct fstrm_writer* dnstap_file_writer(const char *path)
- {
-@@ -240,42 +213,17 @@ finish:
- }
-
- /*! \brief Create a log sink according to the path string. */
--static struct fstrm_writer* dnstap_writer(knotd_mod_t *mod, const char *path)
-+static struct fstrm_writer* dnstap_writer(const char *path)
- {
-- const char *unix_prefix = "unix:";
-- const size_t unix_prefix_len = strlen(unix_prefix);
--
-- const char *tcp_prefix = "tcp:";
-- const size_t tcp_prefix_len = strlen(tcp_prefix);
--
-- const size_t path_len = strlen(path);
-+ const char *prefix = "unix:";
-+ const size_t prefix_len = strlen(prefix);
-
- /* UNIX socket prefix. */
-- if (path_len > unix_prefix_len &&
-- strncmp(path, unix_prefix, unix_prefix_len) == 0) {
-- knotd_mod_log(mod, LOG_DEBUG, "using sink UNIX socket '%s'", path);
-- return dnstap_unix_writer(path + unix_prefix_len);
-- /* TCP socket prefix. */
-- } else if (path_len > tcp_prefix_len &&
-- strncmp(path, tcp_prefix, tcp_prefix_len) == 0) {
-- char addr[INET6_ADDRSTRLEN] = { 0 };
-- const char *delimiter = strchr(path + tcp_prefix_len, '@');
-- if (delimiter == NULL) {
-- return NULL;
-- }
-- size_t addr_len = delimiter - path - tcp_prefix_len;
-- if (addr_len >= sizeof(addr)) {
-- return NULL;
-- }
-- memcpy(addr, path + tcp_prefix_len, addr_len);
-- knotd_mod_log(mod, LOG_DEBUG, "using sink TCP address '%s' port '%s'",
-- addr, delimiter + 1);
-- return dnstap_tcp_writer(addr, delimiter + 1);
-- /* File path. */
-- } else {
-- knotd_mod_log(mod, LOG_DEBUG, "using sink file '%s'", path);
-- return dnstap_file_writer(path);
-+ if (strlen(path) > prefix_len && strncmp(path, prefix, prefix_len) == 0) {
-+ return dnstap_unix_writer(path + prefix_len);
- }
-+
-+ return dnstap_file_writer(path);
- }
-
- int dnstap_load(knotd_mod_t *mod)
-@@ -325,7 +273,7 @@ int dnstap_load(knotd_mod_t *mod)
- const bool log_responses = conf.single.boolean;
-
- /* Initialize the writer and the options. */
-- struct fstrm_writer *writer = dnstap_writer(mod, sink);
-+ struct fstrm_writer *writer = dnstap_writer(sink);
- if (writer == NULL) {
- goto fail;
- }
-@@ -359,13 +307,13 @@ int dnstap_load(knotd_mod_t *mod)
-
- return KNOT_EOK;
- fail:
-- knotd_mod_log(mod, LOG_ERR, "failed to initialize sink '%s'", sink);
-+ knotd_mod_log(mod, LOG_ERR, "failed to init sink '%s'", sink);
-
- free(ctx->identity);
- free(ctx->version);
- free(ctx);
-
-- return KNOT_EINVAL;
-+ return KNOT_ENOMEM;
- }
-
- void dnstap_unload(knotd_mod_t *mod)
-diff --git a/src/knot/modules/dnstap/dnstap.rst b/src/knot/modules/dnstap/dnstap.rst
-index 05eac09ab..358977da0 100644
---- a/src/knot/modules/dnstap/dnstap.rst
-+++ b/src/knot/modules/dnstap/dnstap.rst
-@@ -11,7 +11,7 @@ Example
- -------
-
- The configuration comprises only a :ref:`mod-dnstap_sink` path parameter,
--which can be either a file, a UNIX socket, or a TCP address::
-+which can be either a file or a UNIX socket::
-
- mod-dnstap:
- - id: capture_all
-@@ -60,10 +60,9 @@ A module identifier.
- sink
- ....
-
--A sink path, which can be either a file, a UNIX socket when prefixed with
--``unix:``, or a TCP `address@port` when prefixed with ``tcp:``. The file may
--be specified as an absolute path or a path relative to
--the :doc:`knotd<man_knotd>` startup directory.
-+A sink path, which can be either a file or a UNIX socket when prefixed with
-+``unix:``. The file may be specified as an absolute path or a path relative
-+to the :doc:`knotd<man_knotd>` startup directory.
-
- *Required*
-
---
-2.34.1
-
diff --git a/distro/pkg/deb-noxdp/patches/series b/distro/pkg/deb-noxdp/patches/series
deleted file mode 100644
index 54de4e3..0000000
--- a/distro/pkg/deb-noxdp/patches/series
+++ /dev/null
@@ -1 +0,0 @@
-05-revert-mod-dnstap-TCP-sink.patch
diff --git a/distro/pkg/deb-noxdp/prepare-environment b/distro/pkg/deb-noxdp/prepare-environment
deleted file mode 100755
index 7176f5e..0000000
--- a/distro/pkg/deb-noxdp/prepare-environment
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-
-set -eu
-
-CONFFILE=${1:-/etc/knot/knot.conf}
-
-if [ ! -r $CONFFILE ]; then
- echo "$CONFFILE doesn't exist or has wrong permissions."
- exit 1;
-fi
-
-KNOT_RUNDIR=$(sed -ne "s/#.*$//;s/.*rundir: \"*\([^\";]*\\).*/\\1/p;" $CONFFILE)
-[ -z "$KNOT_RUNDIR" ] && KNOT_RUNDIR=/run/knot
-
-mkdir --parents "$KNOT_RUNDIR";
-
-KNOT_USER=$(sed -ne "s/#.*$//;s/.*user:[ \"]*\\([^\\:\"]*\\)[ \"]*/\\1/p;" $CONFFILE)
-
-if [ -n "$KNOT_USER" ]; then
- if ! getent passwd $KNOT_USER >/dev/null; then
- echo "Configured user '$KNOT_USER' doesn't exist."
- exit 1
- fi
-
- KNOT_GROUP=$(sed -ne "s/#.*$//;s/.*user:[ \"]*[^\\:\"]*\\:\\([^\"]*\\)[ \"]*/\\1/p;" $CONFFILE)
- if [ -z "$KNOT_GROUP" ]; then
- KNOT_GROUP=$(getent group $(getent passwd "$KNOT_USER" | cut -f 4 -d :) | cut -f 1 -d :)
- fi
-
- if ! getent group $KNOT_GROUP >/dev/null; then
- echo "Configured group '$KNOT_GROUP' doesn't exist."
- exit 1
- fi
- chown --silent "$KNOT_USER:$KNOT_GROUP" "$KNOT_RUNDIR"
- chmod 775 "$KNOT_RUNDIR"
-fi
-
-:
diff --git a/distro/pkg/deb-noxdp/python3-libknot.install b/distro/pkg/deb-noxdp/python3-libknot.install
deleted file mode 100644
index ce92dec..0000000
--- a/distro/pkg/deb-noxdp/python3-libknot.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/lib/python3*/dist-packages/libknot-*.egg-info
-usr/lib/python3*/dist-packages/libknot/*.py
diff --git a/distro/pkg/deb-noxdp/rules b/distro/pkg/deb-noxdp/rules
deleted file mode 100755
index 2372f70..0000000
--- a/distro/pkg/deb-noxdp/rules
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/make -f
-
-export DEB_BUILD_MAINT_OPTIONS = hardening=+all
-export DEB_CFLAGS_MAINT_APPEND = -Wall -DNDEBUG
-export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
-
-export DPKG_GENSYMBOLS_CHECK_LEVEL := 4
-export KNOT_SOFTHSM2_DSO = /usr/lib/softhsm/libsofthsm2.so
-
-include /usr/share/dpkg/default.mk
-
-ifeq (maint,$(filter $(DEB_BUILD_OPTIONS),maint))
- FASTPARSER := --disable-fastparser
-else
- FASTPARSER := --enable-fastparser
-endif
-
-ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),hurd-i386))
- RECVMMSG:=--enable-recvmmsg=no
-else
- RECVMMSG:=--enable-recvmmsg=yes
-endif
-
-ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),amd64 i386))
- RUN_TEST :=
-else
- RUN_TEST := -timeout --kill-after=5s 5m
-endif
-
-LIBKNOT_SYMBOLS := $(wildcard $(CURDIR)/debian/libknot*.symbols)
-
-# MAJOR.MINOR version part
-BASE_VERSION := $(shell echo $(DEB_VERSION) | sed 's/^\([^.]\+\.[^.]\+\).*/\1/')
-
-# pyproject is supported by knot but fails on second `pybuild --build`
-# invocation due to bug in dh-python's plugin_pyproject.py wheel unpack
-export PYBUILD_SYSTEM = distutils
-
-
-%:
- dh $@ \
- --exclude=.la --exclude=example.com.zone \
- --with python3
-
-override_dh_auto_configure:
- dh_auto_configure -- \
- --sysconfdir=/etc \
- --localstatedir=/var/lib \
- --libexecdir=/usr/lib/knot \
- --with-rundir=/run/knot \
- --with-moduledir=/usr/lib/$(DEB_HOST_MULTIARCH)/knot/modules-$(BASE_VERSION) \
- --with-storage=/var/lib/knot \
- --enable-systemd=auto \
- --enable-dnstap \
- --with-module-dnstap=shared \
- --with-module-geoip=shared \
- $(RECVMMSG) \
- $(FASTPARSER) \
- --disable-silent-rules \
- --disable-static
-
-override_dh_auto_configure-indep:
- pybuild --dir python/libknot --configure
- pybuild --dir python/knot_exporter --configure
-
-override_dh_auto_build-indep:
- dh_auto_build -- html
- pybuild --dir python/libknot --build
- pybuild --dir python/knot_exporter --build
-
-override_dh_auto_install-arch:
- dh_auto_install -- install
- # rename knot.sample.conf to knot.conf
- mv $(CURDIR)/debian/tmp/etc/knot/knot.sample.conf $(CURDIR)/debian/tmp/etc/knot/knot.conf
-
-override_dh_auto_install-indep:
- dh_auto_install -- install-html
- # rename knot.sample.conf to knot.conf
- mv $(CURDIR)/debian/tmp/etc/knot/knot.sample.conf $(CURDIR)/debian/tmp/etc/knot/knot.conf
- pybuild --dir python/libknot --install
- pybuild --dir python/knot_exporter --install
- rm -rf $(CURDIR)/debian/tmp/usr/lib/python*/dist-packages/libknot/__pycache__
- rm -rf $(CURDIR)/debian/tmp/usr/lib/python*/dist-packages/knot_exporter/__pycache__
-
-override_dh_auto_test-indep:
-override_dh_auto_test-arch:
-ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
- $(RUN_TEST) dh_auto_test
-endif
-
-override_dh_missing:
- dh_missing --fail-missing
-
-override_dh_installchangelogs:
- dh_installchangelogs NEWS
diff --git a/distro/pkg/deb-noxdp/source/format b/distro/pkg/deb-noxdp/source/format
deleted file mode 100644
index 163aaf8..0000000
--- a/distro/pkg/deb-noxdp/source/format
+++ /dev/null
@@ -1 +0,0 @@
-3.0 (quilt)
diff --git a/distro/pkg/deb-noxdp/tests/authoritative-server b/distro/pkg/deb-noxdp/tests/authoritative-server
deleted file mode 100755
index 028dfbf..0000000
--- a/distro/pkg/deb-noxdp/tests/authoritative-server
+++ /dev/null
@@ -1,150 +0,0 @@
-#!/bin/bash
-
-# Author: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-# 2018-11-02
-# License: GPLv3+
-
-# error on exit
-set -e
-# for handling jobspecs:
-set -m
-
-if [ -z "$AUTOPKGTEST_ARTIFACTS" ]; then
- d="$(mktemp -d)"
- remove="$d"
-else
- d="$AUTOPKGTEST_ARTIFACTS"
-fi
-ip="${TESTIP:-127.$(( $RANDOM % 256 )).$(( $RANDOM % 256 )).$(( $RANDOM % 256 ))}"
-port="${PORT:-8123}"
-knotc="${KNOTC:-/usr/sbin/knotc}"
-knotd="${KNOTD:-/usr/sbin/knotd}"
-keymgr="${KEYMGR:-/usr/sbin/keymgr}"
-kdig="${KDIG:-$(command -v kdig)}"
-kzonecheck="${KZONECHECK:-$(command -v kzonecheck)}"
-test_address="${TEST_ADDRESS:-192.0.2.199}"
-
-declare -a knot_conf="--config=$d/knot.conf"
-declare -a knot_args=("$knot_conf" --verbose)
-
-printf "%s + %s roundtrip tests\n------------\n workdir: %s\n IP addr: %s\n knot args: %s\n" "$knotd" "$kdig" "$d" "$ip" "${knot_args[*]}"
-
-section() {
- printf "\n%s\n" "$1"
- sed 's/./-/g' <<<"$1"
-}
-
-cleanup () {
- section "cleaning up"
- find "$d" -ls
- "${knotc}" "${knot_args[@]}" stop
- wait %1
- tail -n +1 -v "$d"/*.err
- if [ "$remove" ]; then
- printf "\ncleaning up working directory %s\n" "$remove"
- rm -rf "$remove"
- fi
-}
-trap cleanup EXIT
-
-section "set up config file and zonefile"
-
-user=$(id -nu)
-group=$(id -ng)
-cat > "$d/knot.conf" <<EOF
-server:
- rundir: "$d"
- listen: $ip@$port
- user: $user:$group
-database:
- storage: "$d"
-template:
- - id: default
- storage: "$d"
- file: "%s.zone"
-zone:
- - domain: example.net
- dnssec-signing: on
-EOF
-
-cat > "$d/example.net.zone" <<EOF
-@ 1D IN SOA a.ns hostmaster 2018103100 3h 15m 1w 1d
-@ 1D IN NS a.ns.example.net.
-@ 1D IN NS b.ns.example.net.
-a.ns 1D IN A 192.0.2.1
-b.ns 1D IN A 192.0.2.2
-test 1D IN A $test_address
-EOF
-
-find "$d" -maxdepth 1 -type f -print0 | xargs -0 tail -n +1 -v
-
-mkdir -p "${d}"
-
-section "kzonecheck'ing zonefile"
-"${kzonecheck}" -v "$d/example.net.zone"
-
-section "launching knot"
-"${knotd}" "${knot_args[@]}" 2> "$d/knotd.err" &
-
-# FIXME: this is an annoying poll -- would be better if we could be
-# alerted when the daemon is done setting up the socket, but i don't
-# want to "--daemonize" if i can avoid it because i want the shell to
-# remain in direct supervision of all its processes
-tried=0
-while [ $tried -lt 10 ] ; do
- if "${knotc}" "${knot_args[@]}" status 2>&1; then
- break;
- fi
- sleep 0.5
- tried=$(( $tried + 1 ))
-done
-if [ $tried -ge 10 ]; then
- printf "failed to use %s\n" "${knotc}" >&2
- exit 1
-fi
-
-section "querying knot"
-"${kdig}" -p "${port}" @"${ip}" -t A test.example.net test2.example.net
-answer="$("${kdig}" +short -p "${port}" @"${ip}" -t A test.example.net)"
-if ! [ "$answer" = "$test_address" ]; then
- printf "test.example.net mismatch!\nexpected: %s\n got: %s\n" "$test_address" "$answer" >&2
- exit 1
-fi
-answer2="$("${kdig}" +short -p "${port}" @"${ip}" -t A test2.example.net)"
-if ! [ "$answer2" = "" ]; then
- printf "test2.example.net gave unexpected answer!\n got: %s\n" "$answer2" >&2
- exit 1
-fi
-
-section "modifying zone"
-printf "test2 1D IN A $test_address\n" >>"$d/example.net.zone"
-sed -i 's/^@ 1D IN SOA.*/@ 1D IN SOA a.ns hostmaster 2018110100 3h 15m 1w 1d/' "$d/example.net.zone"
-"${knotc}" "${knot_args[@]}" reload
-sleep 1
-
-section "querying again"
-"${kdig}" -p "${port}" @"${ip}" -t A test.example.net test2.example.net
-answer="$("${kdig}" +short -p "${port}" @"${ip}" -t A test.example.net)"
-if ! [ "$answer" = "$test_address" ]; then
- printf "test.example.net mismatch!\nexpected: %s\n got: %s\n" "$test_address" "$answer" >&2
- exit 1
-fi
-answer2="$("${kdig}" +short -p "${port}" @"${ip}" -t A test2.example.net)"
-if ! [ "$answer2" = "$test_address" ]; then
- printf "test2.example.net mismatch!\nexpected: %s\n got: %s\n" "$test_address" "$answer2" >&2
- exit 1
-fi
-
-section "querying DNSSEC"
-"${kdig}" -p "${port}" @"${ip}" -t DNSKEY example.net. +dnssec
-if ! "${kdig}" -p "${port}" @"${ip}" -t DNSKEY example.net. +dnssec 2>&1 | grep -q "RRSIG[[:space:]]*DNSKEY"; then
- printf "DNSSEC query not successful" >&2
- exit 1
-fi
-
-section "listing keys with keymgr"
-"${keymgr}" "$knot_conf" -e example.net. list
-if ! "${keymgr}" "$knot_conf" -e example.net. list 2>&1 | grep -q "ksk=yes"; then
- printf "keymgr did not list KSK as expected" >&2
- exit 1
-fi
diff --git a/distro/pkg/deb-noxdp/tests/control b/distro/pkg/deb-noxdp/tests/control
deleted file mode 100644
index e8b3dcb..0000000
--- a/distro/pkg/deb-noxdp/tests/control
+++ /dev/null
@@ -1,13 +0,0 @@
-Tests: kdig
-Restrictions: skippable
-Depends:
- ca-certificates,
- iputils-ping,
- knot-dnsutils,
-
-Tests: authoritative-server
-Depends:
- findutils,
- knot,
- knot-dnsutils,
- knot-dnssecutils,
diff --git a/distro/pkg/deb-noxdp/tests/kdig b/distro/pkg/deb-noxdp/tests/kdig
deleted file mode 100755
index f1dbe5a..0000000
--- a/distro/pkg/deb-noxdp/tests/kdig
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-set -e
-
-# Skip the test if no internet access
-ping -c1 1.1.1.1 2>&1 || exit 77
-
-expected=198.41.0.4
-answer=$(kdig +short +tls-ca @1.1.1.1 -q a.root-servers.net. -t A 2>&1 || true)
-
-if [ "$answer" != "$expected" ]; then
- printf "expected: %s\ngot: %s\n" "$expected" "$answer" >&2
- kdig -d +tls-ca @1.1.1.1 -q a.root-servers.net. -t A
-fi
diff --git a/distro/pkg/deb-noxdp/ufw/knot b/distro/pkg/deb-noxdp/ufw/knot
deleted file mode 100644
index ee36916..0000000
--- a/distro/pkg/deb-noxdp/ufw/knot
+++ /dev/null
@@ -1,4 +0,0 @@
-[Knot]
-title=Internet Domain Name Server
-description=The Knot DNS implements an Internet domain name server.
-ports=53
diff --git a/distro/pkg/deb-noxdp/watch b/distro/pkg/deb-noxdp/watch
deleted file mode 100644
index 7cf9ea1..0000000
--- a/distro/pkg/deb-noxdp/watch
+++ /dev/null
@@ -1,4 +0,0 @@
-version=4
-opts=uversionmangle=s/-((alpha|beta|rc)\d*)$/~$1/,pgpsigurlmangle=s/$/.asc/,dversionmangle=s/\+hotfix// \
-https://secure.nic.cz/files/knot-dns/ \
-(?:|.*/)knot(?:[_\-]v?|)(\d\S*)\.(?:tar\.xz|txz|tar\.bz2|tbz2|tar\.gz|tgz)
diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control
index 2fb547a..b98dc4a 100644
--- a/distro/pkg/deb/control
+++ b/distro/pkg/deb/control
@@ -45,7 +45,7 @@ Architecture: any
Depends:
adduser,
libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
@@ -61,7 +61,7 @@ Description: Authoritative domain name server
registry and hence is well suited to run anything from the root
zone, the top-level domain, to many smaller standard domain names.
-Package: libknot14
+Package: libknot15
Architecture: any
Depends:
${misc:Depends},
@@ -117,7 +117,7 @@ Architecture: any
Depends:
libdnssec9 (= ${binary:Version}),
libgnutls28-dev,
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
Section: libdevel
@@ -135,7 +135,7 @@ Package: knot-dnsutils
Architecture: any
Depends:
libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
@@ -162,7 +162,7 @@ Package: knot-dnssecutils
Architecture: any
Depends:
libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
@@ -184,7 +184,7 @@ Package: knot-host
Architecture: any
Depends:
libdnssec9 (= ${binary:Version}),
- libknot14 (= ${binary:Version}),
+ libknot15 (= ${binary:Version}),
libzscanner4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
@@ -270,6 +270,7 @@ Description: Prometheus exporter for Knot DNS
Package: python3-libknot
Architecture: all
Depends:
+ libknot15 (= ${binary:Version}),
${misc:Depends},
${python3:Depends},
Section: python
diff --git a/distro/pkg/deb/knot.install b/distro/pkg/deb/knot.install
index 5c716fc..a31224f 100644
--- a/distro/pkg/deb/knot.install
+++ b/distro/pkg/deb/knot.install
@@ -1,5 +1,4 @@
debian/cz.nic.knotd.conf usr/share/dbus-1/system.d/
-debian/ufw/knot etc/ufw/applications.d/
etc/knot/knot.conf
usr/sbin/kcatalogprint
usr/sbin/keymgr
diff --git a/distro/pkg/deb/libknot14.install b/distro/pkg/deb/libknot14.install
deleted file mode 100644
index f9b9f93..0000000
--- a/distro/pkg/deb/libknot14.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/libknot.so.*
diff --git a/distro/pkg/deb/libknot14.symbols b/distro/pkg/deb/libknot14.symbols
deleted file mode 100644
index 174d517..0000000
--- a/distro/pkg/deb/libknot14.symbols
+++ /dev/null
@@ -1,277 +0,0 @@
-libknot.so.14 libknot14 #MINVER#
-* Build-Depends-Package: libknot-dev
- KNOT_DB_LMDB_DUPSORT@Base 3.3.0
- KNOT_DB_LMDB_INTEGERKEY@Base 3.3.0
- KNOT_DB_LMDB_MAPASYNC@Base 3.3.0
- KNOT_DB_LMDB_NOSYNC@Base 3.3.0
- KNOT_DB_LMDB_NOTLS@Base 3.3.0
- KNOT_DB_LMDB_RDONLY@Base 3.3.0
- KNOT_DB_LMDB_WRITEMAP@Base 3.3.0
- KNOT_DUMP_STYLE_DEFAULT@Base 3.3.0
- knot_ctl_accept@Base 3.3.0
- knot_ctl_alloc@Base 3.3.0
- knot_ctl_bind@Base 3.3.0
- knot_ctl_bind2@Base 3.3.6
- knot_ctl_close@Base 3.3.0
- knot_ctl_connect@Base 3.3.0
- knot_ctl_free@Base 3.3.0
- knot_ctl_receive@Base 3.3.0
- knot_ctl_send@Base 3.3.0
- knot_ctl_set_timeout@Base 3.3.0
- knot_ctl_unbind@Base 3.3.0
- knot_db_lmdb_api@Base 3.3.0
- knot_db_lmdb_del_exact@Base 3.3.0
- knot_db_lmdb_get_mapsize@Base 3.3.0
- knot_db_lmdb_get_path@Base 3.3.0
- knot_db_lmdb_get_usage@Base 3.3.0
- knot_db_lmdb_iter_del@Base 3.3.0
- knot_db_lmdb_txn_begin@Base 3.3.0
- knot_db_trie_api@Base 3.3.0
- knot_dname_cmp@Base 3.3.0
- knot_dname_copy@Base 3.3.0
- knot_dname_copy_lower@Base 3.3.0
- knot_dname_free@Base 3.3.0
- knot_dname_from_str@Base 3.3.0
- knot_dname_in_bailiwick@Base 3.3.0
- knot_dname_is_case_equal@Base 3.3.0
- knot_dname_is_equal@Base 3.3.0
- knot_dname_labels@Base 3.3.0
- knot_dname_lf@Base 3.3.0
- knot_dname_matched_labels@Base 3.3.0
- knot_dname_prefixlen@Base 3.3.0
- knot_dname_realsize@Base 3.3.0
- knot_dname_replace_suffix@Base 3.3.0
- knot_dname_size@Base 3.3.0
- knot_dname_store@Base 3.3.0
- knot_dname_to_lower@Base 3.3.0
- knot_dname_to_str@Base 3.3.0
- knot_dname_to_wire@Base 3.3.0
- knot_dname_unpack@Base 3.3.0
- knot_dname_wire_check@Base 3.3.0
- knot_dnssec_alg_names@Base 3.3.0
- knot_edns_add_option@Base 3.3.0
- knot_edns_alignment_size@Base 3.3.0
- knot_edns_chain_parse@Base 3.3.0
- knot_edns_chain_size@Base 3.3.0
- knot_edns_chain_write@Base 3.3.0
- knot_edns_client_subnet_get_addr@Base 3.3.0
- knot_edns_client_subnet_parse@Base 3.3.0
- knot_edns_client_subnet_set_addr@Base 3.3.0
- knot_edns_client_subnet_size@Base 3.3.0
- knot_edns_client_subnet_write@Base 3.3.0
- knot_edns_cookie_client_check@Base 3.3.0
- knot_edns_cookie_client_generate@Base 3.3.0
- knot_edns_cookie_parse@Base 3.3.0
- knot_edns_cookie_server_check@Base 3.3.0
- knot_edns_cookie_server_generate@Base 3.3.0
- knot_edns_cookie_size@Base 3.3.0
- knot_edns_cookie_write@Base 3.3.0
- knot_edns_ede_names@Base 3.3.0
- knot_edns_get_ext_rcode@Base 3.3.0
- knot_edns_get_option@Base 3.3.0
- knot_edns_get_options@Base 3.3.0
- knot_edns_get_version@Base 3.3.0
- knot_edns_init@Base 3.3.0
- knot_edns_keepalive_parse@Base 3.3.0
- knot_edns_keepalive_size@Base 3.3.0
- knot_edns_keepalive_write@Base 3.3.0
- knot_edns_opt_names@Base 3.3.0
- knot_edns_reserve_option@Base 3.3.0
- knot_edns_set_ext_rcode@Base 3.3.0
- knot_edns_set_version@Base 3.3.0
- knot_error_from_libdnssec@Base 3.3.0
- knot_eth_mtu@Base 3.3.0
- knot_eth_name_from_addr@Base 3.3.0
- knot_eth_queues@Base 3.3.0
- knot_eth_rss@Base 3.3.0
- knot_eth_vlans@Base 3.3.0
- knot_eth_xdp_mode@Base 3.3.0
- knot_get_obsolete_rdata_descriptor@Base 3.3.0
- knot_get_rdata_descriptor@Base 3.3.0
- knot_naptr_header_size@Base 3.3.0
- knot_opcode_names@Base 3.3.0
- knot_opt_code_to_string@Base 3.3.0
- knot_pkt_begin@Base 3.3.0
- knot_pkt_clear@Base 3.3.0
- knot_pkt_copy@Base 3.3.0
- knot_pkt_ext_rcode@Base 3.3.0
- knot_pkt_ext_rcode_name@Base 3.3.0
- knot_pkt_free@Base 3.3.0
- knot_pkt_init_response@Base 3.3.0
- knot_pkt_new@Base 3.3.0
- knot_pkt_parse@Base 3.3.0
- knot_pkt_parse_question@Base 3.3.0
- knot_pkt_put_question@Base 3.3.0
- knot_pkt_put_rotate@Base 3.3.0
- knot_pkt_reclaim@Base 3.3.0
- knot_pkt_reserve@Base 3.3.0
- knot_probe_alloc@Base 3.3.0
- knot_probe_consume@Base 3.3.0
- knot_probe_data_set@Base 3.3.0
- knot_probe_fd@Base 3.3.0
- knot_probe_free@Base 3.3.0
- knot_probe_produce@Base 3.3.0
- knot_probe_set_consumer@Base 3.3.0
- knot_probe_set_producer@Base 3.3.0
- knot_probe_tcp_rtt@Base 3.3.0
- knot_quic_cleanup@Base 3.3.0
- knot_quic_client@Base 3.3.0
- knot_quic_conn_get_stream@Base 3.3.0
- knot_quic_conn_local_port@Base 3.3.0
- knot_quic_conn_new_stream@Base 3.3.0
- knot_quic_conn_next_timeout@Base 3.3.3
- knot_quic_conn_pin@Base 3.3.0
- knot_quic_conn_rtt@Base 3.3.0
- knot_quic_conn_stream_free@Base 3.3.0
- knot_quic_creds_cert@Base 3.3.0
- knot_quic_free_creds@Base 3.3.0
- knot_quic_handle@Base 3.3.0
- knot_quic_hanle_expiry@Base 3.3.3
- knot_quic_init_creds@Base 3.3.0
- knot_quic_init_creds_peer@Base 3.3.0
- knot_quic_send@Base 3.3.0
- knot_quic_session_available@Base 3.3.0
- knot_quic_session_load@Base 3.3.0
- knot_quic_session_save@Base 3.3.0
- knot_quic_stream_add_data@Base 3.3.0
- knot_quic_stream_get_process@Base 3.3.0
- knot_quic_table_free@Base 3.3.0
- knot_quic_table_new@Base 3.3.0
- knot_quic_table_rem@Base 3.3.0
- knot_quic_table_sweep@Base 3.3.0
- knot_rcode_names@Base 3.3.0
- knot_rdataset_add@Base 3.3.0
- knot_rdataset_at@Base 3.3.0
- knot_rdataset_clear@Base 3.3.0
- knot_rdataset_copy@Base 3.3.0
- knot_rdataset_eq@Base 3.3.0
- knot_rdataset_intersect@Base 3.3.0
- knot_rdataset_intersect2@Base 3.3.0
- knot_rdataset_member@Base 3.3.0
- knot_rdataset_merge@Base 3.3.0
- knot_rdataset_subset@Base 3.3.0
- knot_rdataset_subtract@Base 3.3.0
- knot_rrclass_from_string@Base 3.3.0
- knot_rrclass_to_string@Base 3.3.0
- knot_rrset_add_rdata@Base 3.3.0
- knot_rrset_clear@Base 3.3.0
- knot_rrset_copy@Base 3.3.0
- knot_rrset_equal@Base 3.3.0
- knot_rrset_free@Base 3.3.0
- knot_rrset_is_nsec3rel@Base 3.3.0
- knot_rrset_new@Base 3.3.0
- knot_rrset_rr_from_wire@Base 3.3.0
- knot_rrset_rr_to_canonical@Base 3.3.0
- knot_rrset_size@Base 3.3.0
- knot_rrset_to_wire_extra@Base 3.3.0
- knot_rrset_txt_dump@Base 3.3.0
- knot_rrset_txt_dump_data@Base 3.3.0
- knot_rrset_txt_dump_edns@Base 3.3.0
- knot_rrset_txt_dump_header@Base 3.3.0
- knot_rrtype_additional_needed@Base 3.3.0
- knot_rrtype_from_string@Base 3.3.0
- knot_rrtype_is_dnssec@Base 3.3.0
- knot_rrtype_is_metatype@Base 3.3.0
- knot_rrtype_should_be_lowercased@Base 3.3.0
- knot_rrtype_to_string@Base 3.3.0
- knot_strerror@Base 3.3.0
- knot_svcb_param_names@Base 3.3.0
- knot_tcp_cleanup@Base 3.3.0
- knot_tcp_inbufs_upd@Base 3.3.0
- knot_tcp_outbufs_ack@Base 3.3.0
- knot_tcp_outbufs_add@Base 3.3.0
- knot_tcp_outbufs_can_send@Base 3.3.0
- knot_tcp_outbufs_usage@Base 3.3.0
- knot_tcp_recv@Base 3.3.0
- knot_tcp_reply_data@Base 3.3.0
- knot_tcp_send@Base 3.3.0
- knot_tcp_sweep@Base 3.3.0
- knot_tcp_table_free@Base 3.3.0
- knot_tcp_table_new@Base 3.3.0
- knot_tsig_add@Base 3.3.0
- knot_tsig_append@Base 3.3.0
- knot_tsig_client_check@Base 3.3.0
- knot_tsig_client_check_next@Base 3.3.0
- knot_tsig_create_rdata@Base 3.3.0
- knot_tsig_key_copy@Base 3.3.0
- knot_tsig_key_deinit@Base 3.3.0
- knot_tsig_key_init@Base 3.3.0
- knot_tsig_key_init_file@Base 3.3.0
- knot_tsig_key_init_str@Base 3.3.0
- knot_tsig_rcode_names@Base 3.3.0
- knot_tsig_rdata_alg@Base 3.3.0
- knot_tsig_rdata_alg_name@Base 3.3.0
- knot_tsig_rdata_error@Base 3.3.0
- knot_tsig_rdata_fudge@Base 3.3.0
- knot_tsig_rdata_is_ok@Base 3.3.0
- knot_tsig_rdata_mac@Base 3.3.0
- knot_tsig_rdata_mac_length@Base 3.3.0
- knot_tsig_rdata_orig_id@Base 3.3.0
- knot_tsig_rdata_other_data@Base 3.3.0
- knot_tsig_rdata_other_data_length@Base 3.3.0
- knot_tsig_rdata_set_fudge@Base 3.3.0
- knot_tsig_rdata_set_mac@Base 3.3.0
- knot_tsig_rdata_set_orig_id@Base 3.3.0
- knot_tsig_rdata_set_other_data@Base 3.3.0
- knot_tsig_rdata_set_time_signed@Base 3.3.0
- knot_tsig_rdata_time_signed@Base 3.3.0
- knot_tsig_rdata_tsig_timers_length@Base 3.3.0
- knot_tsig_rdata_tsig_variables_length@Base 3.3.0
- knot_tsig_server_check@Base 3.3.0
- knot_tsig_sign@Base 3.3.0
- knot_tsig_sign_next@Base 3.3.0
- knot_tsig_wire_maxsize@Base 3.3.0
- knot_tsig_wire_size@Base 3.3.0
- knot_xdp_deinit@Base 3.3.0
- knot_xdp_init@Base 3.3.0
- knot_xdp_recv@Base 3.3.0
- knot_xdp_recv_finish@Base 3.3.0
- knot_xdp_reply_alloc@Base 3.3.0
- knot_xdp_send@Base 3.3.0
- knot_xdp_send_alloc@Base 3.3.0
- knot_xdp_send_finish@Base 3.3.0
- knot_xdp_send_free@Base 3.3.0
- knot_xdp_send_prepare@Base 3.3.0
- knot_xdp_socket_info@Base 3.3.0
- knot_xdp_socket_fd@Base 3.3.0
- yp_addr@Base 3.3.0
- yp_addr_noport@Base 3.3.0
- yp_addr_noport_to_bin@Base 3.3.0
- yp_addr_noport_to_txt@Base 3.3.0
- yp_addr_range_to_bin@Base 3.3.0
- yp_addr_range_to_txt@Base 3.3.0
- yp_addr_to_bin@Base 3.3.0
- yp_addr_to_txt@Base 3.3.0
- yp_base64_to_bin@Base 3.3.0
- yp_base64_to_txt@Base 3.3.0
- yp_bool_to_bin@Base 3.3.0
- yp_bool_to_txt@Base 3.3.0
- yp_deinit@Base 3.3.0
- yp_dname_to_bin@Base 3.3.0
- yp_dname_to_txt@Base 3.3.0
- yp_format_id@Base 3.3.0
- yp_format_key0@Base 3.3.0
- yp_format_key1@Base 3.3.0
- yp_hex_to_bin@Base 3.3.0
- yp_hex_to_txt@Base 3.3.0
- yp_init@Base 3.3.0
- yp_int_to_bin@Base 3.3.0
- yp_int_to_txt@Base 3.3.0
- yp_item_to_bin@Base 3.3.0
- yp_item_to_txt@Base 3.3.0
- yp_option_to_bin@Base 3.3.0
- yp_option_to_txt@Base 3.3.0
- yp_parse@Base 3.3.0
- yp_schema_check_deinit@Base 3.3.0
- yp_schema_check_init@Base 3.3.0
- yp_schema_check_parser@Base 3.3.0
- yp_schema_check_str@Base 3.3.0
- yp_schema_copy@Base 3.3.0
- yp_schema_find@Base 3.3.0
- yp_schema_free@Base 3.3.0
- yp_schema_merge@Base 3.3.0
- yp_schema_purge_dynamic@Base 3.3.0
- yp_set_input_file@Base 3.3.0
- yp_set_input_string@Base 3.3.0
- yp_str_to_bin@Base 3.3.0
- yp_str_to_txt@Base 3.3.0
diff --git a/distro/pkg/deb-noxdp/libknot14.install b/distro/pkg/deb/libknot15.install
index f9b9f93..f9b9f93 100644
--- a/distro/pkg/deb-noxdp/libknot14.install
+++ b/distro/pkg/deb/libknot15.install
diff --git a/distro/pkg/deb/libknot15.symbols b/distro/pkg/deb/libknot15.symbols
new file mode 100644
index 0000000..77dd5b0
--- /dev/null
+++ b/distro/pkg/deb/libknot15.symbols
@@ -0,0 +1,290 @@
+libknot.so.15 libknot15 #MINVER#
+* Build-Depends-Package: libknot-dev
+ KNOT_DB_LMDB_DUPSORT@Base 3.4.0
+ KNOT_DB_LMDB_INTEGERKEY@Base 3.4.0
+ KNOT_DB_LMDB_MAPASYNC@Base 3.4.0
+ KNOT_DB_LMDB_NOSYNC@Base 3.4.0
+ KNOT_DB_LMDB_NOTLS@Base 3.4.0
+ KNOT_DB_LMDB_RDONLY@Base 3.4.0
+ KNOT_DB_LMDB_WRITEMAP@Base 3.4.0
+ KNOT_DUMP_STYLE_DEFAULT@Base 3.4.0
+ knot_creds_cert@Base 3.4.0
+ knot_creds_free@Base 3.4.0
+ knot_creds_init@Base 3.4.0
+ knot_creds_init_peer@Base 3.4.0
+ knot_creds_update@Base 3.4.0
+ knot_ctl_accept@Base 3.4.0
+ knot_ctl_alloc@Base 3.4.0
+ knot_ctl_bind@Base 3.4.0
+ knot_ctl_clone@Base 3.4.0
+ knot_ctl_close@Base 3.4.0
+ knot_ctl_connect@Base 3.4.0
+ knot_ctl_free@Base 3.4.0
+ knot_ctl_receive@Base 3.4.0
+ knot_ctl_send@Base 3.4.0
+ knot_ctl_set_timeout@Base 3.4.0
+ knot_ctl_unbind@Base 3.4.0
+ knot_db_lmdb_api@Base 3.4.0
+ knot_db_lmdb_del_exact@Base 3.4.0
+ knot_db_lmdb_get_mapsize@Base 3.4.0
+ knot_db_lmdb_get_path@Base 3.4.0
+ knot_db_lmdb_get_usage@Base 3.4.0
+ knot_db_lmdb_iter_del@Base 3.4.0
+ knot_db_lmdb_txn_begin@Base 3.4.0
+ knot_db_trie_api@Base 3.4.0
+ knot_dname_cmp@Base 3.4.0
+ knot_dname_copy@Base 3.4.0
+ knot_dname_copy_lower@Base 3.4.0
+ knot_dname_free@Base 3.4.0
+ knot_dname_from_str@Base 3.4.0
+ knot_dname_in_bailiwick@Base 3.4.0
+ knot_dname_is_case_equal@Base 3.4.0
+ knot_dname_is_equal@Base 3.4.0
+ knot_dname_labels@Base 3.4.0
+ knot_dname_lf@Base 3.4.0
+ knot_dname_matched_labels@Base 3.4.0
+ knot_dname_prefixlen@Base 3.4.0
+ knot_dname_realsize@Base 3.4.0
+ knot_dname_replace_suffix@Base 3.4.0
+ knot_dname_size@Base 3.4.0
+ knot_dname_store@Base 3.4.0
+ knot_dname_to_lower@Base 3.4.0
+ knot_dname_to_str@Base 3.4.0
+ knot_dname_to_wire@Base 3.4.0
+ knot_dname_unpack@Base 3.4.0
+ knot_dname_wire_check@Base 3.4.0
+ knot_dnssec_alg_names@Base 3.4.0
+ knot_edns_add_option@Base 3.4.0
+ knot_edns_alignment_size@Base 3.4.0
+ knot_edns_chain_parse@Base 3.4.0
+ knot_edns_chain_size@Base 3.4.0
+ knot_edns_chain_write@Base 3.4.0
+ knot_edns_client_subnet_get_addr@Base 3.4.0
+ knot_edns_client_subnet_parse@Base 3.4.0
+ knot_edns_client_subnet_set_addr@Base 3.4.0
+ knot_edns_client_subnet_size@Base 3.4.0
+ knot_edns_client_subnet_write@Base 3.4.0
+ knot_edns_cookie_client_check@Base 3.4.0
+ knot_edns_cookie_client_generate@Base 3.4.0
+ knot_edns_cookie_parse@Base 3.4.0
+ knot_edns_cookie_server_check@Base 3.4.0
+ knot_edns_cookie_server_generate@Base 3.4.0
+ knot_edns_cookie_size@Base 3.4.0
+ knot_edns_cookie_write@Base 3.4.0
+ knot_edns_ede_names@Base 3.4.0
+ knot_edns_get_ext_rcode@Base 3.4.0
+ knot_edns_get_option@Base 3.4.0
+ knot_edns_get_options@Base 3.4.0
+ knot_edns_get_version@Base 3.4.0
+ knot_edns_init@Base 3.4.0
+ knot_edns_keepalive_parse@Base 3.4.0
+ knot_edns_keepalive_size@Base 3.4.0
+ knot_edns_keepalive_write@Base 3.4.0
+ knot_edns_opt_names@Base 3.4.0
+ knot_edns_reserve_option@Base 3.4.0
+ knot_edns_set_ext_rcode@Base 3.4.0
+ knot_edns_set_version@Base 3.4.0
+ knot_error_from_libdnssec@Base 3.4.0
+ knot_eth_mtu@Base 3.4.0
+ knot_eth_name_from_addr@Base 3.4.0
+ knot_eth_queues@Base 3.4.0
+ knot_eth_rss@Base 3.4.0
+ knot_eth_vlans@Base 3.4.0
+ knot_eth_xdp_mode@Base 3.4.0
+ knot_get_obsolete_rdata_descriptor@Base 3.4.0
+ knot_get_rdata_descriptor@Base 3.4.0
+ knot_naptr_header_size@Base 3.4.0
+ knot_opcode_names@Base 3.4.0
+ knot_opt_code_to_string@Base 3.4.0
+ knot_pkt_begin@Base 3.4.0
+ knot_pkt_clear@Base 3.4.0
+ knot_pkt_copy@Base 3.4.0
+ knot_pkt_ext_rcode@Base 3.4.0
+ knot_pkt_ext_rcode_name@Base 3.4.0
+ knot_pkt_free@Base 3.4.0
+ knot_pkt_init_response@Base 3.4.0
+ knot_pkt_new@Base 3.4.0
+ knot_pkt_parse@Base 3.4.0
+ knot_pkt_parse_question@Base 3.4.0
+ knot_pkt_put_question@Base 3.4.0
+ knot_pkt_put_rotate@Base 3.4.0
+ knot_pkt_reclaim@Base 3.4.0
+ knot_pkt_reserve@Base 3.4.0
+ knot_probe_alloc@Base 3.4.0
+ knot_probe_consume@Base 3.4.0
+ knot_probe_data_set@Base 3.4.0
+ knot_probe_fd@Base 3.4.0
+ knot_probe_free@Base 3.4.0
+ knot_probe_produce@Base 3.4.0
+ knot_probe_set_consumer@Base 3.4.0
+ knot_probe_set_producer@Base 3.4.0
+ knot_probe_tcp_rtt@Base 3.4.0
+ knot_quic_cleanup@Base 3.4.0
+ knot_quic_client@Base 3.4.0
+ knot_quic_conn_block@Base 3.4.0
+ knot_quic_conn_get_stream@Base 3.4.0
+ knot_quic_conn_local_port@Base 3.4.0
+ knot_quic_conn_new_stream@Base 3.4.0
+ knot_quic_conn_next_timeout@Base 3.4.0
+ knot_quic_conn_rtt@Base 3.4.0
+ knot_quic_conn_stream_free@Base 3.4.0
+ knot_quic_handle@Base 3.4.0
+ knot_quic_hanle_expiry@Base 3.4.0
+ knot_quic_send@Base 3.4.0
+ knot_quic_session_available@Base 3.4.0
+ knot_quic_session_load@Base 3.4.0
+ knot_quic_session_save@Base 3.4.0
+ knot_quic_stream_add_data@Base 3.4.0
+ knot_quic_stream_get_process@Base 3.4.0
+ knot_quic_table_free@Base 3.4.0
+ knot_quic_table_new@Base 3.4.0
+ knot_quic_table_rem@Base 3.4.0
+ knot_quic_table_sweep@Base 3.4.0
+ knot_rcode_names@Base 3.4.0
+ knot_rdataset_add@Base 3.4.0
+ knot_rdataset_at@Base 3.4.0
+ knot_rdataset_clear@Base 3.4.0
+ knot_rdataset_copy@Base 3.4.0
+ knot_rdataset_eq@Base 3.4.0
+ knot_rdataset_intersect@Base 3.4.0
+ knot_rdataset_intersect2@Base 3.4.0
+ knot_rdataset_member@Base 3.4.0
+ knot_rdataset_merge@Base 3.4.0
+ knot_rdataset_subset@Base 3.4.0
+ knot_rdataset_subtract@Base 3.4.0
+ knot_rrclass_from_string@Base 3.4.0
+ knot_rrclass_to_string@Base 3.4.0
+ knot_rrset_add_rdata@Base 3.4.0
+ knot_rrset_clear@Base 3.4.0
+ knot_rrset_copy@Base 3.4.0
+ knot_rrset_equal@Base 3.4.0
+ knot_rrset_free@Base 3.4.0
+ knot_rrset_is_nsec3rel@Base 3.4.0
+ knot_rrset_new@Base 3.4.0
+ knot_rrset_rr_from_wire@Base 3.4.0
+ knot_rrset_rr_to_canonical@Base 3.4.0
+ knot_rrset_size@Base 3.4.0
+ knot_rrset_to_wire_extra@Base 3.4.0
+ knot_rrset_txt_dump@Base 3.4.0
+ knot_rrset_txt_dump_data@Base 3.4.0
+ knot_rrset_txt_dump_edns@Base 3.4.0
+ knot_rrset_txt_dump_header@Base 3.4.0
+ knot_rrtype_additional_needed@Base 3.4.0
+ knot_rrtype_from_string@Base 3.4.0
+ knot_rrtype_is_dnssec@Base 3.4.0
+ knot_rrtype_is_metatype@Base 3.4.0
+ knot_rrtype_should_be_lowercased@Base 3.4.0
+ knot_rrtype_to_string@Base 3.4.0
+ knot_strerror@Base 3.4.0
+ knot_svcb_param_names@Base 3.4.0
+ knot_tcp_cleanup@Base 3.4.0
+ knot_tcp_inbufs_upd@Base 3.4.0
+ knot_tcp_outbufs_ack@Base 3.4.0
+ knot_tcp_outbufs_add@Base 3.4.0
+ knot_tcp_outbufs_can_send@Base 3.4.0
+ knot_tcp_outbufs_usage@Base 3.4.0
+ knot_tcp_recv@Base 3.4.0
+ knot_tcp_reply_data@Base 3.4.0
+ knot_tcp_send@Base 3.4.0
+ knot_tcp_sweep@Base 3.4.0
+ knot_tcp_table_free@Base 3.4.0
+ knot_tcp_table_new@Base 3.4.0
+ knot_tls_conn_block@Base 3.4.0
+ knot_tls_conn_del@Base 3.4.0
+ knot_tls_conn_new@Base 3.4.0
+ knot_tls_ctx_free@Base 3.4.0
+ knot_tls_ctx_new@Base 3.4.0
+ knot_tls_handshake@Base 3.4.0
+ knot_tls_pin@Base 3.4.0
+ knot_tls_pin_check@Base 3.4.0
+ knot_tls_recv_dns@Base 3.4.0
+ knot_tls_send_dns@Base 3.4.0
+ knot_tls_session@Base 3.4.0
+ knot_tsig_add@Base 3.4.0
+ knot_tsig_append@Base 3.4.0
+ knot_tsig_client_check@Base 3.4.0
+ knot_tsig_client_check_next@Base 3.4.0
+ knot_tsig_create_rdata@Base 3.4.0
+ knot_tsig_key_copy@Base 3.4.0
+ knot_tsig_key_deinit@Base 3.4.0
+ knot_tsig_key_init@Base 3.4.0
+ knot_tsig_key_init_file@Base 3.4.0
+ knot_tsig_key_init_str@Base 3.4.0
+ knot_tsig_rcode_names@Base 3.4.0
+ knot_tsig_rdata_alg@Base 3.4.0
+ knot_tsig_rdata_alg_name@Base 3.4.0
+ knot_tsig_rdata_error@Base 3.4.0
+ knot_tsig_rdata_fudge@Base 3.4.0
+ knot_tsig_rdata_is_ok@Base 3.4.0
+ knot_tsig_rdata_mac@Base 3.4.0
+ knot_tsig_rdata_mac_length@Base 3.4.0
+ knot_tsig_rdata_orig_id@Base 3.4.0
+ knot_tsig_rdata_other_data@Base 3.4.0
+ knot_tsig_rdata_other_data_length@Base 3.4.0
+ knot_tsig_rdata_set_fudge@Base 3.4.0
+ knot_tsig_rdata_set_mac@Base 3.4.0
+ knot_tsig_rdata_set_orig_id@Base 3.4.0
+ knot_tsig_rdata_set_other_data@Base 3.4.0
+ knot_tsig_rdata_set_time_signed@Base 3.4.0
+ knot_tsig_rdata_time_signed@Base 3.4.0
+ knot_tsig_rdata_tsig_timers_length@Base 3.4.0
+ knot_tsig_rdata_tsig_variables_length@Base 3.4.0
+ knot_tsig_server_check@Base 3.4.0
+ knot_tsig_sign@Base 3.4.0
+ knot_tsig_sign_next@Base 3.4.0
+ knot_tsig_wire_maxsize@Base 3.4.0
+ knot_tsig_wire_size@Base 3.4.0
+ knot_xdp_deinit@Base 3.4.0
+ knot_xdp_init@Base 3.4.0
+ knot_xdp_recv@Base 3.4.0
+ knot_xdp_recv_finish@Base 3.4.0
+ knot_xdp_reply_alloc@Base 3.4.0
+ knot_xdp_send@Base 3.4.0
+ knot_xdp_send_alloc@Base 3.4.0
+ knot_xdp_send_finish@Base 3.4.0
+ knot_xdp_send_free@Base 3.4.0
+ knot_xdp_send_prepare@Base 3.4.0
+ knot_xdp_socket_info@Base 3.4.0
+ knot_xdp_socket_stats@Base 3.4.0
+ knot_xdp_socket_fd@Base 3.4.0
+ yp_addr@Base 3.4.0
+ yp_addr_noport@Base 3.4.0
+ yp_addr_noport_to_bin@Base 3.4.0
+ yp_addr_noport_to_txt@Base 3.4.0
+ yp_addr_range_to_bin@Base 3.4.0
+ yp_addr_range_to_txt@Base 3.4.0
+ yp_addr_to_bin@Base 3.4.0
+ yp_addr_to_txt@Base 3.4.0
+ yp_base64_to_bin@Base 3.4.0
+ yp_base64_to_txt@Base 3.4.0
+ yp_bool_to_bin@Base 3.4.0
+ yp_bool_to_txt@Base 3.4.0
+ yp_deinit@Base 3.4.0
+ yp_dname_to_bin@Base 3.4.0
+ yp_dname_to_txt@Base 3.4.0
+ yp_format_id@Base 3.4.0
+ yp_format_key0@Base 3.4.0
+ yp_format_key1@Base 3.4.0
+ yp_hex_to_bin@Base 3.4.0
+ yp_hex_to_txt@Base 3.4.0
+ yp_init@Base 3.4.0
+ yp_int_to_bin@Base 3.4.0
+ yp_int_to_txt@Base 3.4.0
+ yp_item_to_bin@Base 3.4.0
+ yp_item_to_txt@Base 3.4.0
+ yp_option_to_bin@Base 3.4.0
+ yp_option_to_txt@Base 3.4.0
+ yp_parse@Base 3.4.0
+ yp_schema_check_deinit@Base 3.4.0
+ yp_schema_check_init@Base 3.4.0
+ yp_schema_check_parser@Base 3.4.0
+ yp_schema_check_str@Base 3.4.0
+ yp_schema_copy@Base 3.4.0
+ yp_schema_find@Base 3.4.0
+ yp_schema_free@Base 3.4.0
+ yp_schema_merge@Base 3.4.0
+ yp_schema_purge_dynamic@Base 3.4.0
+ yp_set_input_file@Base 3.4.0
+ yp_set_input_string@Base 3.4.0
+ yp_str_to_bin@Base 3.4.0
+ yp_str_to_txt@Base 3.4.0
diff --git a/distro/pkg/deb/rules b/distro/pkg/deb/rules
index 82cc34b..c5c81d0 100755
--- a/distro/pkg/deb/rules
+++ b/distro/pkg/deb/rules
@@ -36,11 +36,9 @@ BASE_VERSION := $(shell echo $(DEB_VERSION) | sed 's/^\([^.]\+\.[^.]\+\).*/\1/')
# invocation due to bug in dh-python's plugin_pyproject.py wheel unpack
export PYBUILD_SYSTEM = distutils
-
%:
dh $@ \
- --exclude=.la --exclude=example.com.zone \
- --with python3
+ --with python3
override_dh_auto_configure:
dh_auto_configure -- \
@@ -95,7 +93,7 @@ ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
endif
override_dh_missing:
- dh_missing --fail-missing
+ dh_missing --exclude=.la --fail-missing
override_dh_installchangelogs:
dh_installchangelogs NEWS
diff --git a/distro/pkg/deb/ufw/knot b/distro/pkg/deb/ufw/knot
deleted file mode 100644
index ee36916..0000000
--- a/distro/pkg/deb/ufw/knot
+++ /dev/null
@@ -1,4 +0,0 @@
-[Knot]
-title=Internet Domain Name Server
-description=The Knot DNS implements an Internet domain name server.
-ports=53
diff --git a/distro/pkg/el-7/01-revert-AC_PROG_CC.patch b/distro/pkg/el-7/01-revert-AC_PROG_CC.patch
deleted file mode 100644
index fb49c00..0000000
--- a/distro/pkg/el-7/01-revert-AC_PROG_CC.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-From: Daniel Salzman <daniel.salzman@nic.cz>
-Date: Sun, 20 Feb 2022 20:38:35 +0100
-Subject: [PATCH] Revert "configure: upgrade from AC_PROG_CC_C99 to AC_PROG_CC"
-
-diff --git a/configure.ac b/configure.ac
-index 6506197ed..c7df7f815 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -38,7 +38,8 @@ release_date=$($SED -n 's/^Knot DNS .* (\(.*\))/\1/p;q;' ${srcdir}/NEWS)
- AC_SUBST([RELEASE_DATE], $release_date)
-
- # Set compiler compatibility flags
--AC_PROG_CC
-+AC_PROG_CC_C99 # AC_PROG_CC not supported by CentOS 7
-+AM_PROG_CC_C_O # Needed by CentOS 7
- AC_PROG_CPP_WERROR
-
- # Set default CFLAGS
diff --git a/distro/pkg/el-7/02-fix-compilation-by-using-SHA-1.patch b/distro/pkg/el-7/02-fix-compilation-by-using-SHA-1.patch
deleted file mode 100644
index cbc5aa2..0000000
--- a/distro/pkg/el-7/02-fix-compilation-by-using-SHA-1.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From: Daniel Salzman <daniel.salzman@nic.cz>
-Date: Mon, 20 Mar 2023 14:57:54 +0100
-Subject: [PATCH] distro/el-7: fix compilation by using SHA-1 for PIN computation
-
-diff --git a/src/libknot/quic/quic.c b/src/libknot/quic/quic.c
-index 5610865f6..555c495d9 100644
---- a/src/libknot/quic/quic.c
-+++ b/src/libknot/quic/quic.c
-@@ -460,7 +460,7 @@ void knot_quic_conn_pin(knot_quic_conn_t *conn, uint8_t *pin, size_t *pin_size,
- goto error;
- }
-
-- ret = gnutls_x509_crt_get_key_id(cert, GNUTLS_KEYID_USE_SHA256, pin, pin_size);
-+ ret = gnutls_x509_crt_get_key_id(cert, 0, pin, pin_size);
- if (ret != GNUTLS_E_SUCCESS) {
- gnutls_x509_crt_deinit(cert);
- goto error;
-diff --git a/src/utils/common/tls.c b/src/utils/common/tls.c
-index 245dd3f96..6a2e7a986 100644
---- a/src/utils/common/tls.c
-+++ b/src/utils/common/tls.c
-@@ -328,7 +328,7 @@ static int check_certificates(gnutls_session_t session, const list_t *pins)
-
- uint8_t cert_pin[CERT_PIN_LEN] = { 0 };
- size_t cert_pin_size = sizeof(cert_pin);
-- ret = gnutls_x509_crt_get_key_id(cert, GNUTLS_KEYID_USE_SHA256,
-+ ret = gnutls_x509_crt_get_key_id(cert, 0,
- cert_pin, &cert_pin_size);
- if (ret != 0) {
- gnutls_x509_crt_deinit(cert);
-@@ -336,18 +336,18 @@ static int check_certificates(gnutls_session_t session, const list_t *pins)
- }
-
- // Check if correspond to a specified PIN.
-- bool match = check_pin(cert_pin, sizeof(cert_pin), pins);
-+ bool match = check_pin(cert_pin, cert_pin_size, pins);
- if (match) {
- matches++;
- }
-
- uint8_t *txt_pin;
-- ret = knot_base64_encode_alloc(cert_pin, sizeof(cert_pin), &txt_pin);
-+ ret = knot_base64_encode_alloc(cert_pin, cert_pin_size, &txt_pin);
- if (ret < 0) {
- gnutls_x509_crt_deinit(cert);
- return ret;
- }
-- DBG(" SHA-256 PIN: %.*s%s", ret, txt_pin, match ? ", MATCH" : "");
-+ DBG(" SHA-1 PIN: %.*s%s", ret, txt_pin, match ? ", MATCH" : "");
- free(txt_pin);
-
- gnutls_x509_crt_deinit(cert);
-diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c
-index 359b8b596..8fd33b011 100644
---- a/src/utils/kdig/kdig_params.c
-+++ b/src/utils/kdig/kdig_params.c
-@@ -707,8 +707,8 @@ static int opt_tls_pin(const char *arg, void *query)
- if (ret < 0) {
- ERR("invalid +tls-pin=%s", arg);
- return ret;
-- } else if (ret != CERT_PIN_LEN) { // Check for 256-bit value.
-- ERR("invalid sha256 hash length +tls-pin=%s", arg);
-+ } else if (ret != 20) { // Check for 256-bit value.
-+ ERR("invalid sha1 hash length +tls-pin=%s", arg);
- return KNOT_EINVAL;
- }
-
diff --git a/distro/pkg/el-7/03-doc-don-t-try-to-import-sphinx_panels.patch b/distro/pkg/el-7/03-doc-don-t-try-to-import-sphinx_panels.patch
deleted file mode 100644
index 8ef7e7e..0000000
--- a/distro/pkg/el-7/03-doc-don-t-try-to-import-sphinx_panels.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From c05abb0401d3343b96ced4a6cdd724ee04adfe1b Mon Sep 17 00:00:00 2001
-From: Daniel Salzman <daniel.salzman@nic.cz>
-Date: Mon, 21 Aug 2023 16:54:46 +0200
-Subject: [PATCH] doc: don't try to import sphinx_panels on CentOS 7
-
-
- 1 file changed, 3 deletions(-)
-
-diff --git a/doc/conf.py b/doc/conf.py
-index fc2e94d96..515241051 100644
---- a/doc/conf.py
-+++ b/doc/conf.py
-@@ -27,9 +27,6 @@ sys.path.insert(0, os.path.abspath('ext'))
-
- # Add any Sphinx extension module names here, as strings. They can be extensions
- # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
--import importlib.util
--if importlib.util.find_spec("sphinx_panels"):
-- extensions = [ 'sphinx_panels' ]
-
- # Add any paths that contain templates here, relative to this directory.
- templates_path = ['_templates']
---
-2.25.1
-
diff --git a/distro/pkg/el-7/04-revert-don-t-share-PKCS-11-private-keys.patch b/distro/pkg/el-7/04-revert-don-t-share-PKCS-11-private-keys.patch
deleted file mode 100644
index d360433..0000000
--- a/distro/pkg/el-7/04-revert-don-t-share-PKCS-11-private-keys.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-From 1bad8f831a9fd506516549ac7461f97c689a0c46 Mon Sep 17 00:00:00 2001
-From: Daniel Salzman <daniel.salzman@nic.cz>
-Date: Mon, 11 Dec 2023 17:08:23 +0100
-Subject: [PATCH] Revert "zone-sign: don't share PKCS 11 private keys by
- multiple signing threads"
-
-This reverts commit 7d63e8e0825e03b8e0608e87b86968c452755c93.
----
- src/knot/dnssec/zone-keys.c | 38 +++----------------------------------
- src/libdnssec/key.h | 4 ++--
- src/libdnssec/key/key.c | 24 +----------------------
- tests/libdnssec/test_key.c | 4 ++--
- 4 files changed, 8 insertions(+), 62 deletions(-)
-
-diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c
-index cd6bf0bb3..d5cccc759 100644
---- a/src/knot/dnssec/zone-keys.c
-+++ b/src/knot/dnssec/zone-keys.c
-@@ -642,21 +642,6 @@ int zone_key_calculate_ds(zone_key_t *for_key, dnssec_key_digest_t digesttype,
- return ret;
- }
-
--static int dup_zone_key(const zone_key_t *src, zone_key_t *dst)
--{
-- assert(src);
-- assert(dst);
--
-- *dst = *src;
--
-- dst->key = dnssec_key_dup(src->key);
-- if (dst->key == NULL) {
-- return KNOT_ENOMEM;
-- }
--
-- return KNOT_EOK;
--}
--
- zone_sign_ctx_t *zone_sign_ctx(const zone_keyset_t *keyset, const kdnssec_ctx_t *dnssec_ctx)
- {
- zone_sign_ctx_t *ctx = calloc(1, sizeof(*ctx) + keyset->count * sizeof(*ctx->sign_ctxs));
-@@ -665,24 +650,11 @@ zone_sign_ctx_t *zone_sign_ctx(const zone_keyset_t *keyset, const kdnssec_ctx_t
- }
-
- ctx->sign_ctxs = (dnssec_sign_ctx_t **)(ctx + 1);
--
-- ctx->keys = calloc(keyset->count, sizeof(*ctx->keys));
-- if (ctx->keys == NULL) {
-- zone_sign_ctx_free(ctx);
-- return NULL;
-- }
- ctx->count = keyset->count;
--
-+ ctx->keys = keyset->keys;
- ctx->dnssec_ctx = dnssec_ctx;
- for (size_t i = 0; i < ctx->count; i++) {
-- // Clone the key to avoid thread contention on the key mutex.
-- int ret = dup_zone_key(&keyset->keys[i], &ctx->keys[i]);
-- if (ret != KNOT_EOK) {
-- zone_sign_ctx_free(ctx);
-- return NULL;
-- }
--
-- ret = dnssec_sign_new(&ctx->sign_ctxs[i], ctx->keys[i].key);
-+ int ret = dnssec_sign_new(&ctx->sign_ctxs[i], ctx->keys[i].key);
- if (ret != DNSSEC_EOK) {
- zone_sign_ctx_free(ctx);
- return NULL;
-@@ -719,12 +691,8 @@ void zone_sign_ctx_free(zone_sign_ctx_t *ctx)
- {
- if (ctx != NULL) {
- for (size_t i = 0; i < ctx->count; i++) {
-- if (ctx->keys != NULL) {
-- dnssec_key_free(ctx->keys[i].key);
-- }
- dnssec_sign_free(ctx->sign_ctxs[i]);
- }
-- free(ctx->keys);
- free(ctx);
- }
- }
-diff --git a/src/libdnssec/key.h b/src/libdnssec/key.h
-index aa8002b4a..2a69d377f 100644
---- a/src/libdnssec/key.h
-+++ b/src/libdnssec/key.h
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-+/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -134,7 +134,7 @@ void dnssec_key_free(dnssec_key_t *key);
- /*!
- * Create a copy of a DNSSEC key.
- *
-- * Public key isn't duplicated.
-+ * Only a public part of the key is copied.
- */
- dnssec_key_t *dnssec_key_dup(const dnssec_key_t *key);
-
-diff --git a/src/libdnssec/key/key.c b/src/libdnssec/key/key.c
-index 4574bbefb..f36316712 100644
---- a/src/libdnssec/key/key.c
-+++ b/src/libdnssec/key/key.c
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-+/* Copyright (C) 2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -141,28 +141,6 @@ dnssec_key_t *dnssec_key_dup(const dnssec_key_t *key)
- return NULL;
- }
-
-- if (key->private_key != NULL) {
-- gnutls_privkey_init(&dup->private_key);
--
-- gnutls_privkey_type_t type = gnutls_privkey_get_type(key->private_key);
-- if (type == GNUTLS_PRIVKEY_PKCS11) {
--#ifdef ENABLE_PKCS11
-- gnutls_pkcs11_privkey_t tmp;
-- gnutls_privkey_export_pkcs11(key->private_key, &tmp);
-- gnutls_privkey_import_pkcs11(dup->private_key, tmp,
-- GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
--#else
-- assert(0);
--#endif // ENABLE_PKCS11
-- } else {
-- assert(type == GNUTLS_PRIVKEY_X509);
-- gnutls_x509_privkey_t tmp;
-- gnutls_privkey_export_x509(key->private_key, &tmp);
-- gnutls_privkey_import_x509(dup->private_key, tmp,
-- GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
-- }
-- }
--
- return dup;
- }
-
-diff --git a/tests/libdnssec/test_key.c b/tests/libdnssec/test_key.c
-index c3643f08c..cd0aaee0e 100644
---- a/tests/libdnssec/test_key.c
-+++ b/tests/libdnssec/test_key.c
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-+/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -148,7 +148,7 @@ static void test_private_key(const key_parameters_t *params)
-
- check_key_tag(copy, params);
- check_key_size(copy, params);
-- check_usage(copy, true, true);
-+ check_usage(copy, true, false);
-
- dnssec_key_free(copy);
- dnssec_key_free(key);
---
-2.34.1
-
diff --git a/distro/pkg/el-7/05-revert-mod-dnstap-TCP-sink.patch b/distro/pkg/el-7/05-revert-mod-dnstap-TCP-sink.patch
deleted file mode 100644
index dae0fac..0000000
--- a/distro/pkg/el-7/05-revert-mod-dnstap-TCP-sink.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-From d236d2b7fcd5fa607f7bfd38044eb6f510fac7ce Mon Sep 17 00:00:00 2001
-From: Daniel Salzman <daniel.salzman@nic.cz>
-Date: Wed, 12 Jun 2024 11:18:31 +0200
-Subject: [PATCH] Revert "mod-dnstap: add sink for TCP connection"
-
-This reverts commit 2ffd7dfa58ddcd1b860f0c9980fd082c3852d3e6.
----
- src/knot/modules/dnstap/dnstap.c | 74 +++++-------------------------
- src/knot/modules/dnstap/dnstap.rst | 9 ++--
- 2 files changed, 15 insertions(+), 68 deletions(-)
-
-diff --git a/src/knot/modules/dnstap/dnstap.c b/src/knot/modules/dnstap/dnstap.c
-index 612e48869..c8c82eaa4 100644
---- a/src/knot/modules/dnstap/dnstap.c
-+++ b/src/knot/modules/dnstap/dnstap.c
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -185,33 +185,6 @@ finish:
- return writer;
- }
-
--static struct fstrm_writer* dnstap_tcp_writer(const char *address, const char *port)
--{
-- struct fstrm_tcp_writer_options *opt = NULL;
-- struct fstrm_writer_options *wopt = NULL;
-- struct fstrm_writer *writer = NULL;
--
-- opt = fstrm_tcp_writer_options_init();
-- if (opt == NULL) {
-- goto finish;
-- }
--
-- fstrm_tcp_writer_options_set_socket_address(opt, address);
-- fstrm_tcp_writer_options_set_socket_port(opt, port);
--
-- wopt = fstrm_writer_options_init();
-- if (wopt == NULL) {
-- goto finish;
-- }
-- fstrm_writer_options_add_content_type(wopt, DNSTAP_CONTENT_TYPE,
-- strlen(DNSTAP_CONTENT_TYPE));
-- writer = fstrm_tcp_writer_init(opt, wopt);
--finish:
-- fstrm_tcp_writer_options_destroy(&opt);
-- fstrm_writer_options_destroy(&wopt);
-- return writer;
--}
--
- /*! \brief Create a basic file writer sink. */
- static struct fstrm_writer* dnstap_file_writer(const char *path)
- {
-@@ -240,42 +213,17 @@ finish:
- }
-
- /*! \brief Create a log sink according to the path string. */
--static struct fstrm_writer* dnstap_writer(knotd_mod_t *mod, const char *path)
-+static struct fstrm_writer* dnstap_writer(const char *path)
- {
-- const char *unix_prefix = "unix:";
-- const size_t unix_prefix_len = strlen(unix_prefix);
--
-- const char *tcp_prefix = "tcp:";
-- const size_t tcp_prefix_len = strlen(tcp_prefix);
--
-- const size_t path_len = strlen(path);
-+ const char *prefix = "unix:";
-+ const size_t prefix_len = strlen(prefix);
-
- /* UNIX socket prefix. */
-- if (path_len > unix_prefix_len &&
-- strncmp(path, unix_prefix, unix_prefix_len) == 0) {
-- knotd_mod_log(mod, LOG_DEBUG, "using sink UNIX socket '%s'", path);
-- return dnstap_unix_writer(path + unix_prefix_len);
-- /* TCP socket prefix. */
-- } else if (path_len > tcp_prefix_len &&
-- strncmp(path, tcp_prefix, tcp_prefix_len) == 0) {
-- char addr[INET6_ADDRSTRLEN] = { 0 };
-- const char *delimiter = strchr(path + tcp_prefix_len, '@');
-- if (delimiter == NULL) {
-- return NULL;
-- }
-- size_t addr_len = delimiter - path - tcp_prefix_len;
-- if (addr_len >= sizeof(addr)) {
-- return NULL;
-- }
-- memcpy(addr, path + tcp_prefix_len, addr_len);
-- knotd_mod_log(mod, LOG_DEBUG, "using sink TCP address '%s' port '%s'",
-- addr, delimiter + 1);
-- return dnstap_tcp_writer(addr, delimiter + 1);
-- /* File path. */
-- } else {
-- knotd_mod_log(mod, LOG_DEBUG, "using sink file '%s'", path);
-- return dnstap_file_writer(path);
-+ if (strlen(path) > prefix_len && strncmp(path, prefix, prefix_len) == 0) {
-+ return dnstap_unix_writer(path + prefix_len);
- }
-+
-+ return dnstap_file_writer(path);
- }
-
- int dnstap_load(knotd_mod_t *mod)
-@@ -325,7 +273,7 @@ int dnstap_load(knotd_mod_t *mod)
- const bool log_responses = conf.single.boolean;
-
- /* Initialize the writer and the options. */
-- struct fstrm_writer *writer = dnstap_writer(mod, sink);
-+ struct fstrm_writer *writer = dnstap_writer(sink);
- if (writer == NULL) {
- goto fail;
- }
-@@ -359,13 +307,13 @@ int dnstap_load(knotd_mod_t *mod)
-
- return KNOT_EOK;
- fail:
-- knotd_mod_log(mod, LOG_ERR, "failed to initialize sink '%s'", sink);
-+ knotd_mod_log(mod, LOG_ERR, "failed to init sink '%s'", sink);
-
- free(ctx->identity);
- free(ctx->version);
- free(ctx);
-
-- return KNOT_EINVAL;
-+ return KNOT_ENOMEM;
- }
-
- void dnstap_unload(knotd_mod_t *mod)
-diff --git a/src/knot/modules/dnstap/dnstap.rst b/src/knot/modules/dnstap/dnstap.rst
-index 05eac09ab..358977da0 100644
---- a/src/knot/modules/dnstap/dnstap.rst
-+++ b/src/knot/modules/dnstap/dnstap.rst
-@@ -11,7 +11,7 @@ Example
- -------
-
- The configuration comprises only a :ref:`mod-dnstap_sink` path parameter,
--which can be either a file, a UNIX socket, or a TCP address::
-+which can be either a file or a UNIX socket::
-
- mod-dnstap:
- - id: capture_all
-@@ -60,10 +60,9 @@ A module identifier.
- sink
- ....
-
--A sink path, which can be either a file, a UNIX socket when prefixed with
--``unix:``, or a TCP `address@port` when prefixed with ``tcp:``. The file may
--be specified as an absolute path or a path relative to
--the :doc:`knotd<man_knotd>` startup directory.
-+A sink path, which can be either a file or a UNIX socket when prefixed with
-+``unix:``. The file may be specified as an absolute path or a path relative
-+to the :doc:`knotd<man_knotd>` startup directory.
-
- *Required*
-
---
-2.34.1
-
diff --git a/distro/pkg/el-7/knot.service b/distro/pkg/el-7/knot.service
deleted file mode 100644
index a872929..0000000
--- a/distro/pkg/el-7/knot.service
+++ /dev/null
@@ -1,25 +0,0 @@
-[Unit]
-Description=Knot DNS server
-Wants=network-online.target
-After=network-online.target
-Documentation=man:knotd(8) man:knot.conf(5) man:knotc(8)
-
-[Service]
-Type=notify
-User=knot
-Group=knot
-CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SETPCAP
-AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_SETPCAP
-ExecStartPre=/usr/sbin/knotc conf-check
-ExecStart=/usr/sbin/knotd -m "$KNOT_CONF_MAX_SIZE"
-ExecReload=/bin/kill -HUP $MAINPID
-Restart=on-abort
-LimitNOFILE=1048576
-TimeoutStopSec=300
-# Extend the systemd startup timeout by this value (seconds) for each zone
-Environment="KNOT_ZONE_LOAD_TIMEOUT_SEC=180"
-# Maximum size (MiB) of a configuration database
-Environment="KNOT_CONF_MAX_SIZE=512"
-
-[Install]
-WantedBy=multi-user.target
diff --git a/distro/pkg/el-7/knot.spec b/distro/pkg/el-7/knot.spec
deleted file mode 100644
index 887f988..0000000
--- a/distro/pkg/el-7/knot.spec
+++ /dev/null
@@ -1,334 +0,0 @@
-%global _hardened_build 1
-%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}}
-
-%define GPG_CHECK 0
-%define BASE_VERSION %(echo "%{version}" | sed 's/^\\([^.]\\+\\.[^.]\\+\\).*/\\1/')
-%define repodir %{_builddir}/%{name}-%{version}
-
-Summary: High-performance authoritative DNS server
-Name: knot
-Version: {{ version }}
-Release: cznic.{{ release }}%{?dist}
-License: GPL-3.0-or-later
-URL: https://www.knot-dns.cz
-Source0: %{name}-%{version}.tar.xz
-
-%if 0%{?GPG_CHECK}
-Source1: https://secure.nic.cz/files/knot-dns/%{name}-%{version}.tar.xz.asc
-# PGP keys used to sign upstream releases
-# Export with --armor using command from https://fedoraproject.org/wiki/PackagingDrafts:GPGSignatures
-# Don't forget to update %%prep section when adding/removing keys
-Source100: gpgkey-742FA4E95829B6C5EAC6B85710BB7AF6FEBBD6AB.gpg.asc
-BuildRequires: gnupg2
-%endif
-
-Patch1: 01-revert-AC_PROG_CC.patch
-Patch2: 02-fix-compilation-by-using-SHA-1.patch
-Patch3: 03-doc-don-t-try-to-import-sphinx_panels.patch
-Patch4: 04-revert-don-t-share-PKCS-11-private-keys.patch
-Patch5: 05-revert-mod-dnstap-TCP-sink.patch
-
-# Required dependencies
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: libtool
-BuildRequires: devtoolset-11-make
-BuildRequires: devtoolset-11-gcc
-BuildRequires: pkgconfig(liburcu)
-BuildRequires: pkgconfig(gnutls) >= 3.3
-BuildRequires: pkgconfig(libedit)
-
-# Optional dependencies
-BuildRequires: pkgconfig(libcap-ng)
-BuildRequires: pkgconfig(libidn2)
-BuildRequires: pkgconfig(libmnl)
-BuildRequires: pkgconfig(libnghttp2)
-BuildRequires: pkgconfig(libsystemd)
-BuildRequires: pkgconfig(systemd)
-# dnstap dependencies
-BuildRequires: pkgconfig(libfstrm)
-BuildRequires: pkgconfig(libprotobuf-c)
-# geoip dependencies
-BuildRequires: pkgconfig(libmaxminddb)
-
-# Distro-dependent dependencies
-%if 0%{?suse_version}
-BuildRequires: python3-Sphinx
-BuildRequires: lmdb-devel
-BuildRequires: protobuf-c
-Requires(pre): pwdutils
-%endif
-%if 0%{?rhel} && 0%{?rhel} <= 7
-BuildRequires: python-sphinx
-BuildRequires: lmdb-devel
-%endif
-%if 0%{?fedora} || 0%{?rhel} > 7
-BuildRequires: python3-sphinx
-BuildRequires: pkgconfig(lmdb)
-%endif
-
-# disable XDP on old EL
-%define configure_xdp --enable-xdp=no
-
-Requires(post): systemd %{_sbindir}/runuser
-Requires(preun): systemd
-Requires(postun): systemd
-
-Conflicts: knot-resolver < 5.7.0
-
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-
-%description
-Knot DNS is a high-performance authoritative DNS server implementation.
-
-%package libs
-Summary: Libraries used by the Knot DNS server and client applications
-
-%description libs
-The package contains shared libraries used by the Knot DNS server and
-utilities.
-
-%package devel
-Summary: Development header files for the Knot DNS libraries
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-
-%description devel
-The package contains development header files for the Knot DNS libraries
-included in knot-libs package.
-
-%package utils
-Summary: DNS client utilities shipped with the Knot DNS server
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-# Debian package compat
-Provides: %{name}-dnsutils = %{version}-%{release}
-
-%description utils
-The package contains DNS client utilities shipped with the Knot DNS server.
-
-%package dnssecutils
-Summary: DNSSEC tools shipped with the Knot DNS server
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-
-%description dnssecutils
-The package contains DNSSEC tools shipped with the Knot DNS server.
-
-%package module-dnstap
-Summary: dnstap module for Knot DNS
-Requires: %{name} = %{version}-%{release}
-
-%description module-dnstap
-The package contains dnstap Knot DNS module for logging DNS traffic.
-
-%package module-geoip
-Summary: geoip module for Knot DNS
-Requires: %{name} = %{version}-%{release}
-
-%description module-geoip
-The package contains geoip Knot DNS module for geography-based responses.
-
-%package doc
-Summary: Documentation for the Knot DNS server
-BuildArch: noarch
-Provides: bundled(jquery)
-
-%description doc
-The package contains documentation for the Knot DNS server.
-On-line version is available on https://www.knot-dns.cz/documentation/
-
-%prep
-%if 0%{?GPG_CHECK}
-export GNUPGHOME=./gpg-keyring
-[ -d ${GNUPGHOME} ] && rm -r ${GNUPGHOME}
-mkdir --mode=700 ${GNUPGHOME}
-gpg2 --import %{SOURCE100}
-gpg2 --verify %{SOURCE1} %{SOURCE0}
-%endif
-%autosetup -p1
-
-%build
-# disable debug code (causes unused warnings)
-CFLAGS="%{optflags} -DNDEBUG -Wno-unused"
-
-%ifarch armv7hl i686
-# 32-bit architectures sometimes do not have sufficient amount of
-# contiguous address space to handle default values
-%define configure_db_sizes --with-conf-mapsize=64
-%endif
-
-autoreconf -if
-
-export CC="/opt/rh/devtoolset-11/root/usr/bin/gcc"
-%configure \
- --sysconfdir=/etc \
- --localstatedir=/var/lib \
- --libexecdir=/usr/lib/knot \
- --with-rundir=/run/knot \
- --with-moduledir=%{_libdir}/knot/modules-%{BASE_VERSION} \
- --with-storage=/var/lib/knot \
- %{?configure_db_sizes} \
- %{?configure_xdp} \
- --disable-static \
- --enable-dnstap=yes \
- --with-module-dnstap=shared \
- --with-module-geoip=shared
-make %{?_smp_mflags}
-make html
-
-%install
-make install DESTDIR=%{buildroot}
-
-# install documentation
-install -d -m 0755 %{buildroot}%{_pkgdocdir}/samples
-install -p -m 0644 -t %{buildroot}%{_pkgdocdir}/samples samples/*.zone*
-install -p -m 0644 NEWS README.md %{buildroot}%{_pkgdocdir}
-cp -av doc/_build/html %{buildroot}%{_pkgdocdir}
-[ -r %{buildroot}%{_pkgdocdir}/html/index.html ] || exit 1
-rm -f %{buildroot}%{_pkgdocdir}/html/.buildinfo
-
-# install daemon and dbus configuration files
-rm %{buildroot}%{_sysconfdir}/%{name}/*
-install -p -m 0644 -D %{repodir}/samples/%{name}.sample.conf %{buildroot}%{_sysconfdir}/%{name}/%{name}.conf
-%if 0%{?fedora} || 0%{?rhel} > 7
-install -p -m 0644 -D %{repodir}/distro/common/cz.nic.knotd.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/cz.nic.knotd.conf
-%endif
-
-# install systemd files
-install -p -m 0644 -D %{repodir}/distro/pkg/el-7/%{name}.service %{buildroot}%{_unitdir}/%{name}.service
-install -p -m 0644 -D %{repodir}/distro/pkg/el-7/%{name}.tmpfiles %{buildroot}%{_tmpfilesdir}/%{name}.conf
-%if 0%{?suse_version}
-ln -s service %{buildroot}/%{_sbindir}/rcknot
-%endif
-
-# create storage dir
-install -d %{buildroot}%{_sharedstatedir}
-install -d -m 0770 -D %{buildroot}%{_sharedstatedir}/knot
-
-# remove libarchive files
-find %{buildroot} -type f -name "*.la" -delete -print
-
-%check
-V=1 make check
-
-%pre
-getent group knot >/dev/null || groupadd -r knot
-getent passwd knot >/dev/null || \
- useradd -r -g knot -d %{_sharedstatedir}/knot -s /sbin/nologin \
- -c "Knot DNS server" knot
-%if 0%{?suse_version}
-%service_add_pre knot.service
-%endif
-
-%post
-systemd-tmpfiles --create %{_tmpfilesdir}/knot.conf &>/dev/null || :
-%if 0%{?suse_version}
-%service_add_post knot.service
-%else
-%systemd_post knot.service
-%endif
-
-%preun
-%if 0%{?suse_version}
-%service_del_preun knot.service
-%else
-%systemd_preun knot.service
-%endif
-
-%postun
-%if 0%{?suse_version}
-%service_del_postun knot.service
-%else
-%systemd_postun_with_restart knot.service
-%endif
-
-%if 0%{?fedora} || 0%{?rhel} > 7
-# https://fedoraproject.org/wiki/Changes/Removing_ldconfig_scriptlets
-%else
-%post libs -p /sbin/ldconfig
-%postun libs -p /sbin/ldconfig
-%endif
-
-%files
-%license COPYING
-%doc %{_pkgdocdir}
-%exclude %{_pkgdocdir}/html
-%attr(770,root,knot) %dir %{_sysconfdir}/knot
-%config(noreplace) %attr(640,root,knot) %{_sysconfdir}/knot/knot.conf
-%if 0%{?fedora} || 0%{?rhel} > 7
-%config(noreplace) %attr(644,root,root) %{_sysconfdir}/dbus-1/system.d/cz.nic.knotd.conf
-%endif
-%attr(770,root,knot) %dir %{_sharedstatedir}/knot
-%dir %{_libdir}/knot
-%dir %{_libdir}/knot/modules-*
-%{_unitdir}/knot.service
-%{_tmpfilesdir}/knot.conf
-%{_sbindir}/kcatalogprint
-%{_sbindir}/kjournalprint
-%{_sbindir}/keymgr
-%{_sbindir}/knotc
-%{_sbindir}/knotd
-%if 0%{?suse_version}
-%{_sbindir}/rcknot
-%endif
-%{_mandir}/man5/knot.conf.*
-%{_mandir}/man8/kcatalogprint.*
-%{_mandir}/man8/kjournalprint.*
-%{_mandir}/man8/keymgr.*
-%{_mandir}/man8/knotc.*
-%{_mandir}/man8/knotd.*
-%ghost %attr(770,root,knot) %dir %{_rundir}/knot
-
-%files utils
-%{_bindir}/kdig
-%{_bindir}/khost
-%{_bindir}/knsupdate
-%if 0%{?use_xdp}
-%{_sbindir}/kxdpgun
-%{_mandir}/man8/kxdpgun.*
-%endif
-%{_mandir}/man1/kdig.*
-%{_mandir}/man1/khost.*
-%{_mandir}/man1/knsupdate.*
-
-%files dnssecutils
-%{_bindir}/knsec3hash
-%{_bindir}/kzonecheck
-%{_bindir}/kzonesign
-%{_mandir}/man1/knsec3hash.*
-%{_mandir}/man1/kzonecheck.*
-%{_mandir}/man1/kzonesign.*
-
-%files module-dnstap
-%{_libdir}/knot/modules-*/dnstap.so
-
-%files module-geoip
-%{_libdir}/knot/modules-*/geoip.so
-
-%files libs
-%license COPYING
-%doc NEWS
-%doc README.md
-%{_libdir}/libdnssec.so.*
-%{_libdir}/libknot.so.*
-%{_libdir}/libzscanner.so.*
-
-%files devel
-%{_includedir}/libdnssec
-%{_includedir}/knot
-%{_includedir}/libknot
-%{_includedir}/libzscanner
-%{_libdir}/libdnssec.so
-%{_libdir}/libknot.so
-%{_libdir}/libzscanner.so
-%{_libdir}/pkgconfig/knotd.pc
-%{_libdir}/pkgconfig/libdnssec.pc
-%{_libdir}/pkgconfig/libknot.pc
-%{_libdir}/pkgconfig/libzscanner.pc
-
-%files doc
-%dir %{_pkgdocdir}
-%doc %{_pkgdocdir}/html
-
-%changelog
-* {{ now }} Jakub Ružička <jakub.ruzicka@nic.cz> - {{ version }}-{{ release }}
-- upstream package
-- see https://www.knot-dns.cz
diff --git a/distro/pkg/el-7/knot.tmpfiles b/distro/pkg/el-7/knot.tmpfiles
deleted file mode 100644
index edec729..0000000
--- a/distro/pkg/el-7/knot.tmpfiles
+++ /dev/null
@@ -1,3 +0,0 @@
-# tmpfiles.d(5) runtime directory for knot
-#Type Path Mode UID GID Age Argument
- d /run/knot 0755 knot knot - -
diff --git a/distro/pkg/rpm/knot.spec b/distro/pkg/rpm/knot.spec
index 3a7d89e..c99ea55 100644
--- a/distro/pkg/rpm/knot.spec
+++ b/distro/pkg/rpm/knot.spec
@@ -84,7 +84,7 @@ Knot DNS is a high-performance authoritative DNS server implementation.
%package libs
Summary: Libraries used by the Knot DNS server and client applications
-Conflicts: knot-resolver < 5.7.0
+Conflicts: knot-resolver < 5.7.3
%description libs
The package contains shared libraries used by the Knot DNS server and
diff --git a/doc/Makefile.am b/doc/Makefile.am
index b26e298..71d561c 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,18 +1,3 @@
-MANPAGES_IN = \
- man/knot.conf.5in \
- man/knotc.8in \
- man/knotd.8in \
- man/kcatalogprint.8in \
- man/keymgr.8in \
- man/kjournalprint.8in \
- man/kdig.1in \
- man/khost.1in \
- man/knsupdate.1in \
- man/knsec3hash.1in \
- man/kzonecheck.1in \
- man/kzonesign.1in \
- man/kxdpgun.8in
-
MANPAGES_RST = \
reference.rst \
man_knotc.rst \
@@ -44,7 +29,6 @@ EXTRA_DIST = \
troubleshooting.rst \
utilities.rst \
\
- $(MANPAGES_IN) \
$(MANPAGES_RST) \
\
logo.pdf \
@@ -66,27 +50,26 @@ SPHINXBUILDDIR = $(builddir)/_build
_SPHINXOPTS = -c $(srcdir) \
-a \
- $(SPHINX_V)
-
-ALLSPHINXOPTS = $(_SPHINXOPTS) \
+ $(SPHINX_V) \
-D version="$(VERSION)" \
-D today="$(RELEASE_DATE)" \
- -D release="$(VERSION)" \
+ -D release="$(VERSION)"
+
+ALLSPHINXOPTS = $(_SPHINXOPTS) \
$(SPHINXOPTS) \
$(srcdir)
man_SPHINXOPTS = $(_SPHINXOPTS) \
- -D version="@""VERSION@" \
- -D today="@""RELEASE_DATE@" \
- -D release="@""VERSION@" \
-D extensions="ignore_panels" \
$(SPHINXOPTS) \
$(srcdir)
-.PHONY: html-local singlehtml pdf-local info-local epub man install-html-local install-singlehtml install-pdf-local install-info-local install-epub
+.PHONY: html-local singlehtml pdf-local epub man install-html-local install-singlehtml install-pdf-local install-epub
man_MANS =
+if HAVE_DOCS
+
if HAVE_DAEMON
man_MANS += \
man/knot.conf.5 \
@@ -115,43 +98,8 @@ man_MANS += man/kxdpgun.8
endif # ENABLE_XDP
endif # HAVE_UTILS
-man/knot.conf.5: man/knot.conf.5in
-man/knotc.8: man/knotc.8in
-man/knotd.8: man/knotd.8in
-man/kcatalogprint.8: man/kcatalogprint.8in
-man/keymgr.8: man/keymgr.8in
-man/kjournalprint.8: man/kjournalprint.8in
-man/kdig.1: man/kdig.1in
-man/khost.1: man/khost.1in
-man/knsupdate.1: man/knsupdate.1in
-man/knsec3hash.1: man/knsec3hash.1in
-man/kzonecheck.1: man/kzonecheck.1in
-man/kzonesign.1: man/kzonesign.1in
-man/kxdpgun.8: man/kxdpgun.8in
-
-man_SUBST = $(AM_V_GEN)mkdir -p man; \
- sed -e 's,[@]VERSION@,$(VERSION),' \
- -e 's,[@]RELEASE_DATE@,$(RELEASE_DATE),' \
- -e 's,[@]config_dir@,$(config_dir),' \
- -e 's,[@]storage_dir@,$(storage_dir),' \
- -e 's,[@]run_dir@,$(run_dir),' \
- -e 's,[@]conf_mapsize@,$(conf_mapsize),' \
- $< > $@
-
-.1in.1:
- $(man_SUBST)
-
-.5in.5:
- $(man_SUBST)
-
-.8in.8:
- $(man_SUBST)
-
-if HAVE_DOCS
-
-if HAVE_SPHINXBUILD
html-local:
- $(AM_V_SPHINX)$(SPHINXBUILD) -b html -d $(SPHINXBUILDDIR)/doctrees $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/html
+ $(AM_V_SPHINX)$(SPHINXBUILD) -b html -d $(SPHINXBUILDDIR)/doctrees/html $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/html
@echo "The HTML documentation has been built in $(SPHINXBUILDDIR)/html/"
install-html-local:
@@ -161,7 +109,7 @@ install-html-local:
$(INSTALL_DATA) $(SPHINXBUILDDIR)/html/_static/* $(DESTDIR)/$(docdir)/_static/
singlehtml:
- $(AM_V_SPHINX)$(SPHINXBUILD) -b singlehtml -d $(SPHINXBUILDDIR)/doctrees $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/singlehtml
+ $(AM_V_SPHINX)$(SPHINXBUILD) -b singlehtml -d $(SPHINXBUILDDIR)/doctrees/singlehtml $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/singlehtml
@echo "The single HTML documentation has been built in $(SPHINXBUILDDIR)/singlehtml/"
install-singlehtml: singlehtml
@@ -170,7 +118,7 @@ install-singlehtml: singlehtml
$(INSTALL_DATA) $(SPHINXBUILDDIR)/singlehtml/_static/* $(DESTDIR)/$(docdir)/_static/
epub:
- $(AM_V_SPHINX)$(SPHINXBUILD) -b epub -A today=$(RELEASE_DATE) -d $(SPHINXBUILDDIR)/doctrees $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/epub
+ $(AM_V_SPHINX)$(SPHINXBUILD) -b epub -A today=$(RELEASE_DATE) -d $(SPHINXBUILDDIR)/doctrees/epub $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/epub
@echo "The EPUB documentation has been built in $(SPHINXBUILDDIR)/epub/"
install-epub:
@@ -179,7 +127,7 @@ install-epub:
if HAVE_PDFLATEX
pdf-local:
- $(AM_V_SPHINX)$(SPHINXBUILD) -b latex -d $(SPHINXBUILDDIR)/doctrees $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/latex
+ $(AM_V_SPHINX)$(SPHINXBUILD) -b latex -d $(SPHINXBUILDDIR)/doctrees/latex $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/latex
$(MAKE) -C $(SPHINXBUILDDIR)/latex all-pdf
@echo "The PDF documentation has been built in $(SPHINXBUILDDIR)/latex/"
@@ -192,37 +140,26 @@ pdf-local install-pdf-local:
@echo "Install 'pdflatex' and re-run configure to be able to generate PDF documentation!"
endif # HAVE_PDFLATEX
-if HAVE_MAKEINFO
-info-local:
- $(AM_V_SPHINX)$(SPHINXBUILD) -b texinfo -d $(SPHINXBUILDDIR)/doctrees $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/texinfo
- $(MAKE) -C $(SPHINXBUILDDIR)/texinfo info
- @echo "The Info pages have been built in $(SPHINXBUILDDIR)/texinfo/"
-
-install-info-local:
- $(INSTALL) -d $(DESTDIR)/$(infodir)
- $(INSTALL_DATA) $(SPHINXBUILDDIR)/texinfo/knot.info $(DESTDIR)/$(infodir)/
-
-else
-info-local install-info-local:
- @echo "Install 'texinfo' and re-run configure to be able to generate Info pages!"
-endif # HAVE_MAKEINFO
-
-.NOTPARALLEL: man
man: $(man_MANS)
-$(MANPAGES_IN): $(MANPAGES_RST)
- $(AM_V_SPHINX)$(SPHINXBUILD) -b man -d $(SPHINXBUILDDIR)/doctrees $(man_SPHINXOPTS) $(SPHINXBUILDDIR)/man
- @mkdir -p $(srcdir)/man
+$(man_MANS)&: $(MANPAGES_RST)
+ $(AM_V_SPHINX)$(SPHINXBUILD) -b man -d $(SPHINXBUILDDIR)/doctrees/man $(man_SPHINXOPTS) $(SPHINXBUILDDIR)/man
+ @mkdir -p man
@for f in $(SPHINXBUILDDIR)/man/*; do \
- sed -e '/^\.TP$$/ {' -e 'n' -e 's/^\.B //' -e '}' "$$f" > "$(srcdir)/man/$$(basename $$f)in"; \
+ sed -e 's,[@]config_dir@,$(config_dir),' \
+ -e 's,[@]storage_dir@,$(storage_dir),' \
+ -e 's,[@]run_dir@,$(run_dir),' \
+ -e 's,[@]conf_mapsize@,$(conf_mapsize),' "$$f" > "man/$$(basename $$f)"; \
done
else
-html-local singlehtml pdf-local info-local epub man install-html-local install-singlehtml install-pdf-local install-info-local install-epub:
+html-local singlehtml pdf-local epub man install-html-local install-singlehtml install-pdf-local install-epub:
@echo "Install 'sphinx-build' and re-run configure to be able to generate documentation!"
-endif # HAVE_SPHINXBUILD
endif # HAVE_DOCS
+EXTRA_DIST += \
+ $(man_MANS)
+
clean-local:
-rm -rf $(SPHINXBUILDDIR)
- -rm -f man/*.1 man/*.5 man/*.8
+ -rm -rf man
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 5642629..a7bacd9 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -87,25 +87,25 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-@HAVE_DAEMON_TRUE@am__append_1 = \
-@HAVE_DAEMON_TRUE@ man/knot.conf.5 \
-@HAVE_DAEMON_TRUE@ man/knotc.8 \
-@HAVE_DAEMON_TRUE@ man/knotd.8
-
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@am__append_2 = \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ man/kcatalogprint.8 \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ man/keymgr.8 \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ man/kjournalprint.8 \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ man/kzonecheck.1 \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ man/kzonesign.1
-
-@HAVE_UTILS_TRUE@am__append_3 = \
-@HAVE_UTILS_TRUE@ man/kdig.1 \
-@HAVE_UTILS_TRUE@ man/khost.1 \
-@HAVE_UTILS_TRUE@ man/knsupdate.1 \
-@HAVE_UTILS_TRUE@ man/knsec3hash.1
-
-@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@am__append_4 = man/kxdpgun.8
+@HAVE_DAEMON_TRUE@@HAVE_DOCS_TRUE@am__append_1 = \
+@HAVE_DAEMON_TRUE@@HAVE_DOCS_TRUE@ man/knot.conf.5 \
+@HAVE_DAEMON_TRUE@@HAVE_DOCS_TRUE@ man/knotc.8 \
+@HAVE_DAEMON_TRUE@@HAVE_DOCS_TRUE@ man/knotd.8
+
+@HAVE_DAEMON_TRUE@@HAVE_DOCS_TRUE@@HAVE_UTILS_TRUE@am__append_2 = \
+@HAVE_DAEMON_TRUE@@HAVE_DOCS_TRUE@@HAVE_UTILS_TRUE@ man/kcatalogprint.8 \
+@HAVE_DAEMON_TRUE@@HAVE_DOCS_TRUE@@HAVE_UTILS_TRUE@ man/keymgr.8 \
+@HAVE_DAEMON_TRUE@@HAVE_DOCS_TRUE@@HAVE_UTILS_TRUE@ man/kjournalprint.8 \
+@HAVE_DAEMON_TRUE@@HAVE_DOCS_TRUE@@HAVE_UTILS_TRUE@ man/kzonecheck.1 \
+@HAVE_DAEMON_TRUE@@HAVE_DOCS_TRUE@@HAVE_UTILS_TRUE@ man/kzonesign.1
+
+@HAVE_DOCS_TRUE@@HAVE_UTILS_TRUE@am__append_3 = \
+@HAVE_DOCS_TRUE@@HAVE_UTILS_TRUE@ man/kdig.1 \
+@HAVE_DOCS_TRUE@@HAVE_UTILS_TRUE@ man/khost.1 \
+@HAVE_DOCS_TRUE@@HAVE_UTILS_TRUE@ man/knsupdate.1 \
+@HAVE_DOCS_TRUE@@HAVE_UTILS_TRUE@ man/knsec3hash.1
+
+@ENABLE_XDP_TRUE@@HAVE_DOCS_TRUE@@HAVE_UTILS_TRUE@am__append_4 = man/kxdpgun.8
subdir = doc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
@@ -312,6 +312,8 @@ infodir = @infodir@
install_sh = @install_sh@
libbpf_CFLAGS = @libbpf_CFLAGS@
libbpf_LIBS = @libbpf_LIBS@
+libdbus_CFLAGS = @libdbus_CFLAGS@
+libdbus_LIBS = @libdbus_LIBS@
libdir = @libdir@
libdnssec_SONAME = @libdnssec_SONAME@
libdnssec_SOVERSION = @libdnssec_SOVERSION@
@@ -323,8 +325,6 @@ libfstrm_CFLAGS = @libfstrm_CFLAGS@
libfstrm_LIBS = @libfstrm_LIBS@
libidn2_CFLAGS = @libidn2_CFLAGS@
libidn2_LIBS = @libidn2_LIBS@
-libidn_CFLAGS = @libidn_CFLAGS@
-libidn_LIBS = @libidn_LIBS@
libknot_SONAME = @libknot_SONAME@
libknot_SOVERSION = @libknot_SOVERSION@
libknot_VERSION_INFO = @libknot_VERSION_INFO@
@@ -342,7 +342,6 @@ libprotobuf_c_CFLAGS = @libprotobuf_c_CFLAGS@
libprotobuf_c_LIBS = @libprotobuf_c_LIBS@
liburcu_CFLAGS = @liburcu_CFLAGS@
liburcu_LIBS = @liburcu_LIBS@
-liburcu_PKGCONFIG = @liburcu_PKGCONFIG@
libxdp_CFLAGS = @libxdp_CFLAGS@
libxdp_LIBS = @libxdp_LIBS@
libzscanner_SONAME = @libzscanner_SONAME@
@@ -378,21 +377,6 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-MANPAGES_IN = \
- man/knot.conf.5in \
- man/knotc.8in \
- man/knotd.8in \
- man/kcatalogprint.8in \
- man/keymgr.8in \
- man/kjournalprint.8in \
- man/kdig.1in \
- man/khost.1in \
- man/knsupdate.1in \
- man/knsec3hash.1in \
- man/kzonecheck.1in \
- man/kzonesign.1in \
- man/kxdpgun.8in
-
MANPAGES_RST = \
reference.rst \
man_knotc.rst \
@@ -408,31 +392,11 @@ MANPAGES_RST = \
man_kzonesign.rst \
man_kxdpgun.rst
-EXTRA_DIST = \
- conf.py \
- \
- appendices.rst \
- configuration.rst \
- index.rst \
- installation.rst \
- introduction.rst \
- migration.rst \
- modules.rst.in \
- operation.rst \
- reference.rst \
- requirements.rst \
- troubleshooting.rst \
- utilities.rst \
- \
- $(MANPAGES_IN) \
- $(MANPAGES_RST) \
- \
- logo.pdf \
- logo.svg \
- \
- ext/ignore_panels.py \
- theme_html
-
+EXTRA_DIST = conf.py appendices.rst configuration.rst index.rst \
+ installation.rst introduction.rst migration.rst modules.rst.in \
+ operation.rst reference.rst requirements.rst \
+ troubleshooting.rst utilities.rst $(MANPAGES_RST) logo.pdf \
+ logo.svg ext/ignore_panels.py theme_html $(man_MANS)
SPHINX_V = $(SPHINX_V_@AM_V@)
SPHINX_V_ = $(SPHINX_V_@AM_DEFAULT_V@)
SPHINX_V_0 = -q
@@ -443,38 +407,25 @@ AM_V_SPHINX_0 = @echo " SPHINX $@";
SPHINXBUILDDIR = $(builddir)/_build
_SPHINXOPTS = -c $(srcdir) \
-a \
- $(SPHINX_V)
-
-ALLSPHINXOPTS = $(_SPHINXOPTS) \
+ $(SPHINX_V) \
-D version="$(VERSION)" \
-D today="$(RELEASE_DATE)" \
- -D release="$(VERSION)" \
+ -D release="$(VERSION)"
+
+ALLSPHINXOPTS = $(_SPHINXOPTS) \
$(SPHINXOPTS) \
$(srcdir)
man_SPHINXOPTS = $(_SPHINXOPTS) \
- -D version="@""VERSION@" \
- -D today="@""RELEASE_DATE@" \
- -D release="@""VERSION@" \
-D extensions="ignore_panels" \
$(SPHINXOPTS) \
$(srcdir)
man_MANS = $(am__append_1) $(am__append_2) $(am__append_3) \
$(am__append_4)
-man_SUBST = $(AM_V_GEN)mkdir -p man; \
- sed -e 's,[@]VERSION@,$(VERSION),' \
- -e 's,[@]RELEASE_DATE@,$(RELEASE_DATE),' \
- -e 's,[@]config_dir@,$(config_dir),' \
- -e 's,[@]storage_dir@,$(storage_dir),' \
- -e 's,[@]run_dir@,$(run_dir),' \
- -e 's,[@]conf_mapsize@,$(conf_mapsize),' \
- $< > $@
-
all: all-am
.SUFFIXES:
-.SUFFIXES: .1 .1in .5 .5in .8 .8in
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@@ -718,21 +669,11 @@ maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
@HAVE_DOCS_FALSE@html-local:
-@HAVE_SPHINXBUILD_FALSE@html-local:
-@HAVE_DOCS_FALSE@info-local:
-@HAVE_MAKEINFO_FALSE@info-local:
-@HAVE_SPHINXBUILD_FALSE@info-local:
@HAVE_DOCS_FALSE@install-html-local:
-@HAVE_SPHINXBUILD_FALSE@install-html-local:
-@HAVE_DOCS_FALSE@install-info-local:
-@HAVE_MAKEINFO_FALSE@install-info-local:
-@HAVE_SPHINXBUILD_FALSE@install-info-local:
@HAVE_DOCS_FALSE@install-pdf-local:
@HAVE_PDFLATEX_FALSE@install-pdf-local:
-@HAVE_SPHINXBUILD_FALSE@install-pdf-local:
@HAVE_DOCS_FALSE@pdf-local:
@HAVE_PDFLATEX_FALSE@pdf-local:
-@HAVE_SPHINXBUILD_FALSE@pdf-local:
clean: clean-am
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
@@ -751,7 +692,7 @@ html-am: html-local
info: info-am
-info-am: info-local
+info-am:
install-data-am: install-man
@@ -767,7 +708,7 @@ install-html-am: install-html-local
install-info: install-info-am
-install-info-am: install-info-local
+install-info-am:
install-man: install-man1 install-man5 install-man8
@@ -806,11 +747,10 @@ uninstall-man: uninstall-man1 uninstall-man5 uninstall-man8
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
clean-local cscopelist-am ctags-am distclean distclean-generic \
distclean-libtool distdir dvi dvi-am html html-am html-local \
- info info-am info-local install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am \
- install-html-local install-info install-info-am \
- install-info-local install-man install-man1 install-man5 \
+ info info-am install install-am install-data install-data-am \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-html-local install-info \
+ install-info-am install-man install-man1 install-man5 \
install-man8 install-pdf install-pdf-am install-pdf-local \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
@@ -822,97 +762,64 @@ uninstall-man: uninstall-man1 uninstall-man5 uninstall-man8
.PRECIOUS: Makefile
-.PHONY: html-local singlehtml pdf-local info-local epub man install-html-local install-singlehtml install-pdf-local install-info-local install-epub
-
-man/knot.conf.5: man/knot.conf.5in
-man/knotc.8: man/knotc.8in
-man/knotd.8: man/knotd.8in
-man/kcatalogprint.8: man/kcatalogprint.8in
-man/keymgr.8: man/keymgr.8in
-man/kjournalprint.8: man/kjournalprint.8in
-man/kdig.1: man/kdig.1in
-man/khost.1: man/khost.1in
-man/knsupdate.1: man/knsupdate.1in
-man/knsec3hash.1: man/knsec3hash.1in
-man/kzonecheck.1: man/kzonecheck.1in
-man/kzonesign.1: man/kzonesign.1in
-man/kxdpgun.8: man/kxdpgun.8in
-
-.1in.1:
- $(man_SUBST)
-
-.5in.5:
- $(man_SUBST)
-
-.8in.8:
- $(man_SUBST)
-
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@html-local:
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(AM_V_SPHINX)$(SPHINXBUILD) -b html -d $(SPHINXBUILDDIR)/doctrees $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/html
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ @echo "The HTML documentation has been built in $(SPHINXBUILDDIR)/html/"
-
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@install-html-local:
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(INSTALL) -d $(DESTDIR)/$(docdir) $(DESTDIR)/$(docdir)/_static $(DESTDIR)/$(docdir)/_sources
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(INSTALL) -D $(SPHINXBUILDDIR)/html/*.html $(DESTDIR)/$(docdir)/
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(INSTALL_DATA) $(SPHINXBUILDDIR)/html/_sources/* $(DESTDIR)/$(docdir)/_sources/
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(INSTALL_DATA) $(SPHINXBUILDDIR)/html/_static/* $(DESTDIR)/$(docdir)/_static/
-
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@singlehtml:
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(AM_V_SPHINX)$(SPHINXBUILD) -b singlehtml -d $(SPHINXBUILDDIR)/doctrees $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/singlehtml
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ @echo "The single HTML documentation has been built in $(SPHINXBUILDDIR)/singlehtml/"
-
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@install-singlehtml: singlehtml
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(INSTALL) -d $(DESTDIR)/$(docdir) $(DESTDIR)/$(docdir)/_static
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(INSTALL_DATA) $(SPHINXBUILDDIR)/singlehtml/*.html $(DESTDIR)/$(docdir)/
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(INSTALL_DATA) $(SPHINXBUILDDIR)/singlehtml/_static/* $(DESTDIR)/$(docdir)/_static/
-
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@epub:
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(AM_V_SPHINX)$(SPHINXBUILD) -b epub -A today=$(RELEASE_DATE) -d $(SPHINXBUILDDIR)/doctrees $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/epub
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ @echo "The EPUB documentation has been built in $(SPHINXBUILDDIR)/epub/"
-
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@install-epub:
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(INSTALL) -d $(DESTDIR)/$(docdir)
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(INSTALL_DATA) $(SPHINXBUILDDIR)/epub/KnotDNS.epub $(DESTDIR)/$(docdir)/
-
-@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@@HAVE_SPHINXBUILD_TRUE@pdf-local:
-@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(AM_V_SPHINX)$(SPHINXBUILD) -b latex -d $(SPHINXBUILDDIR)/doctrees $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/latex
-@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(MAKE) -C $(SPHINXBUILDDIR)/latex all-pdf
-@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@@HAVE_SPHINXBUILD_TRUE@ @echo "The PDF documentation has been built in $(SPHINXBUILDDIR)/latex/"
-
-@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@@HAVE_SPHINXBUILD_TRUE@install-pdf-local:
-@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(INSTALL) -d $(DESTDIR)/$(docdir)
-@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(INSTALL_DATA) $(SPHINXBUILDDIR)/latex/KnotDNS.pdf $(DESTDIR)/$(docdir)/
-
-@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_FALSE@@HAVE_SPHINXBUILD_TRUE@pdf-local install-pdf-local:
-@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_FALSE@@HAVE_SPHINXBUILD_TRUE@ @echo "Install 'pdflatex' and re-run configure to be able to generate PDF documentation!"
-
-@HAVE_DOCS_TRUE@@HAVE_MAKEINFO_TRUE@@HAVE_SPHINXBUILD_TRUE@info-local:
-@HAVE_DOCS_TRUE@@HAVE_MAKEINFO_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(AM_V_SPHINX)$(SPHINXBUILD) -b texinfo -d $(SPHINXBUILDDIR)/doctrees $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/texinfo
-@HAVE_DOCS_TRUE@@HAVE_MAKEINFO_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(MAKE) -C $(SPHINXBUILDDIR)/texinfo info
-@HAVE_DOCS_TRUE@@HAVE_MAKEINFO_TRUE@@HAVE_SPHINXBUILD_TRUE@ @echo "The Info pages have been built in $(SPHINXBUILDDIR)/texinfo/"
-
-@HAVE_DOCS_TRUE@@HAVE_MAKEINFO_TRUE@@HAVE_SPHINXBUILD_TRUE@install-info-local:
-@HAVE_DOCS_TRUE@@HAVE_MAKEINFO_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(INSTALL) -d $(DESTDIR)/$(infodir)
-@HAVE_DOCS_TRUE@@HAVE_MAKEINFO_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(INSTALL_DATA) $(SPHINXBUILDDIR)/texinfo/knot.info $(DESTDIR)/$(infodir)/
-
-@HAVE_DOCS_TRUE@@HAVE_MAKEINFO_FALSE@@HAVE_SPHINXBUILD_TRUE@info-local install-info-local:
-@HAVE_DOCS_TRUE@@HAVE_MAKEINFO_FALSE@@HAVE_SPHINXBUILD_TRUE@ @echo "Install 'texinfo' and re-run configure to be able to generate Info pages!"
-
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@.NOTPARALLEL: man
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@man: $(man_MANS)
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@$(MANPAGES_IN): $(MANPAGES_RST)
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ $(AM_V_SPHINX)$(SPHINXBUILD) -b man -d $(SPHINXBUILDDIR)/doctrees $(man_SPHINXOPTS) $(SPHINXBUILDDIR)/man
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ @mkdir -p $(srcdir)/man
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ @for f in $(SPHINXBUILDDIR)/man/*; do \
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ sed -e '/^\.TP$$/ {' -e 'n' -e 's/^\.B //' -e '}' "$$f" > "$(srcdir)/man/$$(basename $$f)in"; \
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_TRUE@ done
-
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_FALSE@html-local singlehtml pdf-local info-local epub man install-html-local install-singlehtml install-pdf-local install-info-local install-epub:
-@HAVE_DOCS_TRUE@@HAVE_SPHINXBUILD_FALSE@ @echo "Install 'sphinx-build' and re-run configure to be able to generate documentation!"
+.PHONY: html-local singlehtml pdf-local epub man install-html-local install-singlehtml install-pdf-local install-epub
+
+@HAVE_DOCS_TRUE@html-local:
+@HAVE_DOCS_TRUE@ $(AM_V_SPHINX)$(SPHINXBUILD) -b html -d $(SPHINXBUILDDIR)/doctrees/html $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/html
+@HAVE_DOCS_TRUE@ @echo "The HTML documentation has been built in $(SPHINXBUILDDIR)/html/"
+
+@HAVE_DOCS_TRUE@install-html-local:
+@HAVE_DOCS_TRUE@ $(INSTALL) -d $(DESTDIR)/$(docdir) $(DESTDIR)/$(docdir)/_static $(DESTDIR)/$(docdir)/_sources
+@HAVE_DOCS_TRUE@ $(INSTALL) -D $(SPHINXBUILDDIR)/html/*.html $(DESTDIR)/$(docdir)/
+@HAVE_DOCS_TRUE@ $(INSTALL_DATA) $(SPHINXBUILDDIR)/html/_sources/* $(DESTDIR)/$(docdir)/_sources/
+@HAVE_DOCS_TRUE@ $(INSTALL_DATA) $(SPHINXBUILDDIR)/html/_static/* $(DESTDIR)/$(docdir)/_static/
+
+@HAVE_DOCS_TRUE@singlehtml:
+@HAVE_DOCS_TRUE@ $(AM_V_SPHINX)$(SPHINXBUILD) -b singlehtml -d $(SPHINXBUILDDIR)/doctrees/singlehtml $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/singlehtml
+@HAVE_DOCS_TRUE@ @echo "The single HTML documentation has been built in $(SPHINXBUILDDIR)/singlehtml/"
+
+@HAVE_DOCS_TRUE@install-singlehtml: singlehtml
+@HAVE_DOCS_TRUE@ $(INSTALL) -d $(DESTDIR)/$(docdir) $(DESTDIR)/$(docdir)/_static
+@HAVE_DOCS_TRUE@ $(INSTALL_DATA) $(SPHINXBUILDDIR)/singlehtml/*.html $(DESTDIR)/$(docdir)/
+@HAVE_DOCS_TRUE@ $(INSTALL_DATA) $(SPHINXBUILDDIR)/singlehtml/_static/* $(DESTDIR)/$(docdir)/_static/
+
+@HAVE_DOCS_TRUE@epub:
+@HAVE_DOCS_TRUE@ $(AM_V_SPHINX)$(SPHINXBUILD) -b epub -A today=$(RELEASE_DATE) -d $(SPHINXBUILDDIR)/doctrees/epub $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/epub
+@HAVE_DOCS_TRUE@ @echo "The EPUB documentation has been built in $(SPHINXBUILDDIR)/epub/"
+
+@HAVE_DOCS_TRUE@install-epub:
+@HAVE_DOCS_TRUE@ $(INSTALL) -d $(DESTDIR)/$(docdir)
+@HAVE_DOCS_TRUE@ $(INSTALL_DATA) $(SPHINXBUILDDIR)/epub/KnotDNS.epub $(DESTDIR)/$(docdir)/
+
+@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@pdf-local:
+@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@ $(AM_V_SPHINX)$(SPHINXBUILD) -b latex -d $(SPHINXBUILDDIR)/doctrees/latex $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/latex
+@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@ $(MAKE) -C $(SPHINXBUILDDIR)/latex all-pdf
+@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@ @echo "The PDF documentation has been built in $(SPHINXBUILDDIR)/latex/"
+
+@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@install-pdf-local:
+@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@ $(INSTALL) -d $(DESTDIR)/$(docdir)
+@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_TRUE@ $(INSTALL_DATA) $(SPHINXBUILDDIR)/latex/KnotDNS.pdf $(DESTDIR)/$(docdir)/
+
+@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_FALSE@pdf-local install-pdf-local:
+@HAVE_DOCS_TRUE@@HAVE_PDFLATEX_FALSE@ @echo "Install 'pdflatex' and re-run configure to be able to generate PDF documentation!"
+
+@HAVE_DOCS_TRUE@man: $(man_MANS)
+@HAVE_DOCS_TRUE@$(man_MANS)&: $(MANPAGES_RST)
+@HAVE_DOCS_TRUE@ $(AM_V_SPHINX)$(SPHINXBUILD) -b man -d $(SPHINXBUILDDIR)/doctrees/man $(man_SPHINXOPTS) $(SPHINXBUILDDIR)/man
+@HAVE_DOCS_TRUE@ @mkdir -p man
+@HAVE_DOCS_TRUE@ @for f in $(SPHINXBUILDDIR)/man/*; do \
+@HAVE_DOCS_TRUE@ sed -e 's,[@]config_dir@,$(config_dir),' \
+@HAVE_DOCS_TRUE@ -e 's,[@]storage_dir@,$(storage_dir),' \
+@HAVE_DOCS_TRUE@ -e 's,[@]run_dir@,$(run_dir),' \
+@HAVE_DOCS_TRUE@ -e 's,[@]conf_mapsize@,$(conf_mapsize),' "$$f" > "man/$$(basename $$f)"; \
+@HAVE_DOCS_TRUE@ done
+
+@HAVE_DOCS_FALSE@html-local singlehtml pdf-local epub man install-html-local install-singlehtml install-pdf-local install-epub:
+@HAVE_DOCS_FALSE@ @echo "Install 'sphinx-build' and re-run configure to be able to generate documentation!"
clean-local:
-rm -rf $(SPHINXBUILDDIR)
- -rm -f man/*.1 man/*.5 man/*.8
+ -rm -rf man
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/doc/appendices.rst b/doc/appendices.rst
index 309bb20..1012623 100644
--- a/doc/appendices.rst
+++ b/doc/appendices.rst
@@ -103,24 +103,3 @@ support.
A command similar to the following may be used to verify what algorithms are supported:
``$ pkcs11-tool --modul /usr/lib64/pkcs11/libsofthsm2.so -M``.
.. [#fn-utimaco] Requires setting the number of background workers to 1!
-
-The following table summarizes supported DNSSEC algorithm numbers and minimal
-GnuTLS library version required. Any algorithm may work with older library,
-however the supported operations may be limited (e.g. private key import).
-
-.. list-table::
- :header-rows: 1
- :stub-columns: 1
-
- * -
- - `Numbers <https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml#dns-sec-alg-numbers-1>`_
- - GnuTLS version
- * - ED25519
- - 15
- - 3.6.0 or newer
- * - ECDSA
- - 13, 14
- - 3.4.8 or newer
- * - RSA
- - 5, 7, 8, 10
- - 3.4.6 or newer
diff --git a/doc/conf.py b/doc/conf.py
index ec821d6..4b1c8e9 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -248,10 +248,7 @@ man_pages = [
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
-texinfo_documents = [
- ('index', 'knot', 'Knot DNS Documentation', author,
- 'KnotDNS', 'Knot Authoritative DNS Server', 'Miscellaneous')
-]
+#texinfo_documents = []
# Documents to append as an appendix to all manuals.
#texinfo_appendices = []
diff --git a/doc/configuration.rst b/doc/configuration.rst
index a29521b..982031b 100644
--- a/doc/configuration.rst
+++ b/doc/configuration.rst
@@ -377,6 +377,19 @@ which must be used for the transaction security::
- domain: example.net.
acl: owner_rule3_net
+.. _Handling CNAME and DNAME-related updates:
+
+Handling CNAME and DNAME-related updates
+----------------------------------------
+
+In general, no RR must exist beside a CNAME or below a DNAME. Whenever
+such a CNAME or DNAME-related semantic rule is vialoated by an RR addition
+in DDNS (this means addition of a CNAME beside an existing record, addition of
+another record beside a CNAME, addition of a DNAME above an existing record,
+addition of another record below a DNAME), such an RR addition is silently ignored.
+However, other RRs from the same DDNS update are processed normally. This is slightly
+non-compliant with RFC 6672 (in particular, no RR occlusion takes place).
+
.. _dnssec:
Automatic DNSSEC signing
@@ -826,7 +839,7 @@ of the used certificate:
.. code-block:: console
... info: binding to QUIC interface ::1@853
- ... info: QUIC, certificate public key 0xtdayWpnJh4Py8goi8cei/gXGD4kJQ+HEqcxS++DBw=
+ ... info: QUIC/TLS, certificate public key 0xtdayWpnJh4Py8goi8cei/gXGD4kJQ+HEqcxS++DBw=
.. TIP::
@@ -861,10 +874,10 @@ Using :doc:`kdig<man_kdig>` we can verify that the server responds over QUIC:
;; version.server. CH TXT
;; ANSWER SECTION:
- version.server. 0 CH TXT "Knot DNS 3.3.0"
+ version.server. 0 CH TXT "Knot DNS 3.4.0"
;; Received 468 B
- ;; Time 2023-08-15 15:04:36 CEST
+ ;; Time 2024-06-21 08:30:12 CEST
;; From ::1@853(QUIC) in 1.1 ms
In this case, :rfc:`opportunistic authentication<9103#section-9.3.1>` was
@@ -1074,6 +1087,62 @@ This mode is recommended if possible.
Knot DNS uses certificate public key pinning. This approach has much lower
overhead and in most cases simplifies configuration and certificate management.
+.. _DNS_over_TLS:
+
+DNS over TLS
+============
+
+TLS is an encrypted internet transport protocol.
+Knot DNS supports DNS over TLS (DoT) (:rfc:`7858`), including zone transfers (XoT).
+By default, the TCP port `853` is used for DNS over TLS.
+
+There are the same requirements for TLS key and certificate as for :ref:`DNS_over_QUIC`.
+
+In order to listen for incoming requests over TLS, :ref:`interface<server_listen-tls>`
+must be configured.
+
+An example of configuration of listening for DNS over TLS on the loopback interface:
+
+.. code-block:: console
+
+ server:
+ listen-tls: ::1
+
+When the server is started, it logs some interface details and public key pin
+of the used certificate:
+
+.. code-block:: console
+
+ ... info: binding to TLS interface ::1@853
+ ... info: QUIC/TLS, certificate public key 0xtdayWpnJh4Py8goi8cei/gXGD4kJQ+HEqcxS++DBw=
+
+Using :doc:`kdig<man_kdig>` we can verify that the server responds over TLS:
+
+.. code-block:: console
+
+ $ kdig @::1 ch txt version.server +tls
+ ;; TLS session (TLS1.3)-(ECDHE-X25519)-(EdDSA-Ed25519)-(AES-256-GCM)
+ ;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 0
+ ;; Flags: qr rd; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 1
+
+ ;; EDNS PSEUDOSECTION:
+ ;; Version: 0; flags: ; UDP size: 1232 B; ext-rcode: NOERROR
+ ;; PADDING: 370 B
+
+ ;; QUESTION SECTION:
+ ;; version.server. CH TXT
+
+ ;; ANSWER SECTION:
+ version.server. 0 CH TXT "Knot DNS 3.4.0"
+
+ ;; Received 468 B
+ ;; Time 2024-06-21 08:31:13 CEST
+ ;; From ::1@853(TLS) in 9.1 ms
+
+Zone transfer configuration and authentication profiles are almost identical
+to :ref:`DNS_over_QUIC`, with the only difference being the enabling of
+:ref:`remote_tls` for the corresponding remotes.
+
.. _query-modules:
Query modules
diff --git a/doc/installation.rst b/doc/installation.rst
index f89f439..8eebaa3 100644
--- a/doc/installation.rst
+++ b/doc/installation.rst
@@ -34,10 +34,7 @@ The build process relies on these standard tools:
* autoconf >= 2.65
* python-sphinx (optional, for documentation building)
-GCC >= 4.1 is mandatory for atomic built-ins, but the latest
-available version is recommended. Another requirement is ``_GNU_SOURCE``
-and C99 support, otherwise it adapts to the available compiler features.
-LLVM clang compiler since version 2.9 can be used as well.
+A GCC or LLVM Clang compiler with C11 support.
Getting the source code
-----------------------
diff --git a/doc/introduction.rst b/doc/introduction.rst
index 0174f05..f472b85 100644
--- a/doc/introduction.rst
+++ b/doc/introduction.rst
@@ -29,7 +29,7 @@ DNS features:
* Primary and secondary server operation
* Internet (IN) and Chaos (CH) classes
* DNS extension (EDNS0, EDE, EXPIRE)
-* UDP, TCP, and QUIC protocols
+* UDP, TCP, TLS 1.3, and QUIC protocols
* Zone catalog generation and interpretation
* Minimal responses
* Dynamic zone updates
@@ -42,7 +42,7 @@ DNS features:
TXT, RP, AFSDB, RT, KEY, AAAA, LOC, SRV, NAPTR, KX, CERT, DNAME, APL, DS,
SSHFP, IPSECKEY, RRSIG, NSEC, DNSKEY, DHCID, NSEC3, NSEC3PARAM, TLSA, SMIMEA,
CDS, CDNSKEY, OPENPGPKEY, CSYNC, ZONEMD, SVCB, HTTPS, SPF, NID, L32, L64, LP,
- EUI48, EUI64, URI, CAA, and Unknown
+ EUI48, EUI64, URI, CAA, WALLET, and Unknown
Server features:
@@ -73,7 +73,7 @@ Remarkable module extensions:
Remarkable supported networking features:
* TCP Fast Open (client and server)
-* Opportunistic, strict, and mutual authentication profiles over QUIC
+* Opportunistic, strict, and mutual authentication profiles over TLS 1.3 or QUIC
* High-performance UDP, TCP, and QUIC through AF_XDP processing (on Linux 4.18+)
* SO_REUSEPORT (on Linux) or SO_REUSEPORT_LB (on FreeBSD 12.0+) on UDP and by choice on TCP
* Binding to non-local addresses (IP_FREEBIND on Linux, IP_BINDANY/IPV6_BINDANY on FreeBSD)
diff --git a/doc/man/kcatalogprint.8in b/doc/man/kcatalogprint.8
index da964d8..f9d9fc9 100644
--- a/doc/man/kcatalogprint.8in
+++ b/doc/man/kcatalogprint.8
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "KCATALOGPRINT" "8" "@RELEASE_DATE@" "@VERSION@" "Knot DNS"
+.TH "KCATALOGPRINT" "8" "2024-09-02" "3.4.0" "Knot DNS"
.SH NAME
kcatalogprint \- Knot DNS catalog print utility
.SH SYNOPSIS
@@ -40,10 +40,10 @@ The program prints zone catalog stored in a catalog database.
.INDENT 0.0
.TP
\fB\-c\fP, \fB\-\-config\fP \fIfile\fP
-Use a textual configuration file (default is \fB@config_dir@/knot.conf\fP).
+Use a textual configuration file (default is \fB/usr/local/etc/knot/knot.conf\fP).
.TP
\fB\-C\fP, \fB\-\-confdb\fP \fIdirectory\fP
-Use a binary configuration database directory (default is \fB@storage_dir@/confdb\fP).
+Use a binary configuration database directory (default is \fB/usr/local/var/lib/knot/confdb\fP).
The default configuration database, if exists, has a preference to the default
configuration file.
.TP
@@ -63,7 +63,8 @@ Filter the output by member zone name.
Print the program help.
.TP
\fB\-V\fP, \fB\-\-version\fP
-Print the program version.
+Print the program version. The option \fB\-VV\fP makes the program
+print the compile time configuration summary.
.UNINDENT
.SH EXIT VALUES
.sp
diff --git a/doc/man/kdig.1in b/doc/man/kdig.1
index 99745c9..207c8c8 100644
--- a/doc/man/kdig.1in
+++ b/doc/man/kdig.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "KDIG" "1" "@RELEASE_DATE@" "@VERSION@" "Knot DNS"
+.TH "KDIG" "1" "2024-09-02" "3.4.0" "Knot DNS"
.SH NAME
kdig \- Advanced DNS lookup utility
.SH SYNOPSIS
@@ -43,16 +43,16 @@ which must precede \fIquery\fP specification.
.SS Parameters
.INDENT 0.0
.TP
-\fIquery\fP
+.B \fIquery\fP
\fIname\fP | \fB\-q\fP \fIname\fP | \fB\-x\fP \fIaddress\fP | \fB\-G\fP \fItapfile\fP
.TP
-\fIcommon\-settings\fP, \fIsettings\fP
+.B \fIcommon\-settings\fP, \fIsettings\fP
[\fIquery_class\fP] [\fIquery_type\fP] [\fB@\fP\fIserver\fP]... [\fIoptions\fP]
.TP
-\fIname\fP
+.B \fIname\fP
Is a domain name that is to be looked up.
.TP
-\fIserver\fP
+.B \fIserver\fP
Is a domain name or an IPv4 or IPv6 address of the nameserver to send a query
to. An additional port can be specified using address:port ([address]:port
for IPv6 address), address@port, or address#port notation. A value which begins
@@ -132,7 +132,8 @@ is provided, empty question section is set.
An explicit \fIquery_type\fP specification. See possible values above.
.TP
\fB\-V\fP, \fB\-\-version\fP
-Print the program version.
+Print the program version. The option \fB\-VV\fP makes the program
+print the compile time configuration summary.
.TP
\fB\-x\fP \fIaddress\fP
Send a reverse (PTR) query for IPv4 or IPv6 \fIaddress\fP\&. The correct name, class
@@ -302,7 +303,7 @@ Use QUIC (DNS\-over\-QUIC).
Request the nameserver identifier (NSID).
.TP
\fB+\fP[\fBno\fP]\fBbufsize\fP=\fIB\fP
-Set EDNS buffer size in bytes (default is 4096 bytes).
+Set EDNS buffer size in bytes (default is 1232 bytes).
.TP
\fB+\fP[\fBno\fP]\fBpadding\fP[=\fIB\fP]
Use EDNS(0) padding option to pad queries, optionally to a specific
@@ -319,7 +320,7 @@ Align the query to B\-byte\-block message using the EDNS(0) padding option
Set EDNS(0) client subnet SUBN=addr/prefix.
.TP
\fB+\fP[\fBno\fP]\fBedns\fP[=\fIN\fP]
-Use EDNS version (default is 0).
+Use EDNS version (default is 0). EDNS(0) is enabled by default.
.TP
\fB+\fP[\fBno\fP]\fBtimeout\fP=\fIT\fP
Set the wait\-for\-reply interval in seconds (default is 5 seconds). This timeout
@@ -354,7 +355,7 @@ Use JSON for output encoding (RFC 8427).
.TP
\fB+noidn\fP
Disable the IDN transformation to ASCII and vice versa. IDN support depends
-on libidn availability during project building! If used in \fIcommon\-settings\fP,
+on libidn2 availability during project building! If used in \fIcommon\-settings\fP,
all IDN transformations are disabled. If used in the individual query \fIsettings\fP,
transformation from ASCII is disabled on output for the particular query. Note
that IDN transformation does not preserve domain name letter case.
diff --git a/doc/man/keymgr.8in b/doc/man/keymgr.8
index 39c46a9..a963df3 100644
--- a/doc/man/keymgr.8in
+++ b/doc/man/keymgr.8
@@ -27,13 +27,15 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "KEYMGR" "8" "@RELEASE_DATE@" "@VERSION@" "Knot DNS"
+.TH "KEYMGR" "8" "2024-09-02" "3.4.0" "Knot DNS"
.SH NAME
keymgr \- Knot DNS key management utility
.SH SYNOPSIS
.sp
\fBkeymgr\fP [\fIconfig_option\fP] [\fIoptions\fP] \fIzone_name\fP \fIcommand\fP
.sp
+\fBkeymgr\fP [\fIconfig_option\fP] [\fIoptions\fP] \fIkeystore_id\fP \fIcommand\fP
+.sp
\fBkeymgr\fP [\fIconfig_option\fP] [\-j] \fB\-l\fP
.sp
\fBkeymgr\fP \fB\-t\fP \fIparameter\fP\&...
@@ -49,17 +51,17 @@ The database is backed by LMDB.
.SS Parameters
.INDENT 0.0
.TP
-\fIzone_name\fP
+.B \fIzone_name\fP
Name of the zone the command is executed for.
.UNINDENT
.SS Config options
.INDENT 0.0
.TP
\fB\-c\fP, \fB\-\-config\fP \fIfile\fP
-Use a textual configuration file (default is \fB@config_dir@/knot.conf\fP).
+Use a textual configuration file (default is \fB/usr/local/etc/knot/knot.conf\fP).
.TP
\fB\-C\fP, \fB\-\-confdb\fP \fIdirectory\fP
-Use a binary configuration database directory (default is \fB@storage_dir@/confdb\fP).
+Use a binary configuration database directory (default is \fB/usr/local/var/lib/knot/confdb\fP).
The default configuration database, if exists, has a preference to the default
configuration file.
.TP
@@ -96,7 +98,8 @@ Force colorized output in the normal mode.
Print the program help.
.TP
\fB\-V\fP, \fB\-\-version\fP
-Print the program version.
+Print the program version. The option \fB\-VV\fP makes the program
+print the compile time configuration summary.
.UNINDENT
.sp
\fBNOTE:\fP
@@ -170,6 +173,21 @@ Remove the specified key from zone. If the key was not shared, it is also delete
Import a key (specified by full key ID) from another zone as shared. After this, the key is
owned by both zones equally.
.UNINDENT
+.SS Keystore commands
+.INDENT 0.0
+.TP
+\fBkeystore\-test\fP
+Conduct some tests on the specified keystore. For each algorithm, key generation,
+import, removal, and use (signing and verification) are tested.
+Use a configured \fIkeystore_id\fP or \fB\-\fP for the default.
+.TP
+\fBkeystore\-bench\fP [\fInum_threads\fP]
+Conduct a signing benchmark on the specified keystore.
+Random blocks of data are signed by the selected number of threads
+(default is 1) in a loop, and the average number of signing operations per
+second for each algorithm is returned.
+Use a configured \fIkeystore_id\fP or \fB\-\fP for the default.
+.UNINDENT
.SS Commands related to Offline KSK feature
.INDENT 0.0
.TP
@@ -262,16 +280,16 @@ Key deleted.
.SS Timestamps
.INDENT 0.0
.TP
-0
+.B 0
Zero timestamp means infinite future.
.TP
-\fIUNIX_time\fP
+.B \fIUNIX_time\fP
Positive number of seconds since 1970 UTC.
.TP
-\fIYYYYMMDDHHMMSS\fP
+.B \fIYYYYMMDDHHMMSS\fP
Date and time in this format without any punctuation.
.TP
-\fIrelative_timestamp\fP
+.B \fIrelative_timestamp\fP
A sign character (\fB+\fP, \fB\-\fP), a number, and an optional time unit
(\fBy\fP, \fBmo\fP, \fBd\fP, \fBh\fP, \fBmi\fP, \fBs\fP). The default unit is one second.
E.g. +1mi, \-2mo.
@@ -279,7 +297,7 @@ E.g. +1mi, \-2mo.
.SS Output timestamp formats
.INDENT 0.0
.TP
-(none)
+.B (none)
The timestamps are printed as UNIX timestamp.
.TP
\fBhuman\fP
diff --git a/doc/man/khost.1in b/doc/man/khost.1
index 292f080..4cae5e9 100644
--- a/doc/man/khost.1in
+++ b/doc/man/khost.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "KHOST" "1" "@RELEASE_DATE@" "@VERSION@" "Knot DNS"
+.TH "KHOST" "1" "2024-09-02" "3.4.0" "Knot DNS"
.SH NAME
khost \- Simple DNS lookup utility
.SH SYNOPSIS
@@ -41,11 +41,11 @@ instead.
.SS Parameters
.INDENT 0.0
.TP
-\fIname\fP
+.B \fIname\fP
Is a domain name that is to be looked up. If the \fIname\fP is IPv4 or IPv6
address the PTR query type is used.
.TP
-\fIserver\fP
+.B \fIserver\fP
Is a name or an address of the nameserver to send a query to. The address
can be specified using [address]:port notation. If no server is specified,
the servers from \fB/etc/resolv.conf\fP are used.
@@ -80,7 +80,8 @@ Use the TCP protocol.
Enable verbose output.
.TP
\fB\-V\fP, \fB\-\-version\fP
-Print the program version.
+Print the program version. The option \fB\-VV\fP makes the program
+print the compile time configuration summary.
.TP
\fB\-w\fP
Wait forever for the reply.
diff --git a/doc/man/kjournalprint.8in b/doc/man/kjournalprint.8
index 2a1303a..4c17e36 100644
--- a/doc/man/kjournalprint.8in
+++ b/doc/man/kjournalprint.8
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "KJOURNALPRINT" "8" "@RELEASE_DATE@" "@VERSION@" "Knot DNS"
+.TH "KJOURNALPRINT" "8" "2024-09-02" "3.4.0" "Knot DNS"
.SH NAME
kjournalprint \- Knot DNS journal print utility
.SH SYNOPSIS
@@ -42,17 +42,17 @@ changes are colored for terminal.
.SS Parameters
.INDENT 0.0
.TP
-\fIzone_name\fP
+.B \fIzone_name\fP
A name of the zone to print the history for.
.UNINDENT
.SS Config options
.INDENT 0.0
.TP
\fB\-c\fP, \fB\-\-config\fP \fIfile\fP
-Use a textual configuration file (default is \fB@config_dir@/knot.conf\fP).
+Use a textual configuration file (default is \fB/usr/local/etc/knot/knot.conf\fP).
.TP
\fB\-C\fP, \fB\-\-confdb\fP \fIdirectory\fP
-Use a binary configuration database directory (default is \fB@storage_dir@/confdb\fP).
+Use a binary configuration database directory (default is \fB/usr/local/var/lib/knot/confdb\fP).
The default configuration database, if exists, has a preference to the default
configuration file.
.TP
@@ -80,9 +80,6 @@ Debug mode brief output.
\fB\-x\fP, \fB\-\-mono\fP
Don\(aqt generate colorized output.
.TP
-\fB\-n\fP, \fB\-\-no\-color\fP
-An alias for \fB\-x\fP\&. Use of this option is deprecated, it will be removed in the future.
-.TP
\fB\-X\fP, \fB\-\-color\fP
Force colorized output.
.TP
@@ -90,7 +87,8 @@ Force colorized output.
Print the program help.
.TP
\fB\-V\fP, \fB\-\-version\fP
-Print the program version.
+Print the program version. The option \fB\-VV\fP makes the program
+print the compile time configuration summary.
.UNINDENT
.SH EXIT VALUES
.sp
diff --git a/doc/man/knot.conf.5in b/doc/man/knot.conf.5
index a9b175e..dc6fe4a 100644
--- a/doc/man/knot.conf.5in
+++ b/doc/man/knot.conf.5
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "KNOT.CONF" "5" "@RELEASE_DATE@" "@VERSION@" "Knot DNS"
+.TH "KNOT.CONF" "5" "2024-09-02" "3.4.0" "Knot DNS"
.SH NAME
knot.conf \- Knot DNS configuration file
.SH DESCRIPTION
@@ -47,10 +47,11 @@ the following symbols:
.IP \(bu 2
\fBBOOL\fP – Boolean value (\fBon\fP/\fBoff\fP or \fBtrue\fP/\fBfalse\fP)
.IP \(bu 2
-\fBTIME\fP – Number of seconds, an integer with possible time multiplier suffix
-(\fBs\fP ~ 1, \fBm\fP ~ 60, \fBh\fP ~ 3600 or \fBd\fP ~ 24 * 3600)
+\fBTIME\fP – Number of seconds, an integer with a possible time multiplier suffix
+(\fBs\fP ~ 1, \fBm\fP ~ 60, \fBh\fP ~ 3600, \fBd\fP ~ 24 * 3600, \fBw\fP ~ 7 * 24 * 3600,
+\fBM\fP ~ 30 * 24 * 3600, \fBy\fP ~ 365 * 24 * 3600)
.IP \(bu 2
-\fBSIZE\fP – Number of bytes, an integer with possible size multiplier suffix
+\fBSIZE\fP – Number of bytes, an integer with a possible size multiplier suffix
(\fBB\fP ~ 1, \fBK\fP ~ 1024, \fBM\fP ~ 1024^2 or \fBG\fP ~ 1024^3)
.IP \(bu 2
\fBBASE64\fP – Base64 encoded string
@@ -268,6 +269,7 @@ server:
dbus\-init\-delay: TIME
listen: ADDR[@INT] | STR ...
listen\-quic: ADDR[@INT] ...
+ listen\-tls: ADDR[@INT] ...
.ft P
.fi
.UNINDENT
@@ -531,19 +533,15 @@ Maximum EDNS0 UDP payload size for IPv6.
\fIDefault:\fP \fB1232\fP
.SS key\-file
.sp
-Path to a server key PEM file which is used for DNS over QUIC communication.
+Path to a server key PEM file which is used for DNS over QUIC/TLS communication.
A non\-absolute path of a user specified key file is relative to the
-\fB@config_dir@\fP directory.
-.sp
-Change of this parameter requires restart of the Knot server to take effect.
+\fB/usr/local/etc/knot\fP directory.
.sp
\fIDefault:\fP auto\-generated key
.SS cert\-file
.sp
-Path to a server certificate PEM file which is used for DNS over QUIC communication.
-A non\-absolute path is relative to the \fB@config_dir@\fP directory.
-.sp
-Change of this parameter requires restart of the Knot server to take effect.
+Path to a server certificate PEM file which is used for DNS over QUIC/TLS communication.
+A non\-absolute path is relative to the \fB/usr/local/etc/knot\fP directory.
.sp
\fIDefault:\fP one\-time in\-memory certificate
.SS edns\-client\-subnet
@@ -604,20 +602,21 @@ catalog zones and their members) are loaded or successfully bootstrapped.
the signal parameters are \fIzone name\fP and \fIzone SOA serial\fP\&.
.IP \(bu 2
\fBkeys\-updated\fP \- The signal \fBkeys_updated\fP is emitted when a DNSSEC key set
-of this zone is updated.
+is updated; the signal parameter is \fIzone name\fP\&.
.IP \(bu 2
\fBksk\-submission\fP – The signal \fBzone_ksk_submission\fP is emitted if there is
a ready KSK present when the zone is signed; the signal parameters are
\fIzone name\fP, \fIKSK keytag\fP, and \fIKSK KASP id\fP\&.
.IP \(bu 2
\fBdnssec\-invalid\fP – The signal \fBzone_dnssec_invalid\fP is emitted when DNSSEC
-validation fails; the signal parameter is \fIzone name\fP\&.
+validation fails; the signal parameters are \fIzone name\fP, and \fIremaining seconds\fP
+until an RRSIG expires.
.UNINDENT
.sp
\fBNOTE:\fP
.INDENT 0.0
.INDENT 3.5
-This function requires systemd version at least 221.
+This function requires systemd version at least 221 or libdbus.
.UNINDENT
.UNINDENT
.sp
@@ -655,14 +654,14 @@ for incoming queries over QUIC protocol.
Change of this parameter requires restart of the Knot server to take effect.
.sp
\fIDefault:\fP not set
+.SS listen\-tls
.sp
-\fBNOTE:\fP
-.INDENT 0.0
-.INDENT 3.5
-Incoming \fI\%DDNS\fP over QUIC isn\(aqt supported.
-The server always responds with SERVFAIL.
-.UNINDENT
-.UNINDENT
+One or more IP addresses (and optionally ports) where the server listens
+for incoming queries over TLS protocol (DoT).
+.sp
+Change of this parameter requires restart of the Knot server to take effect.
+.sp
+\fIDefault:\fP not set
.SH XDP SECTION
.sp
Various options related to XDP listening, especially TCP.
@@ -684,6 +683,9 @@ xdp:
tcp\-idle\-reset\-timeout: TIME
tcp\-resend\-timeout: TIME
route\-check: BOOL
+ ring\-size: INT
+ busypoll\-budget: INT
+ busypoll\-timeout: INT
.ft P
.fi
.UNINDENT
@@ -849,6 +851,63 @@ Only VLAN 802.1Q is supported.
.UNINDENT
.sp
\fIDefault:\fP \fBoff\fP
+.SS ring\-size
+.sp
+Size of RX, FQ, TX, and CQ rings.
+.sp
+Change of this parameter requires restart of the Knot server to take effect.
+.sp
+\fBNOTE:\fP
+.INDENT 0.0
+.INDENT 3.5
+This value should be at least as high as the configured RX size of the
+network device in the XDP mode.
+.UNINDENT
+.UNINDENT
+.sp
+\fIDefault:\fP \fB2048\fP
+.SS busypoll\-budget
+.sp
+If set to a positive value, preferred busy polling is enabled with the
+specified budget.
+.sp
+Change of this parameter requires restart of the Knot server to take effect.
+.sp
+\fBNOTE:\fP
+.INDENT 0.0
+.INDENT 3.5
+Preferred busy polling also requires setting \fBnapi_defer_hard_irqs\fP and
+\fBgro_flush_timeout\fP for the appropriate network interface. E.g.:
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+echo 2 | sudo tee /sys/class/net/<interface>/napi_defer_hard_irqs
+echo 200000 | sudo tee /sys/class/net/<interface>/gro_flush_timeout
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.UNINDENT
+.UNINDENT
+.sp
+\fBNOTE:\fP
+.INDENT 0.0
+.INDENT 3.5
+A recommended value is between 8 and 64.
+.UNINDENT
+.UNINDENT
+.sp
+\fIDefault:\fP \fB0\fP (disabled)
+.SS busypoll\-timeout
+.sp
+Timeout in microseconds of preferrred busy polling if enabled by
+\fI\%busypoll\-budget\fP\&.
+.sp
+Change of this parameter requires restart of the Knot server to take effect.
+.sp
+\fIDefault:\fP \fB20\fP (20 microseconds)
.SH CONTROL SECTION
.sp
Configuration of the server control interface.
@@ -1266,6 +1325,7 @@ remote:
address: ADDR[@INT] | STR ...
via: ADDR[@INT] ...
quic: BOOL
+ tls: BOOL
key: key_id
cert\-key: BASE64 ...
block\-notify\-after\-transfer: BOOL
@@ -1356,6 +1416,12 @@ queried remotes.
.UNINDENT
.sp
\fIDefault:\fP \fBoff\fP
+.SS tls
+.sp
+If this option is set, the TLS (DoT) protocol will be used for outgoing communication
+with this remote.
+.sp
+\fIDefault:\fP \fBoff\fP
.SS key
.sp
A \fI\%reference\fP to the TSIG key which is used to authenticate
@@ -1787,8 +1853,6 @@ Possible values:
\fBNOTE:\fP
.INDENT 0.0
.INDENT 3.5
-Ed25519 algorithm is only available if compiled with GnuTLS 3.6.0+.
-.sp
Ed448 algorithm is only available if compiled with GnuTLS 3.6.12+ and Nettle 3.6+.
.UNINDENT
.UNINDENT
@@ -1955,6 +2019,10 @@ will be refreshed, in order to prevent expired RRSIGs on secondary servers or
resolvers\(aq caches.
.sp
\fIDefault:\fP 0.1 * \fI\%rrsig\-lifetime\fP + \fI\%propagation\-delay\fP + \fI\%zone\-max\-ttl\fP
+.sp
+If \fI\%dnssec\-validation\fP is enabled:
+.sp
+\fIDefault:\fP \fB1d\fP (1 day)
.SS rrsig\-pre\-refresh
.sp
A period (in seconds) how long at most before a signature refresh time the signature
@@ -2253,6 +2321,7 @@ zone:
master\-pin\-tolerance: TIME
provide\-ixfr: BOOL
semantic\-checks: BOOL | soft
+ default\-ttl: TIME
zonefile\-sync: TIME
zonefile\-load: none | difference | difference\-no\-serial | whole
journal\-content: none | changes | all
@@ -2442,6 +2511,23 @@ query (malformed message) and triggers a zone bootstrap instead.
.UNINDENT
.sp
\fIDefault:\fP \fBoff\fP
+.SS default\-ttl
+.sp
+The default TTL value if none is specified in a zone file or zone insertion
+using the dynamic configuration.
+.sp
+\fBWARNING:\fP
+.INDENT 0.0
+.INDENT 3.5
+As changing this value can result in differently parsed zone file(s),
+the corresponding zone SOA serial(s) should be incremented before
+reloading or commiting the configuration. Alternatively, setting
+\fI\%zonefile\-load\fP to \fBdifference\-no\-serial\fP ensures
+the resulting zone(s) update is correct.
+.UNINDENT
+.UNINDENT
+.sp
+\fIDefault:\fP \fB3600\fP
.SS zonefile\-sync
.sp
The time in seconds after which the current zone in memory will be synced with
@@ -2620,7 +2706,9 @@ Every NSEC(3) RR is linked to the lexicographically next one.
.sp
The validation is not affected by \fI\%dnssec\-policy\fP configuration,
except for \fI\%signing\-threads\fP option, which specifies the number
-of threads for parallel validation.
+of threads for parallel validation, and \fI\%rrsig\-refresh\fP, which
+defines minimal allowed remaining RRSIG validity (otherwise a warning is
+logged).
.sp
\fBNOTE:\fP
.INDENT 0.0
diff --git a/doc/man/knotc.8in b/doc/man/knotc.8
index 01bfc95..5e41e97 100644
--- a/doc/man/knotc.8in
+++ b/doc/man/knotc.8
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "KNOTC" "8" "@RELEASE_DATE@" "@VERSION@" "Knot DNS"
+.TH "KNOTC" "8" "2024-09-02" "3.4.0" "Knot DNS"
.SH NAME
knotc \- Knot DNS control utility
.SH SYNOPSIS
@@ -43,10 +43,10 @@ is executed in the interactive mode.
.INDENT 0.0
.TP
\fB\-c\fP, \fB\-\-config\fP \fIfile\fP
-Use a textual configuration file (default is \fB@config_dir@/knot.conf\fP).
+Use a textual configuration file (default is \fB/usr/local/etc/knot/knot.conf\fP).
.TP
\fB\-C\fP, \fB\-\-confdb\fP \fIdirectory\fP
-Use a binary configuration database directory (default is \fB@storage_dir@/confdb\fP).
+Use a binary configuration database directory (default is \fB/usr/local/var/lib/knot/confdb\fP).
The default configuration database, if exists, has a preference to the default
configuration file.
.UNINDENT
@@ -55,10 +55,10 @@ configuration file.
.TP
\fB\-m\fP, \fB\-\-max\-conf\-size\fP \fIMiB\fP
Set maximum size of the configuration database
-(default is @conf_mapsize@ MiB, maximum 10000 MiB).
+(default is 500 MiB, maximum 10000 MiB).
.TP
\fB\-s\fP, \fB\-\-socket\fP \fIpath\fP
-Use a control UNIX socket path (default is \fB@run_dir@/knot.sock\fP).
+Use a control UNIX socket path (default is \fB/usr/local/var/run/knot/knot.sock\fP).
.TP
\fB\-t\fP, \fB\-\-timeout\fP \fIseconds\fP
Use a control timeout in seconds. Set to 0 for infinity (default is 60).
@@ -88,7 +88,8 @@ Enable debug output.
Print the program help.
.TP
\fB\-V\fP, \fB\-\-version\fP
-Print the program version.
+Print the program version. The option \fB\-VV\fP makes the program
+print the compile time configuration summary.
.UNINDENT
.SS Actions
.INDENT 0.0
@@ -173,8 +174,9 @@ disables all other filters by default, but they can still be turned on
explicitly. If zone flushing is disabled, the original zone file is backed
up instead of writing out zone contents to a file. When backing\-up a catalog
zone, it is recommended to prevent ongoing changes to it by use of
-\fBzone\-freeze\fP\&.
-See \fI\%Notes\fP below about the directory permissions. (#)
+\fBzone\-freeze\fP\&. The force option allows an already existing backupdir to
+be overwritten. See \fI\%Notes\fP below about the directory permissions.
+(#)
.TP
\fBzone\-restore\fP [\fIzone\fP\&...] \fB+backupdir\fP \fIdirectory\fP [\fIfilter\fP\&...]
Trigger a zone data and metadata restore from a specified backup directory.
@@ -187,6 +189,10 @@ permissions. (#)
Trigger a DNSSEC re\-sign of the zone. Existing signatures will be dropped.
This command is valid for zones with DNSSEC signing enabled. (#)
.TP
+\fBzone\-validate\fP [\fIzone\fP\&...]
+Trigger a DNSSEC validation of the zone. If the validation fails and the
+zone is secondary, the zone expires immediately! (#)
+.TP
\fBzone\-keys\-load\fP [\fIzone\fP\&...]
Trigger a load of DNSSEC keys and other signing material from KASP database
(which might have been altered manually). If suitable, re\-sign the zone
@@ -207,7 +213,8 @@ KSK in submission phase and the old KSK can be retired. (#)
\fBzone\-freeze\fP [\fIzone\fP\&...]
Trigger a zone freeze. All running events will be finished and all new and pending
(planned) zone\-changing events (load, refresh, update, flush, and DNSSEC signing)
-will be held up until the zone is thawed. (#)
+will be held up until the zone is thawed. Up to 8 (this limit is hardcoded) DDNS
+updates per zone will be queued, subsequent updates will be refused. (#)
.TP
\fBzone\-thaw\fP [\fIzone\fP\&...]
Trigger dismissal of zone freeze. (#)
diff --git a/doc/man/knotd.8in b/doc/man/knotd.8
index 1d02cc8..bbeb6a4 100644
--- a/doc/man/knotd.8in
+++ b/doc/man/knotd.8
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "KNOTD" "8" "@RELEASE_DATE@" "@VERSION@" "Knot DNS"
+.TH "KNOTD" "8" "2024-09-02" "3.4.0" "Knot DNS"
.SH NAME
knotd \- Knot DNS server daemon
.SH SYNOPSIS
@@ -41,10 +41,10 @@ the DNS server daemon.
.INDENT 0.0
.TP
\fB\-c\fP, \fB\-\-config\fP \fIfile\fP
-Use a textual configuration file (default is \fB@config_dir@/knot.conf\fP).
+Use a textual configuration file (default is \fB/usr/local/etc/knot/knot.conf\fP).
.TP
\fB\-C\fP, \fB\-\-confdb\fP \fIdirectory\fP
-Use a binary configuration database directory (default is \fB@storage_dir@/confdb\fP).
+Use a binary configuration database directory (default is \fB/usr/local/var/lib/knot/confdb\fP).
The default configuration database, if exists, has a preference to the default
configuration file.
.UNINDENT
@@ -53,10 +53,10 @@ configuration file.
.TP
\fB\-m\fP, \fB\-\-max\-conf\-size\fP \fIMiB\fP
Set maximum size of the configuration database
-(default is @conf_mapsize@ MiB, maximum 10000 MiB).
+(default is 500 MiB, maximum 10000 MiB).
.TP
\fB\-s\fP, \fB\-\-socket\fP \fIpath\fP
-Use a remote control UNIX socket path (default is \fB@run_dir@/knot.sock\fP).
+Use a remote control UNIX socket path (default is \fB/usr/local/var/run/knot/knot.sock\fP).
.TP
\fB\-d\fP, \fB\-\-daemonize\fP [\fIdirectory\fP]
Run the server as a daemon. New root directory may be specified
@@ -69,7 +69,8 @@ Enable debug output.
Print the program help.
.TP
\fB\-V\fP, \fB\-\-version\fP
-Print the program version.
+Print the program version. The option \fB\-VV\fP makes the program
+print the compile time configuration summary.
.UNINDENT
.SS Signals
.sp
diff --git a/doc/man/knsec3hash.1in b/doc/man/knsec3hash.1
index d9fa4a3..3bb9766 100644
--- a/doc/man/knsec3hash.1in
+++ b/doc/man/knsec3hash.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "KNSEC3HASH" "1" "@RELEASE_DATE@" "@VERSION@" "Knot DNS"
+.TH "KNSEC3HASH" "1" "2024-09-02" "3.4.0" "Knot DNS"
.SH NAME
knsec3hash \- Simple utility to compute NSEC3 hash
.SH SYNOPSIS
@@ -35,27 +35,39 @@ knsec3hash \- Simple utility to compute NSEC3 hash
\fBknsec3hash\fP \fIsalt\fP \fIalgorithm\fP \fIiterations\fP \fIname\fP
.sp
\fBknsec3hash\fP \fIalgorithm\fP \fIflags\fP \fIiterations\fP \fIsalt\fP \fIname\fP
+.sp
+\fBknsec3hash\fP [\fI\-h\fP] [\fI\-V\fP]
.SH DESCRIPTION
.sp
This utility generates a NSEC3 hash for a given domain name and parameters of NSEC3 hash.
.SS Parameters
.INDENT 0.0
.TP
-\fIsalt\fP
+.B \fIsalt\fP
Specifies a binary salt encoded as a hexadecimal string.
.TP
-\fIalgorithm\fP
+.B \fIalgorithm\fP
Specifies a hashing algorithm by number. Currently, the only supported algorithm is SHA\-1 (number 1).
.TP
-\fIiterations\fP
+.B \fIiterations\fP
Specifies the number of additional iterations of the hashing algorithm.
.TP
-\fIname\fP
+.B \fIname\fP
Specifies the domain name to be hashed.
.TP
-\fIflags\fP
+.B \fIflags\fP
Specifies NSEC3 flags as an unsigned integer.
.UNINDENT
+.SS Options
+.INDENT 0.0
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Print the program help.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Print the program version. The option \fB\-VV\fP makes the program
+print the compile time configuration summary.
+.UNINDENT
.SH EXIT VALUES
.sp
Exit status of 0 means successful operation. Any other exit status indicates
diff --git a/doc/man/knsupdate.1in b/doc/man/knsupdate.1
index ed34dd2..58220a0 100644
--- a/doc/man/knsupdate.1in
+++ b/doc/man/knsupdate.1
@@ -27,12 +27,14 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "KNSUPDATE" "1" "@RELEASE_DATE@" "@VERSION@" "Knot DNS"
+.TH "KNSUPDATE" "1" "2024-09-02" "3.4.0" "Knot DNS"
.SH NAME
knsupdate \- Dynamic DNS update utility
.SH SYNOPSIS
.sp
-\fBknsupdate\fP [\fIoptions\fP] [\fIfilename\fP]
+\fBknsupdate\fP [\fB\-v\fP] [\fIoptions\fP] [\fIfilename\fP]
+.sp
+\fBknsupdate\fP [\fB\-q\fP] [\fIquic_options\fP] [\fIoptions\fP] [\fIfilename\fP]
.SH DESCRIPTION
.sp
This utility sends Dynamic DNS update messages to a DNS server. Update content
@@ -45,44 +47,76 @@ comments and are not processed.
.SS Parameters
.INDENT 0.0
.TP
-\fIfilename\fP
+.B \fIfilename\fP
Path to the file with knsupdate commands.
.UNINDENT
.SS Options
.INDENT 0.0
.TP
-\fB\-d\fP
-Enable debug messages.
+\fB\-T\fP, \fB\-\-tcp\fP
+Use a TCP connection. (\fB\-v\fP can be used for compatibility with nsupdate).
.TP
-\fB\-h\fP, \fB\-\-help\fP
-Print the program help.
+\fB\-S\fP, \fB\-\-tls\fP
+Use a TLS connection.
.TP
-\fB\-k\fP \fIkeyfile\fP
-Use the TSIG key stored in a file \fIkeyfile\fP to authenticate the request. The
-file should contain the key in the same format, which is accepted by the
-\fB\-y\fP option.
+\fB\-Q\fP, \fB\-\-quic\fP
+Use a QUIC connection.
.TP
-\fB\-p\fP \fIport\fP
+\fB\-p\fP, \fB\-\-port\fP \fInumber\fP
Set the port to use for connections to the server (if not explicitly specified
-in the update). The default is 53.
+in the update). The default is 53 for UDP/TCP or 853 for QUIC.
.TP
-\fB\-r\fP \fIretries\fP
+\fB\-r\fP, \fB\-\-retry\fP \fIcount\fP
The number of retries for UDP requests. The default is 3.
.TP
-\fB\-t\fP \fItimeout\fP
+\fB\-t\fP, \fB\-\-timeout\fP \fIseconds\fP
The total timeout (for all UDP update tries) of the update request in seconds.
The default is 12. If set to zero, the timeout is infinite.
.TP
-\fB\-v\fP
-Use a TCP connection.
-.TP
-\fB\-V\fP, \fB\-\-version\fP
-Print the program version.
-.TP
-\fB\-y\fP [\fIalg\fP:]\fIname\fP:\fIkey\fP
+\fB\-y\fP, \fB\-\-tsig\fP [\fIalg\fP:]\fIname\fP:\fIkey\fP
Use the TSIG key with a name \fIname\fP to authenticate the request. The \fIalg\fP
part specifies the algorithm (the default is hmac\-sha256) and \fIkey\fP specifies
the shared secret encoded in Base64.
+.TP
+\fB\-k\fP, \fB\-\-tsigfile\fP \fIpath\fP
+Use the TSIG key stored in a file \fIkeyfile\fP to authenticate the request. The
+file should contain the key in the same format, which is accepted by the
+\fB\-y\fP option.
+.TP
+\fB\-d\fP, \fB\-\-debug\fP
+Enable debug messages.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Print the program help.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Print the program version. The option \fB\-VV\fP makes the program
+print the compile time configuration summary.
+.UNINDENT
+.SS QUIC/TLS options
+.INDENT 0.0
+.TP
+\fB\-H\fP, \fB\-\-hostname\fP \fIstring\fP
+Enable remote server hostname validation.
+.TP
+\fB\-P\fP, \fB\-\-pin\fP \fIbase64\fP
+Use Out\-of\-Band key\-pinned privacy profile
+(RFC 7858#section\-4.2). The PIN must be a Base64 encoded SHA\-256 hash of the
+X.509 SubjectPublicKeyInfo. Can be specified multiple times.
+.TP
+\fB\-A\fP, \fB\-\-ca\fP [\fIpath\fP]
+Enable certificate validation. Certification authority certificates
+are loaded from the specified PEM file (default is system certificate storage
+if no argument is provided). Can be specified multiple times.
+.TP
+\fB\-E\fP, \fB\-\-certfile\fP \fIpath\fP
+Path to a client certificate file.
+.TP
+\fB\-K\fP, \fB\-\-keyfile\fP \fIpath\fP
+Path to a client key file.
+.TP
+\fB\-s\fP, \fB\-\-sni\fP \fIstring\fP
+Use specified Server Name Indication.
.UNINDENT
.SS Commands
.INDENT 0.0
diff --git a/doc/man/kxdpgun.8in b/doc/man/kxdpgun.8
index f93872b..d7892eb 100644
--- a/doc/man/kxdpgun.8in
+++ b/doc/man/kxdpgun.8
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "KXDPGUN" "8" "@RELEASE_DATE@" "@VERSION@" "Knot DNS"
+.TH "KXDPGUN" "8" "2024-09-02" "3.4.0" "Knot DNS"
.SH NAME
kxdpgun \- XDP-powered DNS benchmarking tool
.SH SYNOPSIS
@@ -47,10 +47,10 @@ configured for the network interface.
.SS Parameters
.INDENT 0.0
.TP
-\fIfilename\fP
+.B \fIfilename\fP
Path to the queries file. See the description below regarding the file format.
.TP
-\fItarget\fP
+.B \fItarget\fP
Either the domain name, IPv4 or IPv6 address of a remote target.
.UNINDENT
.SS Options
@@ -90,6 +90,11 @@ CPU ID increment for next thread (default is 0s1).
\fB\-i\fP, \fB\-\-infile\fP \fIfilename\fP
Path to a file with query templates.
.TP
+\fB\-B\fP, \fB\-\-binary\fP
+Specify that input file is in binary format. This format is similar to the
+TCP DNS message format. The file contains records formated as 2\-octet length
+(network order) followed by a message in DNS wire format.
+.TP
\fB\-I\fP, \fB\-\-interface\fP \fIinterface\fP
Network interface for outgoing communication. This can be useful in situations
when the interfaces are in a bond for example.
@@ -136,11 +141,20 @@ has to exist.
This option is ignored if not in the QUIC mode. The recommended usage is
with \fB\-\-quic=R\fP or with low QPS. Otherwise, too many files are generated.
.TP
+\fB\-j\fP, \fB\-\-json\fP
+Print statistics formatted as json.
+.TP
+\fB\-S\fP, \fB\-\-stats\-period\fP \fIperiod\fP
+Report statistics automatically every \fIperiod\fP milliseconds.
+.sp
+These reports contain only metrics collected in the given period.
+.TP
\fB\-h\fP, \fB\-\-help\fP
Print the program help.
.TP
\fB\-V\fP, \fB\-\-version\fP
-Print the program version.
+Print the program version. The option \fB\-VV\fP makes the program
+print the compile time configuration summary.
.UNINDENT
.SS Queries file format
.sp
@@ -187,7 +201,8 @@ Instead of opening a connection for each query, reuse connections.
.SS Signals
.sp
Sending USR1 signal to a running process triggers current statistics dump
-to the standard output.
+to the standard output. In combination with \fB\-S\fP may cause erratic printout
+timing.
.SH NOTES
.sp
Linux kernel 4.18+ is required.
@@ -197,6 +212,12 @@ CAP_NET_RAW, CAP_NET_ADMIN, CAP_SYS_ADMIN, CAP_IPC_LOCK, and CAP_SYS_RESOURCE
(Linux < 5.11).
.sp
The utility allocates source UDP/TCP ports from the range 2000\-65535.
+.sp
+Due to the multi\-threaded program structure there are slight discrepancies in
+the timespan during which metrics are collected for any given thread. The
+statistics printouts ignore this and are thus ever\-so\-slightly inaccurate. The
+error margin decreases proportionally to the volume of data & timespan over
+which they are collected.
.SH EXIT VALUES
.sp
Exit status of 0 means successful operation. Any other exit status indicates
diff --git a/doc/man/kzonecheck.1in b/doc/man/kzonecheck.1
index a73b66e..22ebe47 100644
--- a/doc/man/kzonecheck.1in
+++ b/doc/man/kzonecheck.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "KZONECHECK" "1" "@RELEASE_DATE@" "@VERSION@" "Knot DNS"
+.TH "KZONECHECK" "1" "2024-09-02" "3.4.0" "Knot DNS"
.SH NAME
kzonecheck \- Knot DNS zone check tool
.SH SYNOPSIS
@@ -44,7 +44,7 @@ Please, refer to the \fBsemantic\-checks\fP configuration option in
.SS Parameters
.INDENT 0.0
.TP
-\fIfilename\fP
+.B \fIfilename\fP
Path to the zone file to be checked. For reading from \fBstdin\fP use \fB/dev/stdin\fP
or just \fB\-\fP\&.
.UNINDENT
@@ -77,7 +77,8 @@ Enable debug output.
Print the program help.
.TP
\fB\-V\fP, \fB\-\-version\fP
-Print the program version.
+Print the program version. The option \fB\-VV\fP makes the program
+print the compile time configuration summary.
.UNINDENT
.SH EXIT VALUES
.sp
diff --git a/doc/man/kzonesign.1in b/doc/man/kzonesign.1
index 147e112..558c95b 100644
--- a/doc/man/kzonesign.1in
+++ b/doc/man/kzonesign.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "KZONESIGN" "1" "@RELEASE_DATE@" "@VERSION@" "Knot DNS"
+.TH "KZONESIGN" "1" "2024-09-02" "3.4.0" "Knot DNS"
.SH NAME
kzonesign \- DNSSEC signing utility
.SH SYNOPSIS
@@ -43,17 +43,17 @@ and zone.adjust\-threads).
.SS Parameters
.INDENT 0.0
.TP
-\fIzone_name\fP
+.B \fIzone_name\fP
A name of the zone to be signed.
.UNINDENT
.SS Config options
.INDENT 0.0
.TP
\fB\-c\fP, \fB\-\-config\fP \fIfile\fP
-Use a textual configuration file (default is \fB@config_dir@/knot.conf\fP).
+Use a textual configuration file (default is \fB/usr/local/etc/knot/knot.conf\fP).
.TP
\fB\-C\fP, \fB\-\-confdb\fP \fIdirectory\fP
-Use a binary configuration database directory (default is \fB@storage_dir@/confdb\fP).
+Use a binary configuration database directory (default is \fB/usr/local/var/lib/knot/confdb\fP).
The default configuration database, if exists, has a preference to the default
configuration file.
.UNINDENT
@@ -78,7 +78,8 @@ specified by timestamp.
Print the program help.
.TP
\fB\-V\fP, \fB\-\-version\fP
-Print the program version.
+Print the program version. The option \fB\-VV\fP makes the program
+print the compile time configuration summary.
.UNINDENT
.SH EXIT VALUES
.sp
diff --git a/doc/man_kcatalogprint.rst b/doc/man_kcatalogprint.rst
index cccc641..da2ed97 100644
--- a/doc/man_kcatalogprint.rst
+++ b/doc/man_kcatalogprint.rst
@@ -40,7 +40,8 @@ Options
Print the program help.
**-V**, **--version**
- Print the program version.
+ Print the program version. The option **-VV** makes the program
+ print the compile time configuration summary.
Exit values
-----------
diff --git a/doc/man_kdig.rst b/doc/man_kdig.rst
index 4457b68..cda3303 100644
--- a/doc/man_kdig.rst
+++ b/doc/man_kdig.rst
@@ -111,7 +111,8 @@ Options
An explicit *query_type* specification. See possible values above.
**-V**, **--version**
- Print the program version.
+ Print the program version. The option **-VV** makes the program
+ print the compile time configuration summary.
**-x** *address*
Send a reverse (PTR) query for IPv4 or IPv6 *address*. The correct name, class
@@ -281,7 +282,7 @@ Options
Request the nameserver identifier (NSID).
**+**\ [\ **no**\ ]\ **bufsize**\ =\ *B*
- Set EDNS buffer size in bytes (default is 4096 bytes).
+ Set EDNS buffer size in bytes (default is 1232 bytes).
**+**\ [\ **no**\ ]\ **padding**\[\ =\ *B*\]
Use EDNS(0) padding option to pad queries, optionally to a specific
@@ -298,7 +299,7 @@ Options
Set EDNS(0) client subnet SUBN=addr/prefix.
**+**\ [\ **no**\ ]\ **edns**\[\ =\ *N*\]
- Use EDNS version (default is 0).
+ Use EDNS version (default is 0). EDNS(0) is enabled by default.
**+**\ [\ **no**\ ]\ **timeout**\ =\ *T*
Set the wait-for-reply interval in seconds (default is 5 seconds). This timeout
@@ -333,7 +334,7 @@ Options
**+noidn**
Disable the IDN transformation to ASCII and vice versa. IDN support depends
- on libidn availability during project building! If used in *common-settings*,
+ on libidn2 availability during project building! If used in *common-settings*,
all IDN transformations are disabled. If used in the individual query *settings*,
transformation from ASCII is disabled on output for the particular query. Note
that IDN transformation does not preserve domain name letter case.
diff --git a/doc/man_keymgr.rst b/doc/man_keymgr.rst
index 362790e..a0001fe 100644
--- a/doc/man_keymgr.rst
+++ b/doc/man_keymgr.rst
@@ -8,6 +8,8 @@ Synopsis
:program:`keymgr` [*config_option*] [*options*] *zone_name* *command*
+:program:`keymgr` [*config_option*] [*options*] *keystore_id* *command*
+
:program:`keymgr` [*config_option*] [-j] **-l**
:program:`keymgr` **-t** *parameter*...
@@ -73,7 +75,8 @@ Options
Print the program help.
**-V**, **--version**
- Print the program version.
+ Print the program version. The option **-VV** makes the program
+ print the compile time configuration summary.
.. NOTE::
Keymgr runs with the same user privileges as configured for :doc:`knotd<man_knotd>`.
@@ -143,6 +146,21 @@ Commands
Import a key (specified by full key ID) from another zone as shared. After this, the key is
owned by both zones equally.
+Keystore commands
+.................
+
+**keystore-test**
+ Conduct some tests on the specified keystore. For each algorithm, key generation,
+ import, removal, and use (signing and verification) are tested.
+ Use a configured *keystore_id* or **-** for the default.
+
+**keystore-bench** [*num_threads*]
+ Conduct a signing benchmark on the specified keystore.
+ Random blocks of data are signed by the selected number of threads
+ (default is 1) in a loop, and the average number of signing operations per
+ second for each algorithm is returned.
+ Use a configured *keystore_id* or **-** for the default.
+
Commands related to Offline KSK feature
.......................................
diff --git a/doc/man_khost.rst b/doc/man_khost.rst
index 1fcc0bf..9447856 100644
--- a/doc/man_khost.rst
+++ b/doc/man_khost.rst
@@ -57,7 +57,8 @@ Options
Enable verbose output.
**-V**, **--version**
- Print the program version.
+ Print the program version. The option **-VV** makes the program
+ print the compile time configuration summary.
**-w**
Wait forever for the reply.
diff --git a/doc/man_kjournalprint.rst b/doc/man_kjournalprint.rst
index f83a137..3b2d024 100644
--- a/doc/man_kjournalprint.rst
+++ b/doc/man_kjournalprint.rst
@@ -57,9 +57,6 @@ Options
**-x**, **--mono**
Don't generate colorized output.
-**-n**, **--no-color**
- An alias for **-x**. Use of this option is deprecated, it will be removed in the future.
-
**-X**, **--color**
Force colorized output.
@@ -67,7 +64,8 @@ Options
Print the program help.
**-V**, **--version**
- Print the program version.
+ Print the program version. The option **-VV** makes the program
+ print the compile time configuration summary.
Exit values
-----------
diff --git a/doc/man_knotc.rst b/doc/man_knotc.rst
index d03bc77..4755a6a 100644
--- a/doc/man_knotc.rst
+++ b/doc/man_knotc.rst
@@ -65,7 +65,8 @@ Options
Print the program help.
**-V**, **--version**
- Print the program version.
+ Print the program version. The option **-VV** makes the program
+ print the compile time configuration summary.
Actions
.......
@@ -150,8 +151,9 @@ Actions
explicitly. If zone flushing is disabled, the original zone file is backed
up instead of writing out zone contents to a file. When backing-up a catalog
zone, it is recommended to prevent ongoing changes to it by use of
- **zone-freeze**.
- See :ref:`Notes<notes>` below about the directory permissions. (#)
+ **zone-freeze**. The force option allows an already existing backupdir to
+ be overwritten. See :ref:`Notes<notes>` below about the directory permissions.
+ (#)
**zone-restore** [*zone*...] **+backupdir** *directory* [*filter*...]
Trigger a zone data and metadata restore from a specified backup directory.
@@ -164,6 +166,10 @@ Actions
Trigger a DNSSEC re-sign of the zone. Existing signatures will be dropped.
This command is valid for zones with DNSSEC signing enabled. (#)
+**zone-validate** [*zone*...]
+ Trigger a DNSSEC validation of the zone. If the validation fails and the
+ zone is secondary, the zone expires immediately! (#)
+
**zone-keys-load** [*zone*...]
Trigger a load of DNSSEC keys and other signing material from KASP database
(which might have been altered manually). If suitable, re-sign the zone
@@ -184,7 +190,8 @@ Actions
**zone-freeze** [*zone*...]
Trigger a zone freeze. All running events will be finished and all new and pending
(planned) zone-changing events (load, refresh, update, flush, and DNSSEC signing)
- will be held up until the zone is thawed. (#)
+ will be held up until the zone is thawed. Up to 8 (this limit is hardcoded) DDNS
+ updates per zone will be queued, subsequent updates will be refused. (#)
**zone-thaw** [*zone*...]
Trigger dismissal of zone freeze. (#)
diff --git a/doc/man_knotd.rst b/doc/man_knotd.rst
index d0fe83b..9f3193f 100644
--- a/doc/man_knotd.rst
+++ b/doc/man_knotd.rst
@@ -46,7 +46,8 @@ Options
Print the program help.
**-V**, **--version**
- Print the program version.
+ Print the program version. The option **-VV** makes the program
+ print the compile time configuration summary.
Signals
.......
diff --git a/doc/man_knsec3hash.rst b/doc/man_knsec3hash.rst
index bf0688c..b3367fe 100644
--- a/doc/man_knsec3hash.rst
+++ b/doc/man_knsec3hash.rst
@@ -10,6 +10,8 @@ Synopsis
:program:`knsec3hash` *algorithm* *flags* *iterations* *salt* *name*
+:program:`knsec3hash` [*-h*] [*-V*]
+
Description
-----------
@@ -33,6 +35,16 @@ Parameters
*flags*
Specifies NSEC3 flags as an unsigned integer.
+Options
+.......
+
+**-h**, **--help**
+ Print the program help.
+
+**-V**, **--version**
+ Print the program version. The option **-VV** makes the program
+ print the compile time configuration summary.
+
Exit values
-----------
diff --git a/doc/man_knsupdate.rst b/doc/man_knsupdate.rst
index 40a419b..e2d71f9 100644
--- a/doc/man_knsupdate.rst
+++ b/doc/man_knsupdate.rst
@@ -6,7 +6,9 @@
Synopsis
--------
-:program:`knsupdate` [*options*] [*filename*]
+:program:`knsupdate` [**-v**] [*options*] [*filename*]
+
+:program:`knsupdate` [**-q**] [*quic_options*] [*options*] [*filename*]
Description
-----------
@@ -28,39 +30,71 @@ Parameters
Options
.......
-**-d**
- Enable debug messages.
+**-T**, **--tcp**
+ Use a TCP connection. (**-v** can be used for compatibility with nsupdate).
-**-h**, **--help**
- Print the program help.
+**-S**, **--tls**
+ Use a TLS connection.
-**-k** *keyfile*
- Use the TSIG key stored in a file *keyfile* to authenticate the request. The
- file should contain the key in the same format, which is accepted by the
- **-y** option.
+**-Q**, **--quic**
+ Use a QUIC connection.
-**-p** *port*
+**-p**, **--port** *number*
Set the port to use for connections to the server (if not explicitly specified
- in the update). The default is 53.
+ in the update). The default is 53 for UDP/TCP or 853 for QUIC.
-**-r** *retries*
+**-r**, **--retry** *count*
The number of retries for UDP requests. The default is 3.
-**-t** *timeout*
+**-t**, **--timeout** *seconds*
The total timeout (for all UDP update tries) of the update request in seconds.
The default is 12. If set to zero, the timeout is infinite.
-**-v**
- Use a TCP connection.
-
-**-V**, **--version**
- Print the program version.
-
-**-y** [*alg*:]\ *name*:*key*
+**-y**, **--tsig** [*alg*:]\ *name*:*key*
Use the TSIG key with a name *name* to authenticate the request. The *alg*
part specifies the algorithm (the default is hmac-sha256) and *key* specifies
the shared secret encoded in Base64.
+**-k**, **--tsigfile** *path*
+ Use the TSIG key stored in a file *keyfile* to authenticate the request. The
+ file should contain the key in the same format, which is accepted by the
+ **-y** option.
+
+**-d**, **--debug**
+ Enable debug messages.
+
+**-h**, **--help**
+ Print the program help.
+
+**-V**, **--version**
+ Print the program version. The option **-VV** makes the program
+ print the compile time configuration summary.
+
+QUIC/TLS options
+................
+
+**-H**, **--hostname** *string*
+ Enable remote server hostname validation.
+
+**-P**, **--pin** *base64*
+ Use Out-of-Band key-pinned privacy profile
+ (RFC 7858#section-4.2). The PIN must be a Base64 encoded SHA-256 hash of the
+ X.509 SubjectPublicKeyInfo. Can be specified multiple times.
+
+**-A**, **--ca** [*path*]
+ Enable certificate validation. Certification authority certificates
+ are loaded from the specified PEM file (default is system certificate storage
+ if no argument is provided). Can be specified multiple times.
+
+**-E**, **--certfile** *path*
+ Path to a client certificate file.
+
+**-K**, **--keyfile** *path*
+ Path to a client key file.
+
+**-s**, **--sni** *string*
+ Use specified Server Name Indication.
+
Commands
........
diff --git a/doc/man_kxdpgun.rst b/doc/man_kxdpgun.rst
index 28713ba..bc26d12 100644
--- a/doc/man_kxdpgun.rst
+++ b/doc/man_kxdpgun.rst
@@ -67,6 +67,11 @@ Options
**-i**, **--infile** *filename*
Path to a file with query templates.
+**-B**, **--binary**
+ Specify that input file is in binary format. This format is similar to the
+ TCP DNS message format. The file contains records formated as 2-octet length
+ (network order) followed by a message in DNS wire format.
+
**-I**, **--interface** *interface*
Network interface for outgoing communication. This can be useful in situations
when the interfaces are in a bond for example.
@@ -111,11 +116,20 @@ Options
This option is ignored if not in the QUIC mode. The recommended usage is
with **--quic=R** or with low QPS. Otherwise, too many files are generated.
+**-j**, **--json**
+ Print statistics formatted as json.
+
+**-S**, **--stats-period** *period*
+ Report statistics automatically every *period* milliseconds.
+
+ These reports contain only metrics collected in the given period.
+
**-h**, **--help**
Print the program help.
**-V**, **--version**
- Print the program version.
+ Print the program version. The option **-VV** makes the program
+ print the compile time configuration summary.
Queries file format
...................
@@ -165,7 +179,8 @@ Signals
.......
Sending USR1 signal to a running process triggers current statistics dump
-to the standard output.
+to the standard output. In combination with **-S** may cause erratic printout
+timing.
Notes
-----
@@ -178,6 +193,12 @@ CAP_NET_RAW, CAP_NET_ADMIN, CAP_SYS_ADMIN, CAP_IPC_LOCK, and CAP_SYS_RESOURCE
The utility allocates source UDP/TCP ports from the range 2000-65535.
+Due to the multi-threaded program structure there are slight discrepancies in
+the timespan during which metrics are collected for any given thread. The
+statistics printouts ignore this and are thus ever-so-slightly inaccurate. The
+error margin decreases proportionally to the volume of data & timespan over
+which they are collected.
+
Exit values
-----------
diff --git a/doc/man_kzonecheck.rst b/doc/man_kzonecheck.rst
index 3a10863..c0dae37 100644
--- a/doc/man_kzonecheck.rst
+++ b/doc/man_kzonecheck.rst
@@ -54,7 +54,8 @@ Options
Print the program help.
**-V**, **--version**
- Print the program version.
+ Print the program version. The option **-VV** makes the program
+ print the compile time configuration summary.
Exit values
-----------
diff --git a/doc/man_kzonesign.rst b/doc/man_kzonesign.rst
index c759c57..a1981ee 100644
--- a/doc/man_kzonesign.rst
+++ b/doc/man_kzonesign.rst
@@ -55,7 +55,8 @@ Options
Print the program help.
**-V**, **--version**
- Print the program version.
+ Print the program version. The option **-VV** makes the program
+ print the compile time configuration summary.
Exit values
-----------
diff --git a/doc/migration.rst b/doc/migration.rst
index f79539c..7c4a279 100644
--- a/doc/migration.rst
+++ b/doc/migration.rst
@@ -249,19 +249,19 @@ Configuration changes
- Ignored obsolete options (with a notice log):
- - ``server.max-journal-depth``
- - ``server.max-journal-usage``
- - ``server.max-refresh-interval``
- - ``server.min-refresh-interval``
- ``server.max-ipv4-udp-payload``
- ``server.max-ipv6-udp-payload``
- ``server.max-udp-payload``
- ``server.max-tcp-clients``
- ``server.tcp-reply-timeout``
+ - ``zone.max-journal-depth``
+ - ``zone.max-journal-usage``
+ - ``zone.max-refresh-interval``
+ - ``zone.min-refresh-interval``
+ - ``zone.max-zone-size``
- ``template.journal-db``
- ``template.kasp-db``
- ``template.timer-db``
- - ``template.max-zone-size``
- ``template.max-journal-db-size``
- ``template.max-timer-db-size``
- ``template.max-kasp-db-size``
@@ -393,6 +393,86 @@ Query module API change
The function ``knotd_qdata_local_addr()`` only takes one parameter.
+.. _Upgrade 3.3.x to 3.4.x:
+
+Upgrade 3.3.x to 3.4.x
+======================
+
+There are the following changes between Knot DNS versions 3.4.x and 3.3.x.
+
+DNSSEC
+------
+
+- DNSSEC validation fails if the remaining RRSIG validity is shorter than
+ the corresponding :ref:`policy_rrsig-refresh` value.
+- SKR verification fails if the end of a DNSKEY RRSIG validity period doesn't
+ cover the next DNSKEY snapshot.
+- If DNSSEC signing is enabled, the outbound request's EDNS expire value is
+ lowered to the earliest RRSIG expiration if it is higher.
+
+Semantic checks
+---------------
+
+- Just one SOA record is required.
+- Unified DNAME and CNAME semantic checks (see :ref:`Handling CNAME and DNAME-related updates`).
+
+Configuration changes
+---------------------
+
+- The server no longer allows concurrent control zone and configuration transactions.
+- The server no longer allows opening a zone transaction when a blocking command is running.
+- Removed already ignored obsolete options:
+
+ - ``server.max-ipv4-udp-payload``
+ - ``server.max-ipv6-udp-payload``
+ - ``server.max-udp-payload``
+ - ``server.max-tcp-clients``
+ - ``server.tcp-handshake-timeout``
+ - ``server.tcp-reply-timeout``
+ - ``server.listen-xdp``
+ - ``xdp.quic-log``
+ - ``zone.max-journal-depth``
+ - ``zone.max-journal-usage``
+ - ``zone.max-refresh-interval``
+ - ``zone.min-refresh-interval``
+ - ``zone.max-zone-size``
+ - ``zone.disable-any``
+ - ``template.journal-db``
+ - ``template.kasp-db``
+ - ``template.timer-db``
+ - ``template.max-journal-db-size``
+ - ``template.max-timer-db-size``
+ - ``template.max-kasp-db-size``
+ - ``template.journal-db-mode``
+
+Utilities
+---------
+
+- Changed defaults:
+
+ - :doc:`kdig<man_kdig>`: enabled ``+edns`` and ``+bufsize=1232``
+
+- Removed legacy parameters:
+
+ - :doc:`keymgr<man_keymgr>`: ``--brief``
+ - :doc:`kjournalprint<man_kjournalprint>`: ``--no-color``
+ - :doc:`kjournalprint<man_kjournalprint>`: database specification without ``--dir``
+ - :doc:`kjournalprint<man_kcatalogprint>`: database specification without ``--dir``
+
+Documentation
+-------------
+
+- Info pages are no longer supported.
+
+Building notes
+--------------
+
+- A GCC or LLVM Clang compiler with C11 support is required.
+- Minimum required *GnuTLS* version is 3.6.10.
+- *Libidn* version 1 is no longer supported.
+- *Liburcu* must be available via pkg-config.
+- Linux distributions CentOS 7, Debian 10, and Ubuntu 18.04 are no longer supported.
+
.. _Knot DNS for BIND users:
Knot DNS for BIND users
diff --git a/doc/operation.rst b/doc/operation.rst
index 5754147..5c2bdf2 100644
--- a/doc/operation.rst
+++ b/doc/operation.rst
@@ -632,7 +632,7 @@ continues along the lines of :rfc:`6781#section-4.1.2`::
2024-02-14T15:20:00+0100 info: [example.com.] DNSSEC, key, tag 36185, algorithm ECDSAP256SHA256, public, active
2024-02-14T15:20:00+0100 info: [example.com.] DNSSEC, key, tag 3375, algorithm ECDSAP256SHA256, KSK, public, active+
2024-02-14T15:20:00+0100 info: [example.com.] DNSSEC, signing started
- 2024-02-14T15:20:00+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111204
+ 2024-02-14T15:20:00+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111204, new RRSIGs 3
2024-02-14T15:20:00+0100 info: [example.com.] DNSSEC, next signing at 2024-02-14T15:20:12+0100
... (propagation-delay + dnskey-ttl) ...
@@ -643,7 +643,7 @@ continues along the lines of :rfc:`6781#section-4.1.2`::
2024-02-14T15:20:12+0100 info: [example.com.] DNSSEC, key, tag 36185, algorithm ECDSAP256SHA256, public, active
2024-02-14T15:20:12+0100 info: [example.com.] DNSSEC, key, tag 3375, algorithm ECDSAP256SHA256, KSK, public, ready, active+
2024-02-14T15:20:12+0100 info: [example.com.] DNSSEC, signing started
- 2024-02-14T15:20:12+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111205
+ 2024-02-14T15:20:12+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111205, new RRSIGs 6
2024-02-14T15:20:12+0100 info: [example.com.] DNSSEC, next signing at 2024-02-28T15:19:37+0100
At this point the new KSK has to be submitted to the parent zone. Knot detects the updated parent's DS
@@ -660,7 +660,7 @@ operator must confirm it manually (using ``knotc zone-ksk-submitted``)::
2024-02-14T15:20:16+0100 info: [example.com.] DNSSEC, key, tag 36185, algorithm ECDSAP256SHA256, public, active
2024-02-14T15:20:16+0100 info: [example.com.] DNSSEC, key, tag 3375, algorithm ECDSAP256SHA256, KSK, public, active
2024-02-14T15:20:16+0100 info: [example.com.] DNSSEC, signing started
- 2024-02-14T15:20:16+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111206
+ 2024-02-14T15:20:16+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111206, new RRSIGs 2
2024-02-14T15:20:16+0100 info: [example.com.] DNSSEC, next signing at 2024-02-14T15:20:23+0100
... (parent's DS TTL is 7 seconds) ...
@@ -670,7 +670,7 @@ operator must confirm it manually (using ``knotc zone-ksk-submitted``)::
2024-02-14T15:20:23+0100 info: [example.com.] DNSSEC, key, tag 36185, algorithm ECDSAP256SHA256, public, active
2024-02-14T15:20:23+0100 info: [example.com.] DNSSEC, key, tag 3375, algorithm ECDSAP256SHA256, KSK, public, active
2024-02-14T15:20:23+0100 info: [example.com.] DNSSEC, signing started
- 2024-02-14T15:20:23+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111207
+ 2024-02-14T15:20:23+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111207, new RRSIGs 2
2024-02-14T15:20:23+0100 info: [example.com.] DNSSEC, next signing at 2024-02-14T15:21:54+0100
Upon the zone's ZSK lifetime expiration, a new ZSK is generated and the rollover
@@ -685,7 +685,7 @@ continues along the lines of :rfc:`6781#section-4.1.1`::
2024-02-14T15:21:54+0100 info: [example.com.] DNSSEC, key, tag 3375, algorithm ECDSAP256SHA256, KSK, public, active
2024-02-14T15:21:54+0100 info: [example.com.] DNSSEC, key, tag 38559, algorithm ECDSAP256SHA256, public
2024-02-14T15:21:54+0100 info: [example.com.] DNSSEC, signing started
- 2024-02-14T15:21:54+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111208
+ 2024-02-14T15:21:54+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111208, new RRSIGs 2
2024-02-14T15:21:54+0100 info: [example.com.] DNSSEC, next signing at 2024-02-14T15:22:06+0100
... (propagation-delay + dnskey-ttl) ...
@@ -696,7 +696,7 @@ continues along the lines of :rfc:`6781#section-4.1.1`::
2024-02-14T15:22:06+0100 info: [example.com.] DNSSEC, key, tag 3375, algorithm ECDSAP256SHA256, KSK, public, active
2024-02-14T15:22:06+0100 info: [example.com.] DNSSEC, key, tag 38559, algorithm ECDSAP256SHA256, public, active
2024-02-14T15:22:06+0100 info: [example.com.] DNSSEC, signing started
- 2024-02-14T15:22:06+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111209
+ 2024-02-14T15:22:06+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111209, new RRSIGs 14
2024-02-14T15:22:06+0100 info: [example.com.] DNSSEC, next signing at 2024-02-14T15:22:23+0100
... (propagation-delay + zone-max-ttl) ...
@@ -706,7 +706,7 @@ continues along the lines of :rfc:`6781#section-4.1.1`::
2024-02-14T15:22:23+0100 info: [example.com.] DNSSEC, key, tag 3375, algorithm ECDSAP256SHA256, KSK, public, active
2024-02-14T15:22:23+0100 info: [example.com.] DNSSEC, key, tag 38559, algorithm ECDSAP256SHA256, public, active
2024-02-14T15:22:23+0100 info: [example.com.] DNSSEC, signing started
- 2024-02-14T15:22:23+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111210
+ 2024-02-14T15:22:23+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111210, new RRSIGs 2
2024-02-14T15:22:23+0100 info: [example.com.] DNSSEC, next signing at 2024-02-14T15:24:06+0100
Further rollovers::
@@ -722,7 +722,7 @@ Further rollovers::
2024-02-14T15:24:06+0100 info: [example.com.] DNSSEC, key, tag 38559, algorithm ECDSAP256SHA256, public, active
2024-02-14T15:24:06+0100 info: [example.com.] DNSSEC, key, tag 59825, algorithm ECDSAP256SHA256, public
2024-02-14T15:24:06+0100 info: [example.com.] DNSSEC, signing started
- 2024-02-14T15:24:06+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111211
+ 2024-02-14T15:24:06+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111211, new RRSIGs 2
2024-02-14T15:24:06+0100 info: [example.com.] DNSSEC, next signing at 2024-02-14T15:24:18+0100
...
@@ -736,7 +736,7 @@ Further rollovers::
2024-02-14T15:25:00+0100 info: [example.com.] DNSSEC, key, tag 59825, algorithm ECDSAP256SHA256, public, active
2024-02-14T15:25:00+0100 info: [example.com.] DNSSEC, key, tag 50822, algorithm ECDSAP256SHA256, KSK, public, active+
2024-02-14T15:25:00+0100 info: [example.com.] DNSSEC, signing started
- 2024-02-14T15:25:00+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111214
+ 2024-02-14T15:25:00+0100 info: [example.com.] DNSSEC, successfully signed, serial 2010111214, new RRSIGs 3
2024-02-14T15:25:00+0100 info: [example.com.] DNSSEC, next signing at 2024-02-14T15:25:12+0100
...
@@ -1282,12 +1282,12 @@ if the backup was created for only a subset of zones.
turns off some verification checks, it shouldn't be used in other cases.
.. NOTE::
- For QUIC, only the auto-generated key is restored. The ``zone-restore``
- command doesn't restore a user-defined QUIC key and certificate so as to
+ For QUIC/TLS, only the auto-generated key is restored. The ``zone-restore``
+ command doesn't restore a user-defined QUIC/TLS key and certificate so as to
avoid possible configuration management conflicts and they must be restored
from the backup (its subdirectory ``quic``) manually. In all cases,
restart of the Knot server after the restore is necessary for the restored
- QUIC key/certificate to take effect.
+ QUIC/TLS key/certificate to take effect.
Limitations
-----------
@@ -1375,9 +1375,15 @@ Pre-requisites
* A multiqueue network card, which offers enough Combined RX/TX channels, with
native XDP support is highly recommended. Successfully tested cards:
+ * NVIDIA (Mellanox) ConnectX-6 Dx (driver `mlx5_core`), maximum number of channels
+ per interface is 63. Official drivers are recommended.
* Intel series 700 (driver `i40e`), maximum number of channels per interface is 64.
- * Intel series 500 (driver `ixgbe`), maximum number of channels per interface is 64.
- The number of CPUs available has to be at most 64!
+ Linux kernel drivers are recommended.
+
+ Cards with known instability issues:
+
+ * Intel series E810 (driver `ice`).
+ * Intel series 500 (driver `ixgbe`).
* If the `knotd` service is not directly executed in the privileged mode, some
additional Linux capabilities have to be set:
diff --git a/doc/reference.rst b/doc/reference.rst
index bbd4586..1aefc57 100644
--- a/doc/reference.rst
+++ b/doc/reference.rst
@@ -20,9 +20,10 @@ the following symbols:
- ``STR`` – Textual string
- ``HEXSTR`` – Hexadecimal string (with ``0x`` prefix)
- ``BOOL`` – Boolean value (``on``/``off`` or ``true``/``false``)
-- ``TIME`` – Number of seconds, an integer with possible time multiplier suffix
- (``s`` ~ 1, ``m`` ~ 60, ``h`` ~ 3600 or ``d`` ~ 24 * 3600)
-- ``SIZE`` – Number of bytes, an integer with possible size multiplier suffix
+- ``TIME`` – Number of seconds, an integer with a possible time multiplier suffix
+ (``s`` ~ 1, ``m`` ~ 60, ``h`` ~ 3600, ``d`` ~ 24 * 3600, ``w`` ~ 7 * 24 * 3600,
+ ``M`` ~ 30 * 24 * 3600, ``y`` ~ 365 * 24 * 3600)
+- ``SIZE`` – Number of bytes, an integer with a possible size multiplier suffix
(``B`` ~ 1, ``K`` ~ 1024, ``M`` ~ 1024^2 or ``G`` ~ 1024^3)
- ``BASE64`` – Base64 encoded string
- ``ADDR`` – IPv4 or IPv6 address
@@ -217,6 +218,7 @@ General options related to the server.
dbus-init-delay: TIME
listen: ADDR[@INT] | STR ...
listen-quic: ADDR[@INT] ...
+ listen-tls: ADDR[@INT] ...
.. CAUTION::
When you change configuration parameters dynamically or via configuration file
@@ -561,12 +563,10 @@ Maximum EDNS0 UDP payload size for IPv6.
key-file
--------
-Path to a server key PEM file which is used for DNS over QUIC communication.
+Path to a server key PEM file which is used for DNS over QUIC/TLS communication.
A non-absolute path of a user specified key file is relative to the
:file:`@config_dir@` directory.
-Change of this parameter requires restart of the Knot server to take effect.
-
*Default:* auto-generated key
.. _server_cert-file:
@@ -574,11 +574,9 @@ Change of this parameter requires restart of the Knot server to take effect.
cert-file
---------
-Path to a server certificate PEM file which is used for DNS over QUIC communication.
+Path to a server certificate PEM file which is used for DNS over QUIC/TLS communication.
A non-absolute path is relative to the :file:`@config_dir@` directory.
-Change of this parameter requires restart of the Knot server to take effect.
-
*Default:* one-time in-memory certificate
.. _server_edns-client-subnet:
@@ -646,16 +644,17 @@ Possible values:
- ``stopped`` when the server shutdown sequence is initiated.
- ``zone-updated`` – The signal ``zone_updated`` is emitted when a zone has been updated;
the signal parameters are `zone name` and `zone SOA serial`.
-- ``keys-updated`` - The signal ``keys_updated`` is emitted when a DNSSEC key set
- of this zone is updated.
+- ``keys-updated`` - The signal ``keys_updated`` is emitted when a DNSSEC key set
+ is updated; the signal parameter is `zone name`.
- ``ksk-submission`` – The signal ``zone_ksk_submission`` is emitted if there is
a ready KSK present when the zone is signed; the signal parameters are
`zone name`, `KSK keytag`, and `KSK KASP id`.
- ``dnssec-invalid`` – The signal ``zone_dnssec_invalid`` is emitted when DNSSEC
- validation fails; the signal parameter is `zone name`.
+ validation fails; the signal parameters are `zone name`, and `remaining seconds`
+ until an RRSIG expires.
.. NOTE::
- This function requires systemd version at least 221.
+ This function requires systemd version at least 221 or libdbus.
Change of this parameter requires restart of the Knot server to take effect.
@@ -704,9 +703,17 @@ Change of this parameter requires restart of the Knot server to take effect.
*Default:* not set
-.. NOTE::
- Incoming :ref:`DDNS<dynamic updates>` over QUIC isn't supported.
- The server always responds with SERVFAIL.
+.. _server_listen-tls:
+
+listen-tls
+----------
+
+One or more IP addresses (and optionally ports) where the server listens
+for incoming queries over TLS protocol (DoT).
+
+Change of this parameter requires restart of the Knot server to take effect.
+
+*Default:* not set
.. _xdp section:
@@ -730,6 +737,9 @@ Various options related to XDP listening, especially TCP.
tcp-idle-reset-timeout: TIME
tcp-resend-timeout: TIME
route-check: BOOL
+ ring-size: INT
+ busypoll-budget: INT
+ busypoll-timeout: INT
.. CAUTION::
When you change configuration parameters dynamically or via configuration file
@@ -912,6 +922,57 @@ Change of this parameter requires restart of the Knot server to take effect.
*Default:* ``off``
+.. _xdp_ring-size:
+
+ring-size
+---------
+
+Size of RX, FQ, TX, and CQ rings.
+
+Change of this parameter requires restart of the Knot server to take effect.
+
+.. NOTE::
+ This value should be at least as high as the configured RX size of the
+ network device in the XDP mode.
+
+*Default:* ``2048``
+
+.. _xdp_busypoll-budget:
+
+busypoll-budget
+---------------
+
+If set to a positive value, preferred busy polling is enabled with the
+specified budget.
+
+Change of this parameter requires restart of the Knot server to take effect.
+
+.. NOTE::
+
+ Preferred busy polling also requires setting ``napi_defer_hard_irqs`` and
+ ``gro_flush_timeout`` for the appropriate network interface. E.g.::
+
+ echo 2 | sudo tee /sys/class/net/<interface>/napi_defer_hard_irqs
+ echo 200000 | sudo tee /sys/class/net/<interface>/gro_flush_timeout
+
+.. NOTE::
+
+ A recommended value is between 8 and 64.
+
+*Default:* ``0`` (disabled)
+
+.. _xdp_busypoll-timeout:
+
+busypoll-timeout
+----------------
+
+Timeout in microseconds of preferrred busy polling if enabled by
+:ref:`xdp_busypoll-budget`.
+
+Change of this parameter requires restart of the Knot server to take effect.
+
+*Default:* ``20`` (20 microseconds)
+
.. _control section:
``control`` section
@@ -1378,6 +1439,7 @@ transfer, target for a notification, etc.).
address: ADDR[@INT] | STR ...
via: ADDR[@INT] ...
quic: BOOL
+ tls: BOOL
key: key_id
cert-key: BASE64 ...
block-notify-after-transfer: BOOL
@@ -1459,6 +1521,16 @@ with this remote.
*Default:* ``off``
+.. _remote_tls:
+
+tls
+---
+
+If this option is set, the TLS (DoT) protocol will be used for outgoing communication
+with this remote.
+
+*Default:* ``off``
+
.. _remote_key:
key
@@ -1955,8 +2027,6 @@ Possible values:
- ``ed448``
.. NOTE::
- Ed25519 algorithm is only available if compiled with GnuTLS 3.6.0+.
-
Ed448 algorithm is only available if compiled with GnuTLS 3.6.12+ and Nettle 3.6+.
*Default:* ``ecdsap256sha256``
@@ -2134,6 +2204,10 @@ resolvers' caches.
*Default:* 0.1 * :ref:`policy_rrsig-lifetime` + :ref:`policy_propagation-delay` + :ref:`policy_zone-max-ttl`
+If :ref:`zone_dnssec-validation` is enabled:
+
+*Default:* ``1d`` (1 day)
+
.. _policy_rrsig-pre-refresh:
rrsig-pre-refresh
@@ -2436,6 +2510,7 @@ Definition of zones served by the server.
master-pin-tolerance: TIME
provide-ixfr: BOOL
semantic-checks: BOOL | soft
+ default-ttl: TIME
zonefile-sync: TIME
zonefile-load: none | difference | difference-no-serial | whole
journal-content: none | changes | all
@@ -2639,6 +2714,23 @@ Extra checks:
*Default:* ``off``
+.. _zone_default-ttl:
+
+default-ttl
+-----------
+
+The default TTL value if none is specified in a zone file or zone insertion
+using the dynamic configuration.
+
+.. WARNING::
+ As changing this value can result in differently parsed zone file(s),
+ the corresponding zone SOA serial(s) should be incremented before
+ reloading or commiting the configuration. Alternatively, setting
+ :ref:`zonefile-load <zone_zonefile-load>` to ``difference-no-serial`` ensures
+ the resulting zone(s) update is correct.
+
+*Default:* ``3600``
+
.. _zone_zonefile-sync:
zonefile-sync
@@ -2829,7 +2921,9 @@ List of DNSSEC checks:
The validation is not affected by :ref:`zone_dnssec-policy` configuration,
except for :ref:`policy_signing-threads` option, which specifies the number
-of threads for parallel validation.
+of threads for parallel validation, and :ref:`policy_rrsig-refresh`, which
+defines minimal allowed remaining RRSIG validity (otherwise a warning is
+logged).
.. NOTE::
diff --git a/doc/requirements.rst b/doc/requirements.rst
index 584afa2..6b25fc1 100644
--- a/doc/requirements.rst
+++ b/doc/requirements.rst
@@ -60,9 +60,9 @@ Required libraries
Knot DNS requires a few libraries to be available:
+* gnutls >= 3.6.10
* libedit
-* gnutls >= 3.3
-* liburcu >= 0.5.4
+* liburcu
* lmdb >= 0.9.15
.. NOTE::
@@ -72,9 +72,9 @@ Knot DNS requires a few libraries to be available:
Optional libraries
==================
-International Domain Names support (IDNA2008 or IDNA2003) in :doc:`kdig<man_kdig>`:
+International Domain Names support (IDNA2008) in :doc:`kdig<man_kdig>`:
-* libidn2 (or libidn)
+* libidn2
Systemd's startup notification mechanism and journald logging:
diff --git a/ltmain.sh b/ltmain.sh
index 9b12fbb..3846a50 100755
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -31,7 +31,7 @@
PROGRAM=libtool
PACKAGE=libtool
-VERSION="2.4.7 Debian-2.4.7-5"
+VERSION="2.4.7 Debian-2.4.7-7~deb12u1"
package_revision=2.4.7
@@ -572,27 +572,15 @@ func_require_term_colors ()
# ---------------------
# Append VALUE onto the existing contents of VAR.
- # We should try to minimise forks, especially on Windows where they are
- # unreasonably slow, so skip the feature probes when bash or zsh are
- # being used:
- if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
- : ${_G_HAVE_ARITH_OP="yes"}
- : ${_G_HAVE_XSI_OPS="yes"}
- # The += operator was introduced in bash 3.1
- case $BASH_VERSION in
- [12].* | 3.0 | 3.0*) ;;
- *)
- : ${_G_HAVE_PLUSEQ_OP="yes"}
- ;;
- esac
- fi
-
# _G_HAVE_PLUSEQ_OP
# Can be empty, in which case the shell is probed, "yes" if += is
# useable or anything else if it does not work.
- test -z "$_G_HAVE_PLUSEQ_OP" \
- && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
- && _G_HAVE_PLUSEQ_OP=yes
+ if test -z "$_G_HAVE_PLUSEQ_OP" && \
+ __PLUSEQ_TEST="a" && \
+ __PLUSEQ_TEST+=" b" 2>/dev/null && \
+ test "a b" = "$__PLUSEQ_TEST"; then
+ _G_HAVE_PLUSEQ_OP=yes
+ fi
if test yes = "$_G_HAVE_PLUSEQ_OP"
then
@@ -2308,7 +2296,7 @@ include the following information:
compiler: $LTCC
compiler flags: $LTCFLAGS
linker: $LD (gnu? $with_gnu_ld)
- version: $progname $scriptversion Debian-2.4.7-5
+ version: $progname $scriptversion Debian-2.4.7-7~deb12u1
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
diff --git a/python/Makefile.in b/python/Makefile.in
index 817d7f7..4e254e1 100644
--- a/python/Makefile.in
+++ b/python/Makefile.in
@@ -317,6 +317,8 @@ infodir = @infodir@
install_sh = @install_sh@
libbpf_CFLAGS = @libbpf_CFLAGS@
libbpf_LIBS = @libbpf_LIBS@
+libdbus_CFLAGS = @libdbus_CFLAGS@
+libdbus_LIBS = @libdbus_LIBS@
libdir = @libdir@
libdnssec_SONAME = @libdnssec_SONAME@
libdnssec_SOVERSION = @libdnssec_SOVERSION@
@@ -328,8 +330,6 @@ libfstrm_CFLAGS = @libfstrm_CFLAGS@
libfstrm_LIBS = @libfstrm_LIBS@
libidn2_CFLAGS = @libidn2_CFLAGS@
libidn2_LIBS = @libidn2_LIBS@
-libidn_CFLAGS = @libidn_CFLAGS@
-libidn_LIBS = @libidn_LIBS@
libknot_SONAME = @libknot_SONAME@
libknot_SOVERSION = @libknot_SOVERSION@
libknot_VERSION_INFO = @libknot_VERSION_INFO@
@@ -347,7 +347,6 @@ libprotobuf_c_CFLAGS = @libprotobuf_c_CFLAGS@
libprotobuf_c_LIBS = @libprotobuf_c_LIBS@
liburcu_CFLAGS = @liburcu_CFLAGS@
liburcu_LIBS = @liburcu_LIBS@
-liburcu_PKGCONFIG = @liburcu_PKGCONFIG@
libxdp_CFLAGS = @libxdp_CFLAGS@
libxdp_LIBS = @libxdp_LIBS@
libzscanner_SONAME = @libzscanner_SONAME@
diff --git a/python/knot_exporter/Makefile.in b/python/knot_exporter/Makefile.in
index dae875e..3f2824d 100644
--- a/python/knot_exporter/Makefile.in
+++ b/python/knot_exporter/Makefile.in
@@ -260,6 +260,8 @@ infodir = @infodir@
install_sh = @install_sh@
libbpf_CFLAGS = @libbpf_CFLAGS@
libbpf_LIBS = @libbpf_LIBS@
+libdbus_CFLAGS = @libdbus_CFLAGS@
+libdbus_LIBS = @libdbus_LIBS@
libdir = @libdir@
libdnssec_SONAME = @libdnssec_SONAME@
libdnssec_SOVERSION = @libdnssec_SOVERSION@
@@ -271,8 +273,6 @@ libfstrm_CFLAGS = @libfstrm_CFLAGS@
libfstrm_LIBS = @libfstrm_LIBS@
libidn2_CFLAGS = @libidn2_CFLAGS@
libidn2_LIBS = @libidn2_LIBS@
-libidn_CFLAGS = @libidn_CFLAGS@
-libidn_LIBS = @libidn_LIBS@
libknot_SONAME = @libknot_SONAME@
libknot_SOVERSION = @libknot_SOVERSION@
libknot_VERSION_INFO = @libknot_VERSION_INFO@
@@ -290,7 +290,6 @@ libprotobuf_c_CFLAGS = @libprotobuf_c_CFLAGS@
libprotobuf_c_LIBS = @libprotobuf_c_LIBS@
liburcu_CFLAGS = @liburcu_CFLAGS@
liburcu_LIBS = @liburcu_LIBS@
-liburcu_PKGCONFIG = @liburcu_PKGCONFIG@
libxdp_CFLAGS = @libxdp_CFLAGS@
libxdp_LIBS = @libxdp_LIBS@
libzscanner_SONAME = @libzscanner_SONAME@
diff --git a/python/libknot/Makefile.in b/python/libknot/Makefile.in
index 06b1083..c93de6e 100644
--- a/python/libknot/Makefile.in
+++ b/python/libknot/Makefile.in
@@ -260,6 +260,8 @@ infodir = @infodir@
install_sh = @install_sh@
libbpf_CFLAGS = @libbpf_CFLAGS@
libbpf_LIBS = @libbpf_LIBS@
+libdbus_CFLAGS = @libdbus_CFLAGS@
+libdbus_LIBS = @libdbus_LIBS@
libdir = @libdir@
libdnssec_SONAME = @libdnssec_SONAME@
libdnssec_SOVERSION = @libdnssec_SOVERSION@
@@ -271,8 +273,6 @@ libfstrm_CFLAGS = @libfstrm_CFLAGS@
libfstrm_LIBS = @libfstrm_LIBS@
libidn2_CFLAGS = @libidn2_CFLAGS@
libidn2_LIBS = @libidn2_LIBS@
-libidn_CFLAGS = @libidn_CFLAGS@
-libidn_LIBS = @libidn_LIBS@
libknot_SONAME = @libknot_SONAME@
libknot_SOVERSION = @libknot_SOVERSION@
libknot_VERSION_INFO = @libknot_VERSION_INFO@
@@ -290,7 +290,6 @@ libprotobuf_c_CFLAGS = @libprotobuf_c_CFLAGS@
libprotobuf_c_LIBS = @libprotobuf_c_LIBS@
liburcu_CFLAGS = @liburcu_CFLAGS@
liburcu_LIBS = @liburcu_LIBS@
-liburcu_PKGCONFIG = @liburcu_PKGCONFIG@
libxdp_CFLAGS = @libxdp_CFLAGS@
libxdp_LIBS = @libxdp_LIBS@
libzscanner_SONAME = @libzscanner_SONAME@
diff --git a/python/libknot/libknot/probe.py b/python/libknot/libknot/probe.py
index e6f09db..37b2cdf 100644
--- a/python/libknot/libknot/probe.py
+++ b/python/libknot/libknot/probe.py
@@ -12,9 +12,9 @@ class KnotProbeDataProto(enum.IntEnum):
UDP = 0
TCP = 1
- QUIC = 3
- TLS = 4
- HTTPS = 5
+ QUIC = 2
+ TLS = 3
+ HTTPS = 4
class KnotProbeDataDNSHdr(ctypes.BigEndianStructure):
@@ -132,8 +132,10 @@ class KnotProbeData(ctypes.Structure):
string += COL("UDP", GRN)
elif self.proto == KnotProbeDataProto.TCP:
string += COL("TCP", RED)
- else:
+ elif self.proto == KnotProbeDataProto.QUIC:
string += COL("QUIC", ORG)
+ else:
+ string += COL("TLS", YELW)
if self.tcp_rtt > 0:
string += ", RTT %.2f ms" % (self.tcp_rtt / 1000)
string += "\n ID %u, " % self.query_hdr.id
diff --git a/samples/Makefile.in b/samples/Makefile.in
index cd4bf4b..bb71eec 100644
--- a/samples/Makefile.in
+++ b/samples/Makefile.in
@@ -259,6 +259,8 @@ infodir = @infodir@
install_sh = @install_sh@
libbpf_CFLAGS = @libbpf_CFLAGS@
libbpf_LIBS = @libbpf_LIBS@
+libdbus_CFLAGS = @libdbus_CFLAGS@
+libdbus_LIBS = @libdbus_LIBS@
libdir = @libdir@
libdnssec_SONAME = @libdnssec_SONAME@
libdnssec_SOVERSION = @libdnssec_SOVERSION@
@@ -270,8 +272,6 @@ libfstrm_CFLAGS = @libfstrm_CFLAGS@
libfstrm_LIBS = @libfstrm_LIBS@
libidn2_CFLAGS = @libidn2_CFLAGS@
libidn2_LIBS = @libidn2_LIBS@
-libidn_CFLAGS = @libidn_CFLAGS@
-libidn_LIBS = @libidn_LIBS@
libknot_SONAME = @libknot_SONAME@
libknot_SOVERSION = @libknot_SOVERSION@
libknot_VERSION_INFO = @libknot_VERSION_INFO@
@@ -289,7 +289,6 @@ libprotobuf_c_CFLAGS = @libprotobuf_c_CFLAGS@
libprotobuf_c_LIBS = @libprotobuf_c_LIBS@
liburcu_CFLAGS = @liburcu_CFLAGS@
liburcu_LIBS = @liburcu_LIBS@
-liburcu_PKGCONFIG = @liburcu_PKGCONFIG@
libxdp_CFLAGS = @libxdp_CFLAGS@
libxdp_LIBS = @libxdp_LIBS@
libzscanner_SONAME = @libzscanner_SONAME@
diff --git a/src/Makefile.in b/src/Makefile.in
index 0018a7d..8630517 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -160,28 +160,29 @@ host_triplet = @host@
@STATIC_MODULE_queryacl_TRUE@am__append_41 = $(knot_modules_queryacl_la_SOURCES)
@SHARED_MODULE_queryacl_TRUE@am__append_42 = knot/modules/queryacl.la
@STATIC_MODULE_rrl_TRUE@am__append_43 = $(knot_modules_rrl_la_SOURCES)
-@SHARED_MODULE_rrl_TRUE@am__append_44 = knot/modules/rrl.la
-@STATIC_MODULE_stats_TRUE@am__append_45 = $(knot_modules_stats_la_SOURCES)
-@SHARED_MODULE_stats_TRUE@am__append_46 = knot/modules/stats.la
-@STATIC_MODULE_synthrecord_TRUE@am__append_47 = $(knot_modules_synthrecord_la_SOURCES)
-@SHARED_MODULE_synthrecord_TRUE@am__append_48 = knot/modules/synthrecord.la
-@STATIC_MODULE_whoami_TRUE@am__append_49 = $(knot_modules_whoami_la_SOURCES)
-@SHARED_MODULE_whoami_TRUE@am__append_50 = knot/modules/whoami.la
+@STATIC_MODULE_rrl_TRUE@am__append_44 = $(math_LIBS)
+@SHARED_MODULE_rrl_TRUE@am__append_45 = knot/modules/rrl.la
+@STATIC_MODULE_stats_TRUE@am__append_46 = $(knot_modules_stats_la_SOURCES)
+@SHARED_MODULE_stats_TRUE@am__append_47 = knot/modules/stats.la
+@STATIC_MODULE_synthrecord_TRUE@am__append_48 = $(knot_modules_synthrecord_la_SOURCES)
+@SHARED_MODULE_synthrecord_TRUE@am__append_49 = knot/modules/synthrecord.la
+@STATIC_MODULE_whoami_TRUE@am__append_50 = $(knot_modules_whoami_la_SOURCES)
+@SHARED_MODULE_whoami_TRUE@am__append_51 = knot/modules/whoami.la
bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2)
sbin_PROGRAMS = $(am__EXEEXT_3) $(am__EXEEXT_4) $(am__EXEEXT_5)
-@HAVE_LIBUTILS_TRUE@am__append_51 = libknotus.la
-@EMBEDDED_LIBNGTCP2_TRUE@@HAVE_LIBUTILS_TRUE@am__append_52 = $(libembngtcp2_LIBS)
-@HAVE_UTILS_TRUE@am__append_53 = kdig khost knsec3hash knsupdate
-@HAVE_DNSTAP_TRUE@@HAVE_UTILS_TRUE@am__append_54 = $(DNSTAP_CFLAGS)
-@HAVE_DNSTAP_TRUE@@HAVE_UTILS_TRUE@am__append_55 = $(libdnstap_LIBS)
-@HAVE_DNSTAP_TRUE@@HAVE_UTILS_TRUE@am__append_56 = $(DNSTAP_CFLAGS)
-@HAVE_DNSTAP_TRUE@@HAVE_UTILS_TRUE@am__append_57 = $(libdnstap_LIBS)
-@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@am__append_58 = kxdpgun
-@ENABLE_QUIC_TRUE@@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@am__append_59 = $(gnutls_CFLAGS)
-@ENABLE_QUIC_TRUE@@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@am__append_60 = $(gnutls_LIBS)
-@HAVE_DAEMON_TRUE@am__append_61 = knotc knotd
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@am__append_62 = kzonecheck kzonesign
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@am__append_63 = keymgr kjournalprint kcatalogprint
+@HAVE_LIBUTILS_TRUE@am__append_52 = libknotus.la
+@EMBEDDED_LIBNGTCP2_TRUE@@HAVE_LIBUTILS_TRUE@am__append_53 = $(libembngtcp2_LIBS)
+@HAVE_UTILS_TRUE@am__append_54 = kdig khost knsec3hash knsupdate
+@HAVE_DNSTAP_TRUE@@HAVE_UTILS_TRUE@am__append_55 = $(DNSTAP_CFLAGS)
+@HAVE_DNSTAP_TRUE@@HAVE_UTILS_TRUE@am__append_56 = $(libdnstap_LIBS)
+@HAVE_DNSTAP_TRUE@@HAVE_UTILS_TRUE@am__append_57 = $(DNSTAP_CFLAGS)
+@HAVE_DNSTAP_TRUE@@HAVE_UTILS_TRUE@am__append_58 = $(libdnstap_LIBS)
+@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@am__append_59 = kxdpgun
+@ENABLE_QUIC_TRUE@@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@am__append_60 = $(gnutls_CFLAGS)
+@ENABLE_QUIC_TRUE@@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@am__append_61 = $(gnutls_LIBS)
+@HAVE_DAEMON_TRUE@am__append_62 = knotc knotd
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@am__append_63 = kzonecheck kzonesign
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@am__append_64 = keymgr kjournalprint kcatalogprint
subdir = src
SUBDIRS =
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -198,7 +199,8 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(include_libdnssec_HEADERS) \
$(include_libknotd_HEADERS) $(include_libzscanner_HEADERS) \
- $(am__nobase_include_libknot_HEADERS_DIST) $(am__DIST_COMMON)
+ $(am__nobase_include_libknot_HEADERS_DIST) $(noinst_HEADERS) \
+ $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = knotd.pc libknot.pc libdnssec.pc libzscanner.pc
@@ -359,9 +361,12 @@ knot_modules_queryacl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@SHARED_MODULE_queryacl_TRUE@am_knot_modules_queryacl_la_rpath = \
@SHARED_MODULE_queryacl_TRUE@ -rpath $(pkglibdir)
@SHARED_MODULE_rrl_TRUE@knot_modules_rrl_la_DEPENDENCIES = \
-@SHARED_MODULE_rrl_TRUE@ $(am__DEPENDENCIES_3)
+@SHARED_MODULE_rrl_TRUE@ $(am__DEPENDENCIES_3) \
+@SHARED_MODULE_rrl_TRUE@ $(am__DEPENDENCIES_1)
am_knot_modules_rrl_la_OBJECTS = knot/modules/rrl/la-rrl.lo \
- knot/modules/rrl/la-functions.lo
+ knot/modules/rrl/la-functions.lo \
+ knot/modules/rrl/la-kru-generic.lo \
+ knot/modules/rrl/la-kru-avx2.lo
knot_modules_rrl_la_OBJECTS = $(am_knot_modules_rrl_la_OBJECTS)
knot_modules_rrl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -627,17 +632,19 @@ am__libknot_la_SOURCES_DIST = libknot/codes.c \
libknot/descriptor.c libknot/dname.c libknot/error.c \
libknot/db/db_lmdb.c libknot/db/db_trie.c libknot/packet/pkt.c \
libknot/packet/rrset-wire.c libknot/probe/data.c \
- libknot/probe/probe.c libknot/rdataset.c libknot/rrset-dump.c \
- libknot/rrset.c libknot/rrtype/naptr.c libknot/rrtype/opt.c \
- libknot/rrtype/tsig.c libknot/tsig-op.c libknot/tsig.c \
- libknot/yparser/yparser.c libknot/yparser/ypbody.c \
- libknot/yparser/ypformat.c libknot/yparser/ypschema.c \
- libknot/yparser/yptrafo.c libknot/xdp/tcp_iobuf.c \
- libknot/xdp/bpf-kernel-obj.c libknot/xdp/bpf-kernel-obj.h \
- libknot/xdp/bpf-user.c libknot/xdp/bpf-user.h \
- libknot/xdp/eth.c libknot/xdp/msg_init.h \
- libknot/xdp/protocols.h libknot/xdp/tcp.c libknot/xdp/xdp.c \
- libknot/quic/quic.c libknot/quic/quic_conn.c
+ libknot/probe/probe.c libknot/quic/tls.c \
+ libknot/quic/tls_common.c libknot/rdataset.c \
+ libknot/rrset-dump.c libknot/rrset.c libknot/rrtype/naptr.c \
+ libknot/rrtype/opt.c libknot/rrtype/tsig.c libknot/tsig-op.c \
+ libknot/tsig.c libknot/yparser/yparser.c \
+ libknot/yparser/ypbody.c libknot/yparser/ypformat.c \
+ libknot/yparser/ypschema.c libknot/yparser/yptrafo.c \
+ libknot/xdp/tcp_iobuf.c libknot/xdp/bpf-kernel-obj.c \
+ libknot/xdp/bpf-kernel-obj.h libknot/xdp/bpf-user.c \
+ libknot/xdp/bpf-user.h libknot/xdp/eth.c \
+ libknot/xdp/msg_init.h libknot/xdp/protocols.h \
+ libknot/xdp/tcp.c libknot/xdp/xdp.c libknot/quic/quic.c \
+ libknot/quic/quic_conn.c
@ENABLE_XDP_TRUE@am__objects_1 = libknot/xdp/la-bpf-kernel-obj.lo \
@ENABLE_XDP_TRUE@ libknot/xdp/la-bpf-user.lo \
@ENABLE_XDP_TRUE@ libknot/xdp/la-eth.lo libknot/xdp/la-tcp.lo \
@@ -650,7 +657,8 @@ am_libknot_la_OBJECTS = libknot/la-codes.lo \
libknot/la-error.lo libknot/db/la-db_lmdb.lo \
libknot/db/la-db_trie.lo libknot/packet/la-pkt.lo \
libknot/packet/la-rrset-wire.lo libknot/probe/la-data.lo \
- libknot/probe/la-probe.lo libknot/la-rdataset.lo \
+ libknot/probe/la-probe.lo libknot/quic/la-tls.lo \
+ libknot/quic/la-tls_common.lo libknot/la-rdataset.lo \
libknot/la-rrset-dump.lo libknot/la-rrset.lo \
libknot/rrtype/la-naptr.lo libknot/rrtype/la-opt.lo \
libknot/rrtype/la-tsig.lo libknot/la-tsig-op.lo \
@@ -665,10 +673,11 @@ libknot_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
@STATIC_MODULE_dnstap_TRUE@am__DEPENDENCIES_10 = \
@STATIC_MODULE_dnstap_TRUE@ $(am__DEPENDENCIES_4)
@STATIC_MODULE_geoip_TRUE@am__DEPENDENCIES_11 = $(am__DEPENDENCIES_1)
+@STATIC_MODULE_rrl_TRUE@am__DEPENDENCIES_12 = $(am__DEPENDENCIES_1)
libknotd_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_7) $(am__DEPENDENCIES_10) \
- $(am__DEPENDENCIES_11)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_7) \
+ $(am__DEPENDENCIES_10) $(am__DEPENDENCIES_11) \
+ $(am__DEPENDENCIES_12)
am__libknotd_la_SOURCES_DIST = knot/catalog/catalog_db.c \
knot/catalog/catalog_db.h knot/catalog/catalog_update.c \
knot/catalog/catalog_update.h knot/catalog/generate.c \
@@ -705,15 +714,15 @@ am__libknotd_la_SOURCES_DIST = knot/catalog/catalog_db.c \
knot/events/handlers/flush.c \
knot/events/handlers/freeze_thaw.c knot/events/handlers/load.c \
knot/events/handlers/notify.c knot/events/handlers/refresh.c \
- knot/events/handlers/update.c knot/events/replan.c \
- knot/events/replan.h knot/nameserver/axfr.c \
- knot/nameserver/axfr.h knot/nameserver/chaos.c \
- knot/nameserver/chaos.h knot/nameserver/internet.c \
- knot/nameserver/internet.h knot/nameserver/ixfr.c \
- knot/nameserver/ixfr.h knot/nameserver/log.h \
- knot/nameserver/notify.c knot/nameserver/notify.h \
- knot/nameserver/nsec_proofs.c knot/nameserver/nsec_proofs.h \
- knot/nameserver/process_query.c \
+ knot/events/handlers/update.c knot/events/handlers/validate.c \
+ knot/events/replan.c knot/events/replan.h \
+ knot/nameserver/axfr.c knot/nameserver/axfr.h \
+ knot/nameserver/chaos.c knot/nameserver/chaos.h \
+ knot/nameserver/internet.c knot/nameserver/internet.h \
+ knot/nameserver/ixfr.c knot/nameserver/ixfr.h \
+ knot/nameserver/log.h knot/nameserver/notify.c \
+ knot/nameserver/notify.h knot/nameserver/nsec_proofs.c \
+ knot/nameserver/nsec_proofs.h knot/nameserver/process_query.c \
knot/nameserver/process_query.h knot/nameserver/query_module.c \
knot/nameserver/query_module.h knot/nameserver/tsig_ctx.c \
knot/nameserver/tsig_ctx.h knot/nameserver/update.c \
@@ -721,14 +730,15 @@ am__libknotd_la_SOURCES_DIST = knot/catalog/catalog_db.c \
knot/nameserver/xfr.h knot/query/capture.c \
knot/query/capture.h knot/query/layer.h knot/query/query.c \
knot/query/query.h knot/query/requestor.c \
- knot/query/requestor.h knot/common/evsched.c \
- knot/common/evsched.h knot/common/fdset.c knot/common/fdset.h \
- knot/common/log.c knot/common/log.h knot/common/process.c \
- knot/common/process.h knot/common/stats.c knot/common/stats.h \
- knot/common/systemd.c knot/common/systemd.h \
- knot/common/unreachable.c knot/common/unreachable.h \
- knot/journal/journal_basic.c knot/journal/journal_basic.h \
- knot/journal/journal_metadata.c \
+ knot/query/requestor.h knot/query/tls-requestor.c \
+ knot/query/tls-requestor.h knot/common/dbus.c \
+ knot/common/dbus.h knot/common/evsched.c knot/common/evsched.h \
+ knot/common/fdset.c knot/common/fdset.h knot/common/log.c \
+ knot/common/log.h knot/common/process.c knot/common/process.h \
+ knot/common/stats.c knot/common/stats.h knot/common/systemd.c \
+ knot/common/systemd.h knot/common/unreachable.c \
+ knot/common/unreachable.h knot/journal/journal_basic.c \
+ knot/journal/journal_basic.h knot/journal/journal_metadata.c \
knot/journal/journal_metadata.h knot/journal/journal_read.c \
knot/journal/journal_read.h knot/journal/journal_write.c \
knot/journal/journal_write.h knot/journal/knot_lmdb.c \
@@ -774,7 +784,8 @@ am__libknotd_la_SOURCES_DIST = knot/catalog/catalog_db.c \
knot/modules/onlinesign/nsec_next.h knot/modules/probe/probe.c \
knot/modules/queryacl/queryacl.c knot/modules/rrl/rrl.c \
knot/modules/rrl/functions.c knot/modules/rrl/functions.h \
- knot/modules/stats/stats.c \
+ knot/modules/rrl/kru-generic.c knot/modules/rrl/kru-avx2.c \
+ knot/modules/rrl/kru.h knot/modules/stats/stats.c \
knot/modules/synthrecord/synthrecord.c \
knot/modules/whoami/whoami.c
@ENABLE_QUIC_TRUE@am__objects_3 = \
@@ -801,7 +812,9 @@ am__objects_18 = knot/modules/probe/libknotd_la-probe.lo
am__objects_20 = knot/modules/queryacl/libknotd_la-queryacl.lo
@STATIC_MODULE_queryacl_TRUE@am__objects_21 = $(am__objects_20)
am__objects_22 = knot/modules/rrl/libknotd_la-rrl.lo \
- knot/modules/rrl/libknotd_la-functions.lo
+ knot/modules/rrl/libknotd_la-functions.lo \
+ knot/modules/rrl/libknotd_la-kru-generic.lo \
+ knot/modules/rrl/libknotd_la-kru-avx2.lo
@STATIC_MODULE_rrl_TRUE@am__objects_23 = $(am__objects_22)
am__objects_24 = knot/modules/stats/libknotd_la-stats.lo
@STATIC_MODULE_stats_TRUE@am__objects_25 = $(am__objects_24)
@@ -850,6 +863,7 @@ am_libknotd_la_OBJECTS = knot/catalog/libknotd_la-catalog_db.lo \
knot/events/handlers/libknotd_la-notify.lo \
knot/events/handlers/libknotd_la-refresh.lo \
knot/events/handlers/libknotd_la-update.lo \
+ knot/events/handlers/libknotd_la-validate.lo \
knot/events/libknotd_la-replan.lo \
knot/nameserver/libknotd_la-axfr.lo \
knot/nameserver/libknotd_la-chaos.lo \
@@ -865,6 +879,8 @@ am_libknotd_la_OBJECTS = knot/catalog/libknotd_la-catalog_db.lo \
knot/query/libknotd_la-capture.lo \
knot/query/libknotd_la-query.lo \
knot/query/libknotd_la-requestor.lo \
+ knot/query/libknotd_la-tls-requestor.lo \
+ knot/common/libknotd_la-dbus.lo \
knot/common/libknotd_la-evsched.lo \
knot/common/libknotd_la-fdset.lo \
knot/common/libknotd_la-log.lo \
@@ -921,12 +937,11 @@ libknotd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(libknotd_la_LDFLAGS) $(LDFLAGS) -o $@
@HAVE_DAEMON_TRUE@am_libknotd_la_rpath =
-@EMBEDDED_LIBNGTCP2_TRUE@@HAVE_LIBUTILS_TRUE@am__DEPENDENCIES_12 = $(am__DEPENDENCIES_6)
+@EMBEDDED_LIBNGTCP2_TRUE@@HAVE_LIBUTILS_TRUE@am__DEPENDENCIES_13 = $(am__DEPENDENCIES_6)
@HAVE_LIBUTILS_TRUE@libknotus_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@HAVE_LIBUTILS_TRUE@ $(am__DEPENDENCIES_1) \
@HAVE_LIBUTILS_TRUE@ $(am__DEPENDENCIES_1) \
-@HAVE_LIBUTILS_TRUE@ $(am__DEPENDENCIES_1) \
-@HAVE_LIBUTILS_TRUE@ $(am__DEPENDENCIES_12)
+@HAVE_LIBUTILS_TRUE@ $(am__DEPENDENCIES_13)
am__libknotus_la_SOURCES_DIST = utils/common/exec.c \
utils/common/exec.h utils/common/hex.c utils/common/hex.h \
utils/common/https.c utils/common/https.h \
@@ -972,17 +987,17 @@ libzscanner_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
am__kcatalogprint_SOURCES_DIST = utils/kcatalogprint/main.c
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@am_kcatalogprint_OBJECTS = utils/kcatalogprint/kcatalogprint-main.$(OBJEXT)
kcatalogprint_OBJECTS = $(am_kcatalogprint_OBJECTS)
-am__DEPENDENCIES_13 = libknotd.la libknot.la libdnssec.la \
+am__DEPENDENCIES_14 = libknotd.la libknot.la libdnssec.la \
libzscanner.la $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1)
-@HAVE_LIBUTILS_TRUE@am__DEPENDENCIES_14 = libknotus.la libknot.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+@HAVE_LIBUTILS_TRUE@am__DEPENDENCIES_15 = libknotus.la libknot.la \
@HAVE_LIBUTILS_TRUE@ libdnssec.la $(am__DEPENDENCIES_3) \
@HAVE_LIBUTILS_TRUE@ $(am__DEPENDENCIES_1) \
@HAVE_LIBUTILS_TRUE@ $(am__DEPENDENCIES_1)
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@kcatalogprint_DEPENDENCIES = \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_13) \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_14)
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_14) \
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_15)
kcatalogprint_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(kcatalogprint_LDFLAGS) $(LDFLAGS) -o $@
@@ -994,22 +1009,24 @@ am__kdig_SOURCES_DIST = utils/kdig/kdig_exec.c utils/kdig/kdig_exec.h \
@HAVE_UTILS_TRUE@ utils/kdig/kdig-kdig_main.$(OBJEXT) \
@HAVE_UTILS_TRUE@ utils/kdig/kdig-kdig_params.$(OBJEXT)
kdig_OBJECTS = $(am_kdig_OBJECTS)
-@HAVE_DNSTAP_TRUE@@HAVE_UTILS_TRUE@am__DEPENDENCIES_15 = \
+@HAVE_DNSTAP_TRUE@@HAVE_UTILS_TRUE@am__DEPENDENCIES_16 = \
@HAVE_DNSTAP_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_4)
-@HAVE_UTILS_TRUE@kdig_DEPENDENCIES = $(am__DEPENDENCIES_14) \
-@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_15)
+@HAVE_UTILS_TRUE@kdig_DEPENDENCIES = $(am__DEPENDENCIES_15) \
+@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_16)
am__keymgr_SOURCES_DIST = utils/keymgr/bind_privkey.c \
utils/keymgr/bind_privkey.h utils/keymgr/functions.c \
- utils/keymgr/functions.h utils/keymgr/offline_ksk.c \
+ utils/keymgr/functions.h utils/keymgr/keystore.c \
+ utils/keymgr/keystore.h utils/keymgr/offline_ksk.c \
utils/keymgr/offline_ksk.h utils/keymgr/main.c
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@am_keymgr_OBJECTS = utils/keymgr/keymgr-bind_privkey.$(OBJEXT) \
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ utils/keymgr/keymgr-functions.$(OBJEXT) \
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ utils/keymgr/keymgr-keystore.$(OBJEXT) \
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ utils/keymgr/keymgr-offline_ksk.$(OBJEXT) \
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ utils/keymgr/keymgr-main.$(OBJEXT)
keymgr_OBJECTS = $(am_keymgr_OBJECTS)
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@keymgr_DEPENDENCIES = \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_13) \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_14)
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_14) \
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_15)
keymgr_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(keymgr_LDFLAGS) $(LDFLAGS) -o $@
@@ -1023,14 +1040,14 @@ am__khost_SOURCES_DIST = utils/kdig/kdig_exec.c utils/kdig/kdig_exec.h \
@HAVE_UTILS_TRUE@ utils/khost/khost-khost_main.$(OBJEXT) \
@HAVE_UTILS_TRUE@ utils/khost/khost-khost_params.$(OBJEXT)
khost_OBJECTS = $(am_khost_OBJECTS)
-@HAVE_UTILS_TRUE@khost_DEPENDENCIES = $(am__DEPENDENCIES_14) \
-@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_15)
+@HAVE_UTILS_TRUE@khost_DEPENDENCIES = $(am__DEPENDENCIES_15) \
+@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_16)
am__kjournalprint_SOURCES_DIST = utils/kjournalprint/main.c
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@am_kjournalprint_OBJECTS = utils/kjournalprint/kjournalprint-main.$(OBJEXT)
kjournalprint_OBJECTS = $(am_kjournalprint_OBJECTS)
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@kjournalprint_DEPENDENCIES = \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_13) \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_14)
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_14) \
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_15)
kjournalprint_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(kjournalprint_LDFLAGS) $(LDFLAGS) -o $@
@@ -1043,8 +1060,8 @@ am__knotc_SOURCES_DIST = utils/knotc/commands.c utils/knotc/commands.h \
@HAVE_DAEMON_TRUE@ utils/knotc/knotc-process.$(OBJEXT) \
@HAVE_DAEMON_TRUE@ utils/knotc/knotc-main.$(OBJEXT)
knotc_OBJECTS = $(am_knotc_OBJECTS)
-@HAVE_DAEMON_TRUE@knotc_DEPENDENCIES = $(am__DEPENDENCIES_13) \
-@HAVE_DAEMON_TRUE@ $(am__DEPENDENCIES_14)
+@HAVE_DAEMON_TRUE@knotc_DEPENDENCIES = $(am__DEPENDENCIES_14) \
+@HAVE_DAEMON_TRUE@ $(am__DEPENDENCIES_15)
knotc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(knotc_LDFLAGS) $(LDFLAGS) -o $@
@@ -1052,7 +1069,7 @@ am__knotd_SOURCES_DIST = utils/knotd/main.c
@HAVE_DAEMON_TRUE@am_knotd_OBJECTS = utils/knotd/knotd-main.$(OBJEXT)
knotd_OBJECTS = $(am_knotd_OBJECTS)
@HAVE_DAEMON_TRUE@knotd_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-@HAVE_DAEMON_TRUE@ $(am__DEPENDENCIES_13) $(am__DEPENDENCIES_1)
+@HAVE_DAEMON_TRUE@ $(am__DEPENDENCIES_14) $(am__DEPENDENCIES_1)
knotd_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(knotd_LDFLAGS) $(LDFLAGS) -o $@
@@ -1073,28 +1090,31 @@ am__knsupdate_SOURCES_DIST = utils/knsupdate/knsupdate_exec.c \
@HAVE_UTILS_TRUE@ utils/knsupdate/knsupdate-knsupdate_main.$(OBJEXT) \
@HAVE_UTILS_TRUE@ utils/knsupdate/knsupdate-knsupdate_params.$(OBJEXT)
knsupdate_OBJECTS = $(am_knsupdate_OBJECTS)
-@HAVE_UTILS_TRUE@knsupdate_DEPENDENCIES = $(am__DEPENDENCIES_14) \
+@HAVE_UTILS_TRUE@knsupdate_DEPENDENCIES = $(am__DEPENDENCIES_15) \
@HAVE_UTILS_TRUE@ libzscanner.la
am__kxdpgun_SOURCES_DIST = utils/kxdpgun/ip_route.c \
utils/kxdpgun/ip_route.h utils/kxdpgun/load_queries.c \
- utils/kxdpgun/load_queries.h utils/kxdpgun/main.c
+ utils/kxdpgun/load_queries.h utils/kxdpgun/main.c \
+ utils/kxdpgun/main.h utils/kxdpgun/stats.c \
+ utils/kxdpgun/stats.h
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@am_kxdpgun_OBJECTS = utils/kxdpgun/kxdpgun-ip_route.$(OBJEXT) \
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ utils/kxdpgun/kxdpgun-load_queries.$(OBJEXT) \
-@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ utils/kxdpgun/kxdpgun-main.$(OBJEXT)
+@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ utils/kxdpgun/kxdpgun-main.$(OBJEXT) \
+@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ utils/kxdpgun/kxdpgun-stats.$(OBJEXT)
kxdpgun_OBJECTS = $(am_kxdpgun_OBJECTS)
-@ENABLE_QUIC_TRUE@@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@am__DEPENDENCIES_16 = $(am__DEPENDENCIES_1)
+@ENABLE_QUIC_TRUE@@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@am__DEPENDENCIES_17 = $(am__DEPENDENCIES_1)
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@kxdpgun_DEPENDENCIES = libknot.la \
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_3) \
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_1) \
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_1) \
-@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_16)
+@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_17)
am__kzonecheck_SOURCES_DIST = utils/kzonecheck/main.c \
utils/kzonecheck/zone_check.c utils/kzonecheck/zone_check.h
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@am_kzonecheck_OBJECTS = utils/kzonecheck/kzonecheck-main.$(OBJEXT) \
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ utils/kzonecheck/kzonecheck-zone_check.$(OBJEXT)
kzonecheck_OBJECTS = $(am_kzonecheck_OBJECTS)
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@kzonecheck_DEPENDENCIES = \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_13)
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_14)
kzonecheck_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(kzonecheck_LDFLAGS) $(LDFLAGS) -o $@
@@ -1102,8 +1122,8 @@ am__kzonesign_SOURCES_DIST = utils/kzonesign/main.c
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@am_kzonesign_OBJECTS = utils/kzonesign/kzonesign-main.$(OBJEXT)
kzonesign_OBJECTS = $(am_kzonesign_OBJECTS)
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@kzonesign_DEPENDENCIES = \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_13) \
-@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_14)
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_14) \
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ $(am__DEPENDENCIES_15)
kzonesign_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(kzonesign_LDFLAGS) $(LDFLAGS) -o $@
@@ -1198,6 +1218,7 @@ am__depfiles_remade = contrib/$(DEPDIR)/libcontrib_la-base32hex.Plo \
knot/catalog/$(DEPDIR)/libknotd_la-catalog_update.Plo \
knot/catalog/$(DEPDIR)/libknotd_la-generate.Plo \
knot/catalog/$(DEPDIR)/libknotd_la-interpret.Plo \
+ knot/common/$(DEPDIR)/libknotd_la-dbus.Plo \
knot/common/$(DEPDIR)/libknotd_la-evsched.Plo \
knot/common/$(DEPDIR)/libknotd_la-fdset.Plo \
knot/common/$(DEPDIR)/libknotd_la-log.Plo \
@@ -1245,6 +1266,7 @@ am__depfiles_remade = contrib/$(DEPDIR)/libcontrib_la-base32hex.Plo \
knot/events/handlers/$(DEPDIR)/libknotd_la-notify.Plo \
knot/events/handlers/$(DEPDIR)/libknotd_la-refresh.Plo \
knot/events/handlers/$(DEPDIR)/libknotd_la-update.Plo \
+ knot/events/handlers/$(DEPDIR)/libknotd_la-validate.Plo \
knot/journal/$(DEPDIR)/libknotd_la-journal_basic.Plo \
knot/journal/$(DEPDIR)/libknotd_la-journal_metadata.Plo \
knot/journal/$(DEPDIR)/libknotd_la-journal_read.Plo \
@@ -1274,8 +1296,12 @@ am__depfiles_remade = contrib/$(DEPDIR)/libcontrib_la-base32hex.Plo \
knot/modules/queryacl/$(DEPDIR)/la-queryacl.Plo \
knot/modules/queryacl/$(DEPDIR)/libknotd_la-queryacl.Plo \
knot/modules/rrl/$(DEPDIR)/la-functions.Plo \
+ knot/modules/rrl/$(DEPDIR)/la-kru-avx2.Plo \
+ knot/modules/rrl/$(DEPDIR)/la-kru-generic.Plo \
knot/modules/rrl/$(DEPDIR)/la-rrl.Plo \
knot/modules/rrl/$(DEPDIR)/libknotd_la-functions.Plo \
+ knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-avx2.Plo \
+ knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-generic.Plo \
knot/modules/rrl/$(DEPDIR)/libknotd_la-rrl.Plo \
knot/modules/stats/$(DEPDIR)/la-stats.Plo \
knot/modules/stats/$(DEPDIR)/libknotd_la-stats.Plo \
@@ -1298,6 +1324,7 @@ am__depfiles_remade = contrib/$(DEPDIR)/libcontrib_la-base32hex.Plo \
knot/query/$(DEPDIR)/libknotd_la-query.Plo \
knot/query/$(DEPDIR)/libknotd_la-quic-requestor.Plo \
knot/query/$(DEPDIR)/libknotd_la-requestor.Plo \
+ knot/query/$(DEPDIR)/libknotd_la-tls-requestor.Plo \
knot/server/$(DEPDIR)/libknotd_la-dthreads.Plo \
knot/server/$(DEPDIR)/libknotd_la-handler.Plo \
knot/server/$(DEPDIR)/libknotd_la-proxyv2.Plo \
@@ -1378,6 +1405,8 @@ am__depfiles_remade = contrib/$(DEPDIR)/libcontrib_la-base32hex.Plo \
libknot/probe/$(DEPDIR)/la-probe.Plo \
libknot/quic/$(DEPDIR)/la-quic.Plo \
libknot/quic/$(DEPDIR)/la-quic_conn.Plo \
+ libknot/quic/$(DEPDIR)/la-tls.Plo \
+ libknot/quic/$(DEPDIR)/la-tls_common.Plo \
libknot/rrtype/$(DEPDIR)/la-naptr.Plo \
libknot/rrtype/$(DEPDIR)/la-opt.Plo \
libknot/rrtype/$(DEPDIR)/la-tsig.Plo \
@@ -1417,6 +1446,7 @@ am__depfiles_remade = contrib/$(DEPDIR)/libcontrib_la-base32hex.Plo \
utils/kdig/$(DEPDIR)/khost-kdig_params.Po \
utils/keymgr/$(DEPDIR)/keymgr-bind_privkey.Po \
utils/keymgr/$(DEPDIR)/keymgr-functions.Po \
+ utils/keymgr/$(DEPDIR)/keymgr-keystore.Po \
utils/keymgr/$(DEPDIR)/keymgr-main.Po \
utils/keymgr/$(DEPDIR)/keymgr-offline_ksk.Po \
utils/khost/$(DEPDIR)/khost-khost_main.Po \
@@ -1435,6 +1465,7 @@ am__depfiles_remade = contrib/$(DEPDIR)/libcontrib_la-base32hex.Plo \
utils/kxdpgun/$(DEPDIR)/kxdpgun-ip_route.Po \
utils/kxdpgun/$(DEPDIR)/kxdpgun-load_queries.Po \
utils/kxdpgun/$(DEPDIR)/kxdpgun-main.Po \
+ utils/kxdpgun/$(DEPDIR)/kxdpgun-stats.Po \
utils/kzonecheck/$(DEPDIR)/kzonecheck-main.Po \
utils/kzonecheck/$(DEPDIR)/kzonecheck-zone_check.Po \
utils/kzonesign/$(DEPDIR)/kzonesign-main.Po
@@ -1525,7 +1556,8 @@ am__nobase_include_libknot_HEADERS_DIST = libknot/attribute.h \
libknot/db/db_trie.h libknot/packet/compr.h \
libknot/packet/pkt.h libknot/packet/rrset-wire.h \
libknot/packet/wire.h libknot/probe/data.h \
- libknot/probe/probe.h libknot/rdata.h libknot/rdataset.h \
+ libknot/probe/probe.h libknot/quic/tls.h \
+ libknot/quic/tls_common.h libknot/rdata.h libknot/rdataset.h \
libknot/rrset-dump.h libknot/rrset.h libknot/rrtype/dnskey.h \
libknot/rrtype/ds.h libknot/rrtype/naptr.h \
libknot/rrtype/nsec.h libknot/rrtype/nsec3.h \
@@ -1542,7 +1574,7 @@ am__nobase_include_libknot_HEADERS_DIST = libknot/attribute.h \
libknot/quic/quic_conn.h
HEADERS = $(include_libdnssec_HEADERS) $(include_libknotd_HEADERS) \
$(include_libzscanner_HEADERS) \
- $(nobase_include_libknot_HEADERS)
+ $(nobase_include_libknot_HEADERS) $(noinst_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
@@ -1748,6 +1780,8 @@ infodir = @infodir@
install_sh = @install_sh@
libbpf_CFLAGS = @libbpf_CFLAGS@
libbpf_LIBS = @libbpf_LIBS@
+libdbus_CFLAGS = @libdbus_CFLAGS@
+libdbus_LIBS = @libdbus_LIBS@
libdir = @libdir@
libdnssec_SONAME = @libdnssec_SONAME@
libdnssec_SOVERSION = @libdnssec_SOVERSION@
@@ -1759,8 +1793,6 @@ libfstrm_CFLAGS = @libfstrm_CFLAGS@
libfstrm_LIBS = @libfstrm_LIBS@
libidn2_CFLAGS = @libidn2_CFLAGS@
libidn2_LIBS = @libidn2_LIBS@
-libidn_CFLAGS = @libidn_CFLAGS@
-libidn_LIBS = @libidn_LIBS@
libknot_SONAME = @libknot_SONAME@
libknot_SOVERSION = @libknot_SOVERSION@
libknot_VERSION_INFO = @libknot_VERSION_INFO@
@@ -1778,7 +1810,6 @@ libprotobuf_c_CFLAGS = @libprotobuf_c_CFLAGS@
libprotobuf_c_LIBS = @libprotobuf_c_LIBS@
liburcu_CFLAGS = @liburcu_CFLAGS@
liburcu_LIBS = @liburcu_LIBS@
-liburcu_PKGCONFIG = @liburcu_PKGCONFIG@
libxdp_CFLAGS = @libxdp_CFLAGS@
libxdp_LIBS = @libxdp_LIBS@
libzscanner_SONAME = @libzscanner_SONAME@
@@ -1828,9 +1859,9 @@ EXTRA_DIST = contrib/licenses/0BSD contrib/licenses/BSD-3-Clause \
contrib/musl/LICENSE contrib/libngtcp2/LICENSE \
contrib/openbsd/LICENSE contrib/ucw/LICENSE \
contrib/url-parser/LICENSE contrib/url-parser/README.md \
- contrib/dnstap/dnstap.proto libzscanner/scanner.rl \
- libzscanner/scanner_body.rl libzscanner/scanner.c.g2 \
- libzscanner/scanner.c.t0 \
+ contrib/dnstap/dnstap.proto libdnssec/sample_keys.h \
+ libzscanner/scanner.rl libzscanner/scanner_body.rl \
+ libzscanner/scanner.c.g2 libzscanner/scanner.c.t0 \
knot/modules/authsignal/authsignal.rst \
knot/modules/cookies/cookies.rst \
knot/modules/dnsproxy/dnsproxy.rst \
@@ -1846,7 +1877,7 @@ CLEANFILES = $(am__append_5) libzscanner/scanner.c
BUILT_SOURCES = $(am__append_4) libzscanner/scanner.c
lib_LTLIBRARIES = libdnssec.la libknot.la libzscanner.la
noinst_LTLIBRARIES = libcontrib.la $(am__append_3) $(am__append_6) \
- $(am__append_19) $(am__append_51)
+ $(am__append_19) $(am__append_52)
pkgconfig_DATA = libdnssec.pc libknot.pc libzscanner.pc \
$(am__append_20)
libcontrib_la_CPPFLAGS = $(AM_CPPFLAGS) $(CFLAG_VISIBILITY) \
@@ -1856,6 +1887,7 @@ libcontrib_la_LIBADD = $(pthread_LIBS)
libcontrib_LIBS = libcontrib.la $(am__append_2)
libcontrib_la_SOURCES = \
contrib/asan.h \
+ contrib/atomic.h \
contrib/base32hex.c \
contrib/base32hex.h \
contrib/base64.c \
@@ -2118,25 +2150,26 @@ nobase_include_libknot_HEADERS = libknot/attribute.h libknot/codes.h \
libknot/db/db.h libknot/db/db_lmdb.h libknot/db/db_trie.h \
libknot/packet/compr.h libknot/packet/pkt.h \
libknot/packet/rrset-wire.h libknot/packet/wire.h \
- libknot/probe/data.h libknot/probe/probe.h libknot/rdata.h \
- libknot/rdataset.h libknot/rrset-dump.h libknot/rrset.h \
- libknot/rrtype/dnskey.h libknot/rrtype/ds.h \
- libknot/rrtype/naptr.h libknot/rrtype/nsec.h \
- libknot/rrtype/nsec3.h libknot/rrtype/nsec3param.h \
- libknot/rrtype/opt.h libknot/rrtype/rdname.h \
- libknot/rrtype/rrsig.h libknot/rrtype/soa.h \
- libknot/rrtype/svcb.h libknot/rrtype/tsig.h \
- libknot/rrtype/zonemd.h libknot/tsig-op.h libknot/tsig.h \
- libknot/wire.h libknot/yparser/yparser.h \
- libknot/yparser/ypformat.h libknot/yparser/ypschema.h \
- libknot/yparser/yptrafo.h libknot/version.h \
- libknot/xdp/tcp_iobuf.h libknot/xdp.h $(am__append_11) \
- $(am__append_15)
+ libknot/probe/data.h libknot/probe/probe.h libknot/quic/tls.h \
+ libknot/quic/tls_common.h libknot/rdata.h libknot/rdataset.h \
+ libknot/rrset-dump.h libknot/rrset.h libknot/rrtype/dnskey.h \
+ libknot/rrtype/ds.h libknot/rrtype/naptr.h \
+ libknot/rrtype/nsec.h libknot/rrtype/nsec3.h \
+ libknot/rrtype/nsec3param.h libknot/rrtype/opt.h \
+ libknot/rrtype/rdname.h libknot/rrtype/rrsig.h \
+ libknot/rrtype/soa.h libknot/rrtype/svcb.h \
+ libknot/rrtype/tsig.h libknot/rrtype/zonemd.h \
+ libknot/tsig-op.h libknot/tsig.h libknot/wire.h \
+ libknot/yparser/yparser.h libknot/yparser/ypformat.h \
+ libknot/yparser/ypschema.h libknot/yparser/yptrafo.h \
+ libknot/version.h libknot/xdp/tcp_iobuf.h libknot/xdp.h \
+ $(am__append_11) $(am__append_15)
libknot_la_SOURCES = libknot/codes.c libknot/control/control.c \
libknot/cookies.c libknot/descriptor.c libknot/dname.c \
libknot/error.c libknot/db/db_lmdb.c libknot/db/db_trie.c \
libknot/packet/pkt.c libknot/packet/rrset-wire.c \
- libknot/probe/data.c libknot/probe/probe.c libknot/rdataset.c \
+ libknot/probe/data.c libknot/probe/probe.c libknot/quic/tls.c \
+ libknot/quic/tls_common.c libknot/rdataset.c \
libknot/rrset-dump.c libknot/rrset.c libknot/rrtype/naptr.c \
libknot/rrtype/opt.c libknot/rrtype/tsig.c libknot/tsig-op.c \
libknot/tsig.c libknot/yparser/yparser.c \
@@ -2166,15 +2199,15 @@ nodist_libzscanner_la_SOURCES = \
libknotd_la_CPPFLAGS = $(AM_CPPFLAGS) $(CFLAG_VISIBILITY) \
$(libkqueue_CFLAGS) $(liburcu_CFLAGS) $(lmdb_CFLAGS) \
- $(systemd_CFLAGS) $(gnutls_CFLAGS) $(libngtcp2_CFLAGS) \
+ $(systemd_CFLAGS) $(libdbus_CFLAGS) $(gnutls_CFLAGS) \
-DKNOTD_MOD_STATIC $(am__append_28) $(am__append_32)
libknotd_la_LDFLAGS = $(AM_LDFLAGS) -export-symbols-regex '^knotd_'
libknotd_la_LIBADD = $(dlopen_LIBS) $(libkqueue_LIBS) $(pthread_LIBS) \
- $(libngtcp2_LIBS) $(am__append_17) $(am__append_29) \
- $(am__append_33)
+ $(am__append_17) $(am__append_29) $(am__append_33) \
+ $(am__append_44)
libknotd_LIBS = libknotd.la libknot.la libdnssec.la libzscanner.la \
$(libcontrib_LIBS) $(liburcu_LIBS) $(lmdb_LIBS) \
- $(systemd_LIBS) $(gnutls_LIBS)
+ $(systemd_LIBS) $(libdbus_LIBS) $(gnutls_LIBS)
include_libknotddir = $(includedir)/knot
include_libknotd_HEADERS = \
@@ -2216,15 +2249,15 @@ libknotd_la_SOURCES = knot/catalog/catalog_db.c \
knot/events/handlers/flush.c \
knot/events/handlers/freeze_thaw.c knot/events/handlers/load.c \
knot/events/handlers/notify.c knot/events/handlers/refresh.c \
- knot/events/handlers/update.c knot/events/replan.c \
- knot/events/replan.h knot/nameserver/axfr.c \
- knot/nameserver/axfr.h knot/nameserver/chaos.c \
- knot/nameserver/chaos.h knot/nameserver/internet.c \
- knot/nameserver/internet.h knot/nameserver/ixfr.c \
- knot/nameserver/ixfr.h knot/nameserver/log.h \
- knot/nameserver/notify.c knot/nameserver/notify.h \
- knot/nameserver/nsec_proofs.c knot/nameserver/nsec_proofs.h \
- knot/nameserver/process_query.c \
+ knot/events/handlers/update.c knot/events/handlers/validate.c \
+ knot/events/replan.c knot/events/replan.h \
+ knot/nameserver/axfr.c knot/nameserver/axfr.h \
+ knot/nameserver/chaos.c knot/nameserver/chaos.h \
+ knot/nameserver/internet.c knot/nameserver/internet.h \
+ knot/nameserver/ixfr.c knot/nameserver/ixfr.h \
+ knot/nameserver/log.h knot/nameserver/notify.c \
+ knot/nameserver/notify.h knot/nameserver/nsec_proofs.c \
+ knot/nameserver/nsec_proofs.h knot/nameserver/process_query.c \
knot/nameserver/process_query.h knot/nameserver/query_module.c \
knot/nameserver/query_module.h knot/nameserver/tsig_ctx.c \
knot/nameserver/tsig_ctx.h knot/nameserver/update.c \
@@ -2232,14 +2265,15 @@ libknotd_la_SOURCES = knot/catalog/catalog_db.c \
knot/nameserver/xfr.h knot/query/capture.c \
knot/query/capture.h knot/query/layer.h knot/query/query.c \
knot/query/query.h knot/query/requestor.c \
- knot/query/requestor.h knot/common/evsched.c \
- knot/common/evsched.h knot/common/fdset.c knot/common/fdset.h \
- knot/common/log.c knot/common/log.h knot/common/process.c \
- knot/common/process.h knot/common/stats.c knot/common/stats.h \
- knot/common/systemd.c knot/common/systemd.h \
- knot/common/unreachable.c knot/common/unreachable.h \
- knot/journal/journal_basic.c knot/journal/journal_basic.h \
- knot/journal/journal_metadata.c \
+ knot/query/requestor.h knot/query/tls-requestor.c \
+ knot/query/tls-requestor.h knot/common/dbus.c \
+ knot/common/dbus.h knot/common/evsched.c knot/common/evsched.h \
+ knot/common/fdset.c knot/common/fdset.h knot/common/log.c \
+ knot/common/log.h knot/common/process.c knot/common/process.h \
+ knot/common/stats.c knot/common/stats.h knot/common/systemd.c \
+ knot/common/systemd.h knot/common/unreachable.c \
+ knot/common/unreachable.h knot/journal/journal_basic.c \
+ knot/journal/journal_basic.h knot/journal/journal_metadata.c \
knot/journal/journal_metadata.h knot/journal/journal_read.c \
knot/journal/journal_read.h knot/journal/journal_write.c \
knot/journal/journal_write.h knot/journal/knot_lmdb.c \
@@ -2276,15 +2310,15 @@ libknotd_la_SOURCES = knot/catalog/catalog_db.c \
$(am__append_21) $(am__append_23) $(am__append_25) \
$(am__append_27) $(am__append_31) $(am__append_35) \
$(am__append_37) $(am__append_39) $(am__append_41) \
- $(am__append_43) $(am__append_45) $(am__append_47) \
- $(am__append_49)
+ $(am__append_43) $(am__append_46) $(am__append_48) \
+ $(am__append_50)
KNOTD_MOD_CPPFLAGS = $(AM_CPPFLAGS) $(CFLAG_VISIBILITY)
KNOTD_MOD_LDFLAGS = $(AM_LDFLAGS) -module -shared -avoid-version
pkglib_LTLIBRARIES = $(am__append_22) $(am__append_24) \
$(am__append_26) $(am__append_30) $(am__append_34) \
$(am__append_36) $(am__append_38) $(am__append_40) \
- $(am__append_42) $(am__append_44) $(am__append_46) \
- $(am__append_48) $(am__append_50)
+ $(am__append_42) $(am__append_45) $(am__append_47) \
+ $(am__append_49) $(am__append_51)
knot_modules_authsignal_la_SOURCES = knot/modules/authsignal/authsignal.c
@SHARED_MODULE_authsignal_TRUE@knot_modules_authsignal_la_LDFLAGS = $(KNOTD_MOD_LDFLAGS)
@SHARED_MODULE_authsignal_TRUE@knot_modules_authsignal_la_CPPFLAGS = $(KNOTD_MOD_CPPFLAGS)
@@ -2325,11 +2359,15 @@ knot_modules_queryacl_la_SOURCES = knot/modules/queryacl/queryacl.c
@SHARED_MODULE_queryacl_TRUE@knot_modules_queryacl_la_CPPFLAGS = $(KNOTD_MOD_CPPFLAGS)
knot_modules_rrl_la_SOURCES = knot/modules/rrl/rrl.c \
knot/modules/rrl/functions.c \
- knot/modules/rrl/functions.h
+ knot/modules/rrl/functions.h \
+ knot/modules/rrl/kru-generic.c \
+ knot/modules/rrl/kru-avx2.c \
+ knot/modules/rrl/kru.h
+noinst_HEADERS = knot/modules/rrl/kru.inc.c
@SHARED_MODULE_rrl_TRUE@knot_modules_rrl_la_LDFLAGS = $(KNOTD_MOD_LDFLAGS)
@SHARED_MODULE_rrl_TRUE@knot_modules_rrl_la_CPPFLAGS = $(KNOTD_MOD_CPPFLAGS)
-@SHARED_MODULE_rrl_TRUE@knot_modules_rrl_la_LIBADD = $(libcontrib_LIBS)
+@SHARED_MODULE_rrl_TRUE@knot_modules_rrl_la_LIBADD = $(libcontrib_LIBS) $(math_LIBS)
knot_modules_stats_la_SOURCES = knot/modules/stats/stats.c
@SHARED_MODULE_stats_TRUE@knot_modules_stats_la_LDFLAGS = $(KNOTD_MOD_LDFLAGS)
@SHARED_MODULE_stats_TRUE@knot_modules_stats_la_CPPFLAGS = $(KNOTD_MOD_CPPFLAGS)
@@ -2350,7 +2388,7 @@ knot_modules_whoami_la_SOURCES = knot/modules/whoami/whoami.c
@HAVE_LIBUTILS_TRUE@libknotus_la_LDFLAGS = $(AM_LDFLAGS) $(LDFLAG_EXCLUDE_LIBS)
@HAVE_LIBUTILS_TRUE@libknotus_la_LIBADD = $(libidn2_LIBS) \
@HAVE_LIBUTILS_TRUE@ $(libidn_LIBS) $(libnghttp2_LIBS) \
-@HAVE_LIBUTILS_TRUE@ $(libngtcp2_LIBS) $(am__append_52)
+@HAVE_LIBUTILS_TRUE@ $(libngtcp2_LIBS) $(am__append_53)
@HAVE_LIBUTILS_TRUE@libknotus_LIBS = libknotus.la libknot.la libdnssec.la $(libcontrib_LIBS) \
@HAVE_LIBUTILS_TRUE@ $(gnutls_LIBS) $(libedit_LIBS)
@@ -2413,11 +2451,11 @@ knot_modules_whoami_la_SOURCES = knot/modules/whoami/whoami.c
@HAVE_UTILS_TRUE@ utils/knsupdate/knsupdate_params.h
@HAVE_UTILS_TRUE@kdig_CPPFLAGS = $(libknotus_la_CPPFLAGS) \
-@HAVE_UTILS_TRUE@ $(am__append_54)
-@HAVE_UTILS_TRUE@kdig_LDADD = $(libknotus_LIBS) $(am__append_55)
+@HAVE_UTILS_TRUE@ $(am__append_55)
+@HAVE_UTILS_TRUE@kdig_LDADD = $(libknotus_LIBS) $(am__append_56)
@HAVE_UTILS_TRUE@khost_CPPFLAGS = $(libknotus_la_CPPFLAGS) \
-@HAVE_UTILS_TRUE@ $(am__append_56)
-@HAVE_UTILS_TRUE@khost_LDADD = $(libknotus_LIBS) $(am__append_57)
+@HAVE_UTILS_TRUE@ $(am__append_57)
+@HAVE_UTILS_TRUE@khost_LDADD = $(libknotus_LIBS) $(am__append_58)
@HAVE_UTILS_TRUE@knsec3hash_CPPFLAGS = $(libknotus_la_CPPFLAGS)
@HAVE_UTILS_TRUE@knsec3hash_LDADD = libknot.la libdnssec.la $(libcontrib_LIBS)
@HAVE_UTILS_TRUE@knsupdate_CPPFLAGS = $(libknotus_la_CPPFLAGS)
@@ -2427,17 +2465,20 @@ knot_modules_whoami_la_SOURCES = knot/modules/whoami/whoami.c
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ utils/kxdpgun/ip_route.h \
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ utils/kxdpgun/load_queries.c \
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ utils/kxdpgun/load_queries.h \
-@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ utils/kxdpgun/main.c
+@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ utils/kxdpgun/main.c \
+@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ utils/kxdpgun/main.h \
+@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ utils/kxdpgun/stats.c \
+@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ utils/kxdpgun/stats.h
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@kxdpgun_CPPFLAGS = \
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(libknotus_la_CPPFLAGS) \
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(libmnl_CFLAGS) \
-@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(am__append_59)
+@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(am__append_60)
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@kxdpgun_LDADD = libknot.la \
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(libcontrib_LIBS) \
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(libmnl_LIBS) \
@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(pthread_LIBS) \
-@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(am__append_60)
+@ENABLE_XDP_TRUE@@HAVE_UTILS_TRUE@ $(am__append_61)
@HAVE_DAEMON_TRUE@knotc_SOURCES = \
@HAVE_DAEMON_TRUE@ utils/knotc/commands.c \
@HAVE_DAEMON_TRUE@ utils/knotc/commands.h \
@@ -2469,6 +2510,8 @@ knot_modules_whoami_la_SOURCES = knot/modules/whoami/whoami.c
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ utils/keymgr/bind_privkey.h \
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ utils/keymgr/functions.c \
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ utils/keymgr/functions.h \
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ utils/keymgr/keystore.c \
+@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ utils/keymgr/keystore.h \
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ utils/keymgr/offline_ksk.c \
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ utils/keymgr/offline_ksk.h \
@HAVE_DAEMON_TRUE@@HAVE_UTILS_TRUE@ utils/keymgr/main.c
@@ -2885,6 +2928,10 @@ knot/modules/rrl/la-rrl.lo: knot/modules/rrl/$(am__dirstamp) \
knot/modules/rrl/$(DEPDIR)/$(am__dirstamp)
knot/modules/rrl/la-functions.lo: knot/modules/rrl/$(am__dirstamp) \
knot/modules/rrl/$(DEPDIR)/$(am__dirstamp)
+knot/modules/rrl/la-kru-generic.lo: knot/modules/rrl/$(am__dirstamp) \
+ knot/modules/rrl/$(DEPDIR)/$(am__dirstamp)
+knot/modules/rrl/la-kru-avx2.lo: knot/modules/rrl/$(am__dirstamp) \
+ knot/modules/rrl/$(DEPDIR)/$(am__dirstamp)
knot/modules/rrl.la: $(knot_modules_rrl_la_OBJECTS) $(knot_modules_rrl_la_DEPENDENCIES) $(EXTRA_knot_modules_rrl_la_DEPENDENCIES) knot/modules/$(am__dirstamp)
$(AM_V_CCLD)$(knot_modules_rrl_la_LINK) $(am_knot_modules_rrl_la_rpath) $(knot_modules_rrl_la_OBJECTS) $(knot_modules_rrl_la_LIBADD) $(LIBS)
@@ -3347,6 +3394,16 @@ libknot/probe/la-data.lo: libknot/probe/$(am__dirstamp) \
libknot/probe/$(DEPDIR)/$(am__dirstamp)
libknot/probe/la-probe.lo: libknot/probe/$(am__dirstamp) \
libknot/probe/$(DEPDIR)/$(am__dirstamp)
+libknot/quic/$(am__dirstamp):
+ @$(MKDIR_P) libknot/quic
+ @: > libknot/quic/$(am__dirstamp)
+libknot/quic/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) libknot/quic/$(DEPDIR)
+ @: > libknot/quic/$(DEPDIR)/$(am__dirstamp)
+libknot/quic/la-tls.lo: libknot/quic/$(am__dirstamp) \
+ libknot/quic/$(DEPDIR)/$(am__dirstamp)
+libknot/quic/la-tls_common.lo: libknot/quic/$(am__dirstamp) \
+ libknot/quic/$(DEPDIR)/$(am__dirstamp)
libknot/la-rdataset.lo: libknot/$(am__dirstamp) \
libknot/$(DEPDIR)/$(am__dirstamp)
libknot/la-rrset-dump.lo: libknot/$(am__dirstamp) \
@@ -3403,12 +3460,6 @@ libknot/xdp/la-tcp.lo: libknot/xdp/$(am__dirstamp) \
libknot/xdp/$(DEPDIR)/$(am__dirstamp)
libknot/xdp/la-xdp.lo: libknot/xdp/$(am__dirstamp) \
libknot/xdp/$(DEPDIR)/$(am__dirstamp)
-libknot/quic/$(am__dirstamp):
- @$(MKDIR_P) libknot/quic
- @: > libknot/quic/$(am__dirstamp)
-libknot/quic/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) libknot/quic/$(DEPDIR)
- @: > libknot/quic/$(DEPDIR)/$(am__dirstamp)
libknot/quic/la-quic.lo: libknot/quic/$(am__dirstamp) \
libknot/quic/$(DEPDIR)/$(am__dirstamp)
libknot/quic/la-quic_conn.lo: libknot/quic/$(am__dirstamp) \
@@ -3561,6 +3612,9 @@ knot/events/handlers/libknotd_la-refresh.lo: \
knot/events/handlers/libknotd_la-update.lo: \
knot/events/handlers/$(am__dirstamp) \
knot/events/handlers/$(DEPDIR)/$(am__dirstamp)
+knot/events/handlers/libknotd_la-validate.lo: \
+ knot/events/handlers/$(am__dirstamp) \
+ knot/events/handlers/$(DEPDIR)/$(am__dirstamp)
knot/events/libknotd_la-replan.lo: knot/events/$(am__dirstamp) \
knot/events/$(DEPDIR)/$(am__dirstamp)
knot/nameserver/$(am__dirstamp):
@@ -3610,12 +3664,16 @@ knot/query/libknotd_la-query.lo: knot/query/$(am__dirstamp) \
knot/query/$(DEPDIR)/$(am__dirstamp)
knot/query/libknotd_la-requestor.lo: knot/query/$(am__dirstamp) \
knot/query/$(DEPDIR)/$(am__dirstamp)
+knot/query/libknotd_la-tls-requestor.lo: knot/query/$(am__dirstamp) \
+ knot/query/$(DEPDIR)/$(am__dirstamp)
knot/common/$(am__dirstamp):
@$(MKDIR_P) knot/common
@: > knot/common/$(am__dirstamp)
knot/common/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) knot/common/$(DEPDIR)
@: > knot/common/$(DEPDIR)/$(am__dirstamp)
+knot/common/libknotd_la-dbus.lo: knot/common/$(am__dirstamp) \
+ knot/common/$(DEPDIR)/$(am__dirstamp)
knot/common/libknotd_la-evsched.lo: knot/common/$(am__dirstamp) \
knot/common/$(DEPDIR)/$(am__dirstamp)
knot/common/libknotd_la-fdset.lo: knot/common/$(am__dirstamp) \
@@ -3787,6 +3845,12 @@ knot/modules/rrl/libknotd_la-rrl.lo: knot/modules/rrl/$(am__dirstamp) \
knot/modules/rrl/libknotd_la-functions.lo: \
knot/modules/rrl/$(am__dirstamp) \
knot/modules/rrl/$(DEPDIR)/$(am__dirstamp)
+knot/modules/rrl/libknotd_la-kru-generic.lo: \
+ knot/modules/rrl/$(am__dirstamp) \
+ knot/modules/rrl/$(DEPDIR)/$(am__dirstamp)
+knot/modules/rrl/libknotd_la-kru-avx2.lo: \
+ knot/modules/rrl/$(am__dirstamp) \
+ knot/modules/rrl/$(DEPDIR)/$(am__dirstamp)
knot/modules/stats/libknotd_la-stats.lo: \
knot/modules/stats/$(am__dirstamp) \
knot/modules/stats/$(DEPDIR)/$(am__dirstamp)
@@ -3891,6 +3955,8 @@ utils/keymgr/keymgr-bind_privkey.$(OBJEXT): \
utils/keymgr/$(DEPDIR)/$(am__dirstamp)
utils/keymgr/keymgr-functions.$(OBJEXT): utils/keymgr/$(am__dirstamp) \
utils/keymgr/$(DEPDIR)/$(am__dirstamp)
+utils/keymgr/keymgr-keystore.$(OBJEXT): utils/keymgr/$(am__dirstamp) \
+ utils/keymgr/$(DEPDIR)/$(am__dirstamp)
utils/keymgr/keymgr-offline_ksk.$(OBJEXT): \
utils/keymgr/$(am__dirstamp) \
utils/keymgr/$(DEPDIR)/$(am__dirstamp)
@@ -4010,6 +4076,8 @@ utils/kxdpgun/kxdpgun-load_queries.$(OBJEXT): \
utils/kxdpgun/$(DEPDIR)/$(am__dirstamp)
utils/kxdpgun/kxdpgun-main.$(OBJEXT): utils/kxdpgun/$(am__dirstamp) \
utils/kxdpgun/$(DEPDIR)/$(am__dirstamp)
+utils/kxdpgun/kxdpgun-stats.$(OBJEXT): utils/kxdpgun/$(am__dirstamp) \
+ utils/kxdpgun/$(DEPDIR)/$(am__dirstamp)
kxdpgun$(EXEEXT): $(kxdpgun_OBJECTS) $(kxdpgun_DEPENDENCIES) $(EXTRA_kxdpgun_DEPENDENCIES)
@rm -f kxdpgun$(EXEEXT)
@@ -4252,6 +4320,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@knot/catalog/$(DEPDIR)/libknotd_la-catalog_update.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/catalog/$(DEPDIR)/libknotd_la-generate.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/catalog/$(DEPDIR)/libknotd_la-interpret.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@knot/common/$(DEPDIR)/libknotd_la-dbus.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/common/$(DEPDIR)/libknotd_la-evsched.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/common/$(DEPDIR)/libknotd_la-fdset.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/common/$(DEPDIR)/libknotd_la-log.Plo@am__quote@ # am--include-marker
@@ -4299,6 +4368,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@knot/events/handlers/$(DEPDIR)/libknotd_la-notify.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/events/handlers/$(DEPDIR)/libknotd_la-refresh.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/events/handlers/$(DEPDIR)/libknotd_la-update.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@knot/events/handlers/$(DEPDIR)/libknotd_la-validate.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/journal/$(DEPDIR)/libknotd_la-journal_basic.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/journal/$(DEPDIR)/libknotd_la-journal_metadata.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/journal/$(DEPDIR)/libknotd_la-journal_read.Plo@am__quote@ # am--include-marker
@@ -4328,8 +4398,12 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@knot/modules/queryacl/$(DEPDIR)/la-queryacl.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/modules/queryacl/$(DEPDIR)/libknotd_la-queryacl.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/modules/rrl/$(DEPDIR)/la-functions.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@knot/modules/rrl/$(DEPDIR)/la-kru-avx2.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@knot/modules/rrl/$(DEPDIR)/la-kru-generic.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/modules/rrl/$(DEPDIR)/la-rrl.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/modules/rrl/$(DEPDIR)/libknotd_la-functions.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-avx2.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-generic.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/modules/rrl/$(DEPDIR)/libknotd_la-rrl.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/modules/stats/$(DEPDIR)/la-stats.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/modules/stats/$(DEPDIR)/libknotd_la-stats.Plo@am__quote@ # am--include-marker
@@ -4352,6 +4426,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@knot/query/$(DEPDIR)/libknotd_la-query.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/query/$(DEPDIR)/libknotd_la-quic-requestor.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/query/$(DEPDIR)/libknotd_la-requestor.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@knot/query/$(DEPDIR)/libknotd_la-tls-requestor.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/server/$(DEPDIR)/libknotd_la-dthreads.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/server/$(DEPDIR)/libknotd_la-handler.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@knot/server/$(DEPDIR)/libknotd_la-proxyv2.Plo@am__quote@ # am--include-marker
@@ -4434,6 +4509,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@libknot/probe/$(DEPDIR)/la-probe.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libknot/quic/$(DEPDIR)/la-quic.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libknot/quic/$(DEPDIR)/la-quic_conn.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@libknot/quic/$(DEPDIR)/la-tls.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@libknot/quic/$(DEPDIR)/la-tls_common.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libknot/rrtype/$(DEPDIR)/la-naptr.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libknot/rrtype/$(DEPDIR)/la-opt.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libknot/rrtype/$(DEPDIR)/la-tsig.Plo@am__quote@ # am--include-marker
@@ -4473,6 +4550,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@utils/kdig/$(DEPDIR)/khost-kdig_params.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@utils/keymgr/$(DEPDIR)/keymgr-bind_privkey.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@utils/keymgr/$(DEPDIR)/keymgr-functions.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@utils/keymgr/$(DEPDIR)/keymgr-keystore.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@utils/keymgr/$(DEPDIR)/keymgr-main.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@utils/keymgr/$(DEPDIR)/keymgr-offline_ksk.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@utils/khost/$(DEPDIR)/khost-khost_main.Po@am__quote@ # am--include-marker
@@ -4491,6 +4569,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@utils/kxdpgun/$(DEPDIR)/kxdpgun-ip_route.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@utils/kxdpgun/$(DEPDIR)/kxdpgun-load_queries.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@utils/kxdpgun/$(DEPDIR)/kxdpgun-main.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@utils/kxdpgun/$(DEPDIR)/kxdpgun-stats.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@utils/kzonecheck/$(DEPDIR)/kzonecheck-main.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@utils/kzonecheck/$(DEPDIR)/kzonecheck-zone_check.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@utils/kzonesign/$(DEPDIR)/kzonesign-main.Po@am__quote@ # am--include-marker
@@ -4616,6 +4695,20 @@ knot/modules/rrl/la-functions.lo: knot/modules/rrl/functions.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(knot_modules_rrl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o knot/modules/rrl/la-functions.lo `test -f 'knot/modules/rrl/functions.c' || echo '$(srcdir)/'`knot/modules/rrl/functions.c
+knot/modules/rrl/la-kru-generic.lo: knot/modules/rrl/kru-generic.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(knot_modules_rrl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT knot/modules/rrl/la-kru-generic.lo -MD -MP -MF knot/modules/rrl/$(DEPDIR)/la-kru-generic.Tpo -c -o knot/modules/rrl/la-kru-generic.lo `test -f 'knot/modules/rrl/kru-generic.c' || echo '$(srcdir)/'`knot/modules/rrl/kru-generic.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) knot/modules/rrl/$(DEPDIR)/la-kru-generic.Tpo knot/modules/rrl/$(DEPDIR)/la-kru-generic.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='knot/modules/rrl/kru-generic.c' object='knot/modules/rrl/la-kru-generic.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(knot_modules_rrl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o knot/modules/rrl/la-kru-generic.lo `test -f 'knot/modules/rrl/kru-generic.c' || echo '$(srcdir)/'`knot/modules/rrl/kru-generic.c
+
+knot/modules/rrl/la-kru-avx2.lo: knot/modules/rrl/kru-avx2.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(knot_modules_rrl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT knot/modules/rrl/la-kru-avx2.lo -MD -MP -MF knot/modules/rrl/$(DEPDIR)/la-kru-avx2.Tpo -c -o knot/modules/rrl/la-kru-avx2.lo `test -f 'knot/modules/rrl/kru-avx2.c' || echo '$(srcdir)/'`knot/modules/rrl/kru-avx2.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) knot/modules/rrl/$(DEPDIR)/la-kru-avx2.Tpo knot/modules/rrl/$(DEPDIR)/la-kru-avx2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='knot/modules/rrl/kru-avx2.c' object='knot/modules/rrl/la-kru-avx2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(knot_modules_rrl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o knot/modules/rrl/la-kru-avx2.lo `test -f 'knot/modules/rrl/kru-avx2.c' || echo '$(srcdir)/'`knot/modules/rrl/kru-avx2.c
+
knot/modules/stats/la-stats.lo: knot/modules/stats/stats.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(knot_modules_stats_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT knot/modules/stats/la-stats.lo -MD -MP -MF knot/modules/stats/$(DEPDIR)/la-stats.Tpo -c -o knot/modules/stats/la-stats.lo `test -f 'knot/modules/stats/stats.c' || echo '$(srcdir)/'`knot/modules/stats/stats.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) knot/modules/stats/$(DEPDIR)/la-stats.Tpo knot/modules/stats/$(DEPDIR)/la-stats.Plo
@@ -5421,6 +5514,20 @@ libknot/probe/la-probe.lo: libknot/probe/probe.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknot_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libknot/probe/la-probe.lo `test -f 'libknot/probe/probe.c' || echo '$(srcdir)/'`libknot/probe/probe.c
+libknot/quic/la-tls.lo: libknot/quic/tls.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknot_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libknot/quic/la-tls.lo -MD -MP -MF libknot/quic/$(DEPDIR)/la-tls.Tpo -c -o libknot/quic/la-tls.lo `test -f 'libknot/quic/tls.c' || echo '$(srcdir)/'`libknot/quic/tls.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libknot/quic/$(DEPDIR)/la-tls.Tpo libknot/quic/$(DEPDIR)/la-tls.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libknot/quic/tls.c' object='libknot/quic/la-tls.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknot_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libknot/quic/la-tls.lo `test -f 'libknot/quic/tls.c' || echo '$(srcdir)/'`libknot/quic/tls.c
+
+libknot/quic/la-tls_common.lo: libknot/quic/tls_common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknot_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libknot/quic/la-tls_common.lo -MD -MP -MF libknot/quic/$(DEPDIR)/la-tls_common.Tpo -c -o libknot/quic/la-tls_common.lo `test -f 'libknot/quic/tls_common.c' || echo '$(srcdir)/'`libknot/quic/tls_common.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libknot/quic/$(DEPDIR)/la-tls_common.Tpo libknot/quic/$(DEPDIR)/la-tls_common.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libknot/quic/tls_common.c' object='libknot/quic/la-tls_common.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknot_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libknot/quic/la-tls_common.lo `test -f 'libknot/quic/tls_common.c' || echo '$(srcdir)/'`libknot/quic/tls_common.c
+
libknot/la-rdataset.lo: libknot/rdataset.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknot_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libknot/la-rdataset.lo -MD -MP -MF libknot/$(DEPDIR)/la-rdataset.Tpo -c -o libknot/la-rdataset.lo `test -f 'libknot/rdataset.c' || echo '$(srcdir)/'`libknot/rdataset.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libknot/$(DEPDIR)/la-rdataset.Tpo libknot/$(DEPDIR)/la-rdataset.Plo
@@ -5869,6 +5976,13 @@ knot/events/handlers/libknotd_la-update.lo: knot/events/handlers/update.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o knot/events/handlers/libknotd_la-update.lo `test -f 'knot/events/handlers/update.c' || echo '$(srcdir)/'`knot/events/handlers/update.c
+knot/events/handlers/libknotd_la-validate.lo: knot/events/handlers/validate.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT knot/events/handlers/libknotd_la-validate.lo -MD -MP -MF knot/events/handlers/$(DEPDIR)/libknotd_la-validate.Tpo -c -o knot/events/handlers/libknotd_la-validate.lo `test -f 'knot/events/handlers/validate.c' || echo '$(srcdir)/'`knot/events/handlers/validate.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) knot/events/handlers/$(DEPDIR)/libknotd_la-validate.Tpo knot/events/handlers/$(DEPDIR)/libknotd_la-validate.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='knot/events/handlers/validate.c' object='knot/events/handlers/libknotd_la-validate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o knot/events/handlers/libknotd_la-validate.lo `test -f 'knot/events/handlers/validate.c' || echo '$(srcdir)/'`knot/events/handlers/validate.c
+
knot/events/libknotd_la-replan.lo: knot/events/replan.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT knot/events/libknotd_la-replan.lo -MD -MP -MF knot/events/$(DEPDIR)/libknotd_la-replan.Tpo -c -o knot/events/libknotd_la-replan.lo `test -f 'knot/events/replan.c' || echo '$(srcdir)/'`knot/events/replan.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) knot/events/$(DEPDIR)/libknotd_la-replan.Tpo knot/events/$(DEPDIR)/libknotd_la-replan.Plo
@@ -5974,6 +6088,20 @@ knot/query/libknotd_la-requestor.lo: knot/query/requestor.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o knot/query/libknotd_la-requestor.lo `test -f 'knot/query/requestor.c' || echo '$(srcdir)/'`knot/query/requestor.c
+knot/query/libknotd_la-tls-requestor.lo: knot/query/tls-requestor.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT knot/query/libknotd_la-tls-requestor.lo -MD -MP -MF knot/query/$(DEPDIR)/libknotd_la-tls-requestor.Tpo -c -o knot/query/libknotd_la-tls-requestor.lo `test -f 'knot/query/tls-requestor.c' || echo '$(srcdir)/'`knot/query/tls-requestor.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) knot/query/$(DEPDIR)/libknotd_la-tls-requestor.Tpo knot/query/$(DEPDIR)/libknotd_la-tls-requestor.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='knot/query/tls-requestor.c' object='knot/query/libknotd_la-tls-requestor.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o knot/query/libknotd_la-tls-requestor.lo `test -f 'knot/query/tls-requestor.c' || echo '$(srcdir)/'`knot/query/tls-requestor.c
+
+knot/common/libknotd_la-dbus.lo: knot/common/dbus.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT knot/common/libknotd_la-dbus.lo -MD -MP -MF knot/common/$(DEPDIR)/libknotd_la-dbus.Tpo -c -o knot/common/libknotd_la-dbus.lo `test -f 'knot/common/dbus.c' || echo '$(srcdir)/'`knot/common/dbus.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) knot/common/$(DEPDIR)/libknotd_la-dbus.Tpo knot/common/$(DEPDIR)/libknotd_la-dbus.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='knot/common/dbus.c' object='knot/common/libknotd_la-dbus.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o knot/common/libknotd_la-dbus.lo `test -f 'knot/common/dbus.c' || echo '$(srcdir)/'`knot/common/dbus.c
+
knot/common/libknotd_la-evsched.lo: knot/common/evsched.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT knot/common/libknotd_la-evsched.lo -MD -MP -MF knot/common/$(DEPDIR)/libknotd_la-evsched.Tpo -c -o knot/common/libknotd_la-evsched.lo `test -f 'knot/common/evsched.c' || echo '$(srcdir)/'`knot/common/evsched.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) knot/common/$(DEPDIR)/libknotd_la-evsched.Tpo knot/common/$(DEPDIR)/libknotd_la-evsched.Plo
@@ -6408,6 +6536,20 @@ knot/modules/rrl/libknotd_la-functions.lo: knot/modules/rrl/functions.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o knot/modules/rrl/libknotd_la-functions.lo `test -f 'knot/modules/rrl/functions.c' || echo '$(srcdir)/'`knot/modules/rrl/functions.c
+knot/modules/rrl/libknotd_la-kru-generic.lo: knot/modules/rrl/kru-generic.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT knot/modules/rrl/libknotd_la-kru-generic.lo -MD -MP -MF knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-generic.Tpo -c -o knot/modules/rrl/libknotd_la-kru-generic.lo `test -f 'knot/modules/rrl/kru-generic.c' || echo '$(srcdir)/'`knot/modules/rrl/kru-generic.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-generic.Tpo knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-generic.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='knot/modules/rrl/kru-generic.c' object='knot/modules/rrl/libknotd_la-kru-generic.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o knot/modules/rrl/libknotd_la-kru-generic.lo `test -f 'knot/modules/rrl/kru-generic.c' || echo '$(srcdir)/'`knot/modules/rrl/kru-generic.c
+
+knot/modules/rrl/libknotd_la-kru-avx2.lo: knot/modules/rrl/kru-avx2.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT knot/modules/rrl/libknotd_la-kru-avx2.lo -MD -MP -MF knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-avx2.Tpo -c -o knot/modules/rrl/libknotd_la-kru-avx2.lo `test -f 'knot/modules/rrl/kru-avx2.c' || echo '$(srcdir)/'`knot/modules/rrl/kru-avx2.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-avx2.Tpo knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-avx2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='knot/modules/rrl/kru-avx2.c' object='knot/modules/rrl/libknotd_la-kru-avx2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o knot/modules/rrl/libknotd_la-kru-avx2.lo `test -f 'knot/modules/rrl/kru-avx2.c' || echo '$(srcdir)/'`knot/modules/rrl/kru-avx2.c
+
knot/modules/stats/libknotd_la-stats.lo: knot/modules/stats/stats.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libknotd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT knot/modules/stats/libknotd_la-stats.lo -MD -MP -MF knot/modules/stats/$(DEPDIR)/libknotd_la-stats.Tpo -c -o knot/modules/stats/libknotd_la-stats.lo `test -f 'knot/modules/stats/stats.c' || echo '$(srcdir)/'`knot/modules/stats/stats.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) knot/modules/stats/$(DEPDIR)/libknotd_la-stats.Tpo knot/modules/stats/$(DEPDIR)/libknotd_la-stats.Plo
@@ -6632,6 +6774,20 @@ utils/keymgr/keymgr-functions.obj: utils/keymgr/functions.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(keymgr_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils/keymgr/keymgr-functions.obj `if test -f 'utils/keymgr/functions.c'; then $(CYGPATH_W) 'utils/keymgr/functions.c'; else $(CYGPATH_W) '$(srcdir)/utils/keymgr/functions.c'; fi`
+utils/keymgr/keymgr-keystore.o: utils/keymgr/keystore.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(keymgr_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils/keymgr/keymgr-keystore.o -MD -MP -MF utils/keymgr/$(DEPDIR)/keymgr-keystore.Tpo -c -o utils/keymgr/keymgr-keystore.o `test -f 'utils/keymgr/keystore.c' || echo '$(srcdir)/'`utils/keymgr/keystore.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) utils/keymgr/$(DEPDIR)/keymgr-keystore.Tpo utils/keymgr/$(DEPDIR)/keymgr-keystore.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utils/keymgr/keystore.c' object='utils/keymgr/keymgr-keystore.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(keymgr_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils/keymgr/keymgr-keystore.o `test -f 'utils/keymgr/keystore.c' || echo '$(srcdir)/'`utils/keymgr/keystore.c
+
+utils/keymgr/keymgr-keystore.obj: utils/keymgr/keystore.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(keymgr_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils/keymgr/keymgr-keystore.obj -MD -MP -MF utils/keymgr/$(DEPDIR)/keymgr-keystore.Tpo -c -o utils/keymgr/keymgr-keystore.obj `if test -f 'utils/keymgr/keystore.c'; then $(CYGPATH_W) 'utils/keymgr/keystore.c'; else $(CYGPATH_W) '$(srcdir)/utils/keymgr/keystore.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) utils/keymgr/$(DEPDIR)/keymgr-keystore.Tpo utils/keymgr/$(DEPDIR)/keymgr-keystore.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utils/keymgr/keystore.c' object='utils/keymgr/keymgr-keystore.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(keymgr_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils/keymgr/keymgr-keystore.obj `if test -f 'utils/keymgr/keystore.c'; then $(CYGPATH_W) 'utils/keymgr/keystore.c'; else $(CYGPATH_W) '$(srcdir)/utils/keymgr/keystore.c'; fi`
+
utils/keymgr/keymgr-offline_ksk.o: utils/keymgr/offline_ksk.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(keymgr_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils/keymgr/keymgr-offline_ksk.o -MD -MP -MF utils/keymgr/$(DEPDIR)/keymgr-offline_ksk.Tpo -c -o utils/keymgr/keymgr-offline_ksk.o `test -f 'utils/keymgr/offline_ksk.c' || echo '$(srcdir)/'`utils/keymgr/offline_ksk.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) utils/keymgr/$(DEPDIR)/keymgr-offline_ksk.Tpo utils/keymgr/$(DEPDIR)/keymgr-offline_ksk.Po
@@ -6912,6 +7068,20 @@ utils/kxdpgun/kxdpgun-main.obj: utils/kxdpgun/main.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kxdpgun_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils/kxdpgun/kxdpgun-main.obj `if test -f 'utils/kxdpgun/main.c'; then $(CYGPATH_W) 'utils/kxdpgun/main.c'; else $(CYGPATH_W) '$(srcdir)/utils/kxdpgun/main.c'; fi`
+utils/kxdpgun/kxdpgun-stats.o: utils/kxdpgun/stats.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kxdpgun_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils/kxdpgun/kxdpgun-stats.o -MD -MP -MF utils/kxdpgun/$(DEPDIR)/kxdpgun-stats.Tpo -c -o utils/kxdpgun/kxdpgun-stats.o `test -f 'utils/kxdpgun/stats.c' || echo '$(srcdir)/'`utils/kxdpgun/stats.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) utils/kxdpgun/$(DEPDIR)/kxdpgun-stats.Tpo utils/kxdpgun/$(DEPDIR)/kxdpgun-stats.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utils/kxdpgun/stats.c' object='utils/kxdpgun/kxdpgun-stats.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kxdpgun_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils/kxdpgun/kxdpgun-stats.o `test -f 'utils/kxdpgun/stats.c' || echo '$(srcdir)/'`utils/kxdpgun/stats.c
+
+utils/kxdpgun/kxdpgun-stats.obj: utils/kxdpgun/stats.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kxdpgun_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils/kxdpgun/kxdpgun-stats.obj -MD -MP -MF utils/kxdpgun/$(DEPDIR)/kxdpgun-stats.Tpo -c -o utils/kxdpgun/kxdpgun-stats.obj `if test -f 'utils/kxdpgun/stats.c'; then $(CYGPATH_W) 'utils/kxdpgun/stats.c'; else $(CYGPATH_W) '$(srcdir)/utils/kxdpgun/stats.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) utils/kxdpgun/$(DEPDIR)/kxdpgun-stats.Tpo utils/kxdpgun/$(DEPDIR)/kxdpgun-stats.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utils/kxdpgun/stats.c' object='utils/kxdpgun/kxdpgun-stats.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kxdpgun_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils/kxdpgun/kxdpgun-stats.obj `if test -f 'utils/kxdpgun/stats.c'; then $(CYGPATH_W) 'utils/kxdpgun/stats.c'; else $(CYGPATH_W) '$(srcdir)/utils/kxdpgun/stats.c'; fi`
+
utils/kzonecheck/kzonecheck-main.o: utils/kzonecheck/main.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kzonecheck_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils/kzonecheck/kzonecheck-main.o -MD -MP -MF utils/kzonecheck/$(DEPDIR)/kzonecheck-main.Tpo -c -o utils/kzonecheck/kzonecheck-main.o `test -f 'utils/kzonecheck/main.c' || echo '$(srcdir)/'`utils/kzonecheck/main.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) utils/kzonecheck/$(DEPDIR)/kzonecheck-main.Tpo utils/kzonecheck/$(DEPDIR)/kzonecheck-main.Po
@@ -7555,6 +7725,7 @@ distclean: distclean-recursive
-rm -f knot/catalog/$(DEPDIR)/libknotd_la-catalog_update.Plo
-rm -f knot/catalog/$(DEPDIR)/libknotd_la-generate.Plo
-rm -f knot/catalog/$(DEPDIR)/libknotd_la-interpret.Plo
+ -rm -f knot/common/$(DEPDIR)/libknotd_la-dbus.Plo
-rm -f knot/common/$(DEPDIR)/libknotd_la-evsched.Plo
-rm -f knot/common/$(DEPDIR)/libknotd_la-fdset.Plo
-rm -f knot/common/$(DEPDIR)/libknotd_la-log.Plo
@@ -7602,6 +7773,7 @@ distclean: distclean-recursive
-rm -f knot/events/handlers/$(DEPDIR)/libknotd_la-notify.Plo
-rm -f knot/events/handlers/$(DEPDIR)/libknotd_la-refresh.Plo
-rm -f knot/events/handlers/$(DEPDIR)/libknotd_la-update.Plo
+ -rm -f knot/events/handlers/$(DEPDIR)/libknotd_la-validate.Plo
-rm -f knot/journal/$(DEPDIR)/libknotd_la-journal_basic.Plo
-rm -f knot/journal/$(DEPDIR)/libknotd_la-journal_metadata.Plo
-rm -f knot/journal/$(DEPDIR)/libknotd_la-journal_read.Plo
@@ -7631,8 +7803,12 @@ distclean: distclean-recursive
-rm -f knot/modules/queryacl/$(DEPDIR)/la-queryacl.Plo
-rm -f knot/modules/queryacl/$(DEPDIR)/libknotd_la-queryacl.Plo
-rm -f knot/modules/rrl/$(DEPDIR)/la-functions.Plo
+ -rm -f knot/modules/rrl/$(DEPDIR)/la-kru-avx2.Plo
+ -rm -f knot/modules/rrl/$(DEPDIR)/la-kru-generic.Plo
-rm -f knot/modules/rrl/$(DEPDIR)/la-rrl.Plo
-rm -f knot/modules/rrl/$(DEPDIR)/libknotd_la-functions.Plo
+ -rm -f knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-avx2.Plo
+ -rm -f knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-generic.Plo
-rm -f knot/modules/rrl/$(DEPDIR)/libknotd_la-rrl.Plo
-rm -f knot/modules/stats/$(DEPDIR)/la-stats.Plo
-rm -f knot/modules/stats/$(DEPDIR)/libknotd_la-stats.Plo
@@ -7655,6 +7831,7 @@ distclean: distclean-recursive
-rm -f knot/query/$(DEPDIR)/libknotd_la-query.Plo
-rm -f knot/query/$(DEPDIR)/libknotd_la-quic-requestor.Plo
-rm -f knot/query/$(DEPDIR)/libknotd_la-requestor.Plo
+ -rm -f knot/query/$(DEPDIR)/libknotd_la-tls-requestor.Plo
-rm -f knot/server/$(DEPDIR)/libknotd_la-dthreads.Plo
-rm -f knot/server/$(DEPDIR)/libknotd_la-handler.Plo
-rm -f knot/server/$(DEPDIR)/libknotd_la-proxyv2.Plo
@@ -7737,6 +7914,8 @@ distclean: distclean-recursive
-rm -f libknot/probe/$(DEPDIR)/la-probe.Plo
-rm -f libknot/quic/$(DEPDIR)/la-quic.Plo
-rm -f libknot/quic/$(DEPDIR)/la-quic_conn.Plo
+ -rm -f libknot/quic/$(DEPDIR)/la-tls.Plo
+ -rm -f libknot/quic/$(DEPDIR)/la-tls_common.Plo
-rm -f libknot/rrtype/$(DEPDIR)/la-naptr.Plo
-rm -f libknot/rrtype/$(DEPDIR)/la-opt.Plo
-rm -f libknot/rrtype/$(DEPDIR)/la-tsig.Plo
@@ -7776,6 +7955,7 @@ distclean: distclean-recursive
-rm -f utils/kdig/$(DEPDIR)/khost-kdig_params.Po
-rm -f utils/keymgr/$(DEPDIR)/keymgr-bind_privkey.Po
-rm -f utils/keymgr/$(DEPDIR)/keymgr-functions.Po
+ -rm -f utils/keymgr/$(DEPDIR)/keymgr-keystore.Po
-rm -f utils/keymgr/$(DEPDIR)/keymgr-main.Po
-rm -f utils/keymgr/$(DEPDIR)/keymgr-offline_ksk.Po
-rm -f utils/khost/$(DEPDIR)/khost-khost_main.Po
@@ -7794,6 +7974,7 @@ distclean: distclean-recursive
-rm -f utils/kxdpgun/$(DEPDIR)/kxdpgun-ip_route.Po
-rm -f utils/kxdpgun/$(DEPDIR)/kxdpgun-load_queries.Po
-rm -f utils/kxdpgun/$(DEPDIR)/kxdpgun-main.Po
+ -rm -f utils/kxdpgun/$(DEPDIR)/kxdpgun-stats.Po
-rm -f utils/kzonecheck/$(DEPDIR)/kzonecheck-main.Po
-rm -f utils/kzonecheck/$(DEPDIR)/kzonecheck-zone_check.Po
-rm -f utils/kzonesign/$(DEPDIR)/kzonesign-main.Po
@@ -7923,6 +8104,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f knot/catalog/$(DEPDIR)/libknotd_la-catalog_update.Plo
-rm -f knot/catalog/$(DEPDIR)/libknotd_la-generate.Plo
-rm -f knot/catalog/$(DEPDIR)/libknotd_la-interpret.Plo
+ -rm -f knot/common/$(DEPDIR)/libknotd_la-dbus.Plo
-rm -f knot/common/$(DEPDIR)/libknotd_la-evsched.Plo
-rm -f knot/common/$(DEPDIR)/libknotd_la-fdset.Plo
-rm -f knot/common/$(DEPDIR)/libknotd_la-log.Plo
@@ -7970,6 +8152,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f knot/events/handlers/$(DEPDIR)/libknotd_la-notify.Plo
-rm -f knot/events/handlers/$(DEPDIR)/libknotd_la-refresh.Plo
-rm -f knot/events/handlers/$(DEPDIR)/libknotd_la-update.Plo
+ -rm -f knot/events/handlers/$(DEPDIR)/libknotd_la-validate.Plo
-rm -f knot/journal/$(DEPDIR)/libknotd_la-journal_basic.Plo
-rm -f knot/journal/$(DEPDIR)/libknotd_la-journal_metadata.Plo
-rm -f knot/journal/$(DEPDIR)/libknotd_la-journal_read.Plo
@@ -7999,8 +8182,12 @@ maintainer-clean: maintainer-clean-recursive
-rm -f knot/modules/queryacl/$(DEPDIR)/la-queryacl.Plo
-rm -f knot/modules/queryacl/$(DEPDIR)/libknotd_la-queryacl.Plo
-rm -f knot/modules/rrl/$(DEPDIR)/la-functions.Plo
+ -rm -f knot/modules/rrl/$(DEPDIR)/la-kru-avx2.Plo
+ -rm -f knot/modules/rrl/$(DEPDIR)/la-kru-generic.Plo
-rm -f knot/modules/rrl/$(DEPDIR)/la-rrl.Plo
-rm -f knot/modules/rrl/$(DEPDIR)/libknotd_la-functions.Plo
+ -rm -f knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-avx2.Plo
+ -rm -f knot/modules/rrl/$(DEPDIR)/libknotd_la-kru-generic.Plo
-rm -f knot/modules/rrl/$(DEPDIR)/libknotd_la-rrl.Plo
-rm -f knot/modules/stats/$(DEPDIR)/la-stats.Plo
-rm -f knot/modules/stats/$(DEPDIR)/libknotd_la-stats.Plo
@@ -8023,6 +8210,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f knot/query/$(DEPDIR)/libknotd_la-query.Plo
-rm -f knot/query/$(DEPDIR)/libknotd_la-quic-requestor.Plo
-rm -f knot/query/$(DEPDIR)/libknotd_la-requestor.Plo
+ -rm -f knot/query/$(DEPDIR)/libknotd_la-tls-requestor.Plo
-rm -f knot/server/$(DEPDIR)/libknotd_la-dthreads.Plo
-rm -f knot/server/$(DEPDIR)/libknotd_la-handler.Plo
-rm -f knot/server/$(DEPDIR)/libknotd_la-proxyv2.Plo
@@ -8105,6 +8293,8 @@ maintainer-clean: maintainer-clean-recursive
-rm -f libknot/probe/$(DEPDIR)/la-probe.Plo
-rm -f libknot/quic/$(DEPDIR)/la-quic.Plo
-rm -f libknot/quic/$(DEPDIR)/la-quic_conn.Plo
+ -rm -f libknot/quic/$(DEPDIR)/la-tls.Plo
+ -rm -f libknot/quic/$(DEPDIR)/la-tls_common.Plo
-rm -f libknot/rrtype/$(DEPDIR)/la-naptr.Plo
-rm -f libknot/rrtype/$(DEPDIR)/la-opt.Plo
-rm -f libknot/rrtype/$(DEPDIR)/la-tsig.Plo
@@ -8144,6 +8334,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f utils/kdig/$(DEPDIR)/khost-kdig_params.Po
-rm -f utils/keymgr/$(DEPDIR)/keymgr-bind_privkey.Po
-rm -f utils/keymgr/$(DEPDIR)/keymgr-functions.Po
+ -rm -f utils/keymgr/$(DEPDIR)/keymgr-keystore.Po
-rm -f utils/keymgr/$(DEPDIR)/keymgr-main.Po
-rm -f utils/keymgr/$(DEPDIR)/keymgr-offline_ksk.Po
-rm -f utils/khost/$(DEPDIR)/khost-khost_main.Po
@@ -8162,6 +8353,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f utils/kxdpgun/$(DEPDIR)/kxdpgun-ip_route.Po
-rm -f utils/kxdpgun/$(DEPDIR)/kxdpgun-load_queries.Po
-rm -f utils/kxdpgun/$(DEPDIR)/kxdpgun-main.Po
+ -rm -f utils/kxdpgun/$(DEPDIR)/kxdpgun-stats.Po
-rm -f utils/kzonecheck/$(DEPDIR)/kzonecheck-main.Po
-rm -f utils/kzonecheck/$(DEPDIR)/kzonecheck-zone_check.Po
-rm -f utils/kzonesign/$(DEPDIR)/kzonesign-main.Po
diff --git a/src/config.h.in b/src/config.h.in
index 0be849d..3e82c0d 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -3,12 +3,6 @@
/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD
-/* Passed CFLAGS from environment */
-#undef CONFIGURE_CFLAGS
-
-/* Params passed to configure */
-#undef CONFIGURE_PARAMS
-
/* Configure summary */
#undef CONFIGURE_SUMMARY
@@ -18,8 +12,11 @@
/* POSIX capabilities available */
#undef ENABLE_CAP_NG
+/* libdbus D-Bus available */
+#undef ENABLE_DBUS_LIBDBUS
+
/* systemd D-Bus available */
-#undef ENABLE_DBUS
+#undef ENABLE_DBUS_SYSTEMD
/* PKCS #11 support available */
#undef ENABLE_PKCS11
@@ -48,12 +45,12 @@
/* Define to 1 if you have the <arpa/nameser.h> header file. */
#undef HAVE_ARPA_NAMESER_H
-/* Define to 1 if you have '__atomic' functions. */
-#undef HAVE_ATOMIC
-
/* Define to 1 if you have the <bsd/string.h> header file. */
#undef HAVE_BSD_STRING_H
+/* Define to 1 if you have C11 'atomic' functions. */
+#undef HAVE_C11_ATOMIC
+
/* Define if FreeBSD-like cpuset_t exists. */
#undef HAVE_CPUSET_BSD
@@ -66,9 +63,6 @@
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
-/* GnuTLS ED25519 support available */
-#undef HAVE_ED25519
-
/* GnuTLS ED448 support available */
#undef HAVE_ED448
@@ -84,24 +78,18 @@
/* explicit_memset available */
#undef HAVE_EXPLICIT_MEMSET
-/* gnutls_privkey_export_x509 available */
-#undef HAVE_EXPORT_X509
-
/* Define to 1 if you have the `fgetln' function. */
#undef HAVE_FGETLN
+/* Define to 1 if you have GCC-style '__atomic' functions. */
+#undef HAVE_GCC_ATOMIC
+
/* Define to 1 if you have the `getline' function. */
#undef HAVE_GETLINE
-/* gnutls_memset available */
-#undef HAVE_GNUTLS_MEMSET
-
/* gnutls_early_cipher_get available */
#undef HAVE_GNUTLS_QUIC
-/* GnuTLS reproducible signing available */
-#undef HAVE_GNUTLS_REPRODUCIBLE
-
/* Define to 1 if you have the `initgroups' function. */
#undef HAVE_INITGROUPS
@@ -138,12 +126,6 @@
/* Define to 1 if you have the `setgroups' function. */
#undef HAVE_SETGROUPS
-/* gnutls_privkey_sign_data2 available */
-#undef HAVE_SIGN_DATA2
-
-/* Define to 1 if you have the <stdatomic.h> header file. */
-#undef HAVE_STDATOMIC_H
-
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
@@ -165,9 +147,6 @@
/* Define to 1 if you have the `strlcpy' function. */
#undef HAVE_STRLCPY
-/* Define to 1 if you have '__sync' functions. */
-#undef HAVE_SYNC_ATOMIC
-
/* Define to 1 if you have the `sysctlbyname' function. */
#undef HAVE_SYSCTLBYNAME
@@ -193,9 +172,6 @@
/* Define to 1 to enable IDN support */
#undef LIBIDN
-/* Define to proper libidn header */
-#undef LIBIDN_HEADER
-
/* Define to 1 to enable DoH support */
#undef LIBNGHTTP2
diff --git a/src/contrib/Makefile.inc b/src/contrib/Makefile.inc
index e1577d5..d64c2eb 100644
--- a/src/contrib/Makefile.inc
+++ b/src/contrib/Makefile.inc
@@ -24,6 +24,7 @@ EXTRA_DIST += \
libcontrib_la_SOURCES = \
contrib/asan.h \
+ contrib/atomic.h \
contrib/base32hex.c \
contrib/base32hex.h \
contrib/base64.c \
diff --git a/src/contrib/asan.h b/src/contrib/asan.h
index 5feb2c1..ef6fe66 100644
--- a/src/contrib/asan.h
+++ b/src/contrib/asan.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -25,13 +25,20 @@
#if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
void __asan_poison_memory_region(void const volatile *addr, size_t size);
void __asan_unpoison_memory_region(void const volatile *addr, size_t size);
+#if defined(__GNUC__) && !defined(__clang__) /* A faulty GCC workaround. */
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+#endif
#define ASAN_POISON_MEMORY_REGION(addr, size) \
__asan_poison_memory_region((addr), (size))
+#if defined(__GNUC__) && !defined(__clang__) /* End of the workaround. */
+ #pragma GCC diagnostic pop
+#endif
#define ASAN_UNPOISON_MEMORY_REGION(addr, size) \
__asan_unpoison_memory_region((addr), (size))
-#else
+#else /* __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__) */
#define ASAN_POISON_MEMORY_REGION(addr, size) \
((void)(addr), (void)(size))
#define ASAN_UNPOISON_MEMORY_REGION(addr, size) \
((void)(addr), (void)(size))
-#endif
+#endif /* __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__) */
diff --git a/src/contrib/atomic.h b/src/contrib/atomic.h
new file mode 100644
index 0000000..b8dace1
--- /dev/null
+++ b/src/contrib/atomic.h
@@ -0,0 +1,73 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+/*!
+ * \brief C11 atomic operations with fallbacks.
+ */
+
+#pragma once
+
+#ifdef HAVE_C11_ATOMIC /* C11 */
+ #define KNOT_HAVE_ATOMIC
+
+ #include <stdatomic.h>
+
+ #define ATOMIC_SET(dst, val) atomic_store_explicit(&(dst), (val), memory_order_relaxed)
+ #define ATOMIC_GET(src) atomic_load_explicit(&(src), memory_order_relaxed)
+ #define ATOMIC_ADD(dst, val) (void)atomic_fetch_add_explicit(&(dst), (val), memory_order_relaxed)
+ #define ATOMIC_SUB(dst, val) (void)atomic_fetch_sub_explicit(&(dst), (val), memory_order_relaxed)
+ #define ATOMIC_XCHG(dst, val) atomic_exchange_explicit(&(dst), (val), memory_order_relaxed)
+
+ typedef atomic_uint_fast16_t knot_atomic_uint16_t;
+ typedef atomic_uint_fast64_t knot_atomic_uint64_t;
+ typedef atomic_size_t knot_atomic_size_t;
+ typedef _Atomic (void *) knot_atomic_ptr_t;
+ typedef atomic_bool knot_atomic_bool;
+#elif defined(HAVE_GCC_ATOMIC) /* GCC __atomic */
+ #define KNOT_HAVE_ATOMIC
+
+ #include <stdint.h>
+ #include <stdbool.h>
+
+ #define ATOMIC_SET(dst, val) __atomic_store_n(&(dst), (val), __ATOMIC_RELAXED)
+ #define ATOMIC_GET(src) __atomic_load_n(&(src), __ATOMIC_RELAXED)
+ #define ATOMIC_ADD(dst, val) __atomic_add_fetch(&(dst), (val), __ATOMIC_RELAXED)
+ #define ATOMIC_SUB(dst, val) __atomic_sub_fetch(&(dst), (val), __ATOMIC_RELAXED)
+ #define ATOMIC_XCHG(dst, val) __atomic_exchange_n(&(dst), (val), __ATOMIC_RELAXED)
+
+ typedef uint16_t knot_atomic_uint16_t;
+ typedef uint64_t knot_atomic_uint64_t;
+ typedef size_t knot_atomic_size_t;
+ typedef void* knot_atomic_ptr_t;
+ typedef bool knot_atomic_bool;
+#else /* Fallback, non-atomic. */
+ #warning "Atomic operations not availabe, using unreliable replacement."
+
+ #include <stdint.h>
+ #include <stdbool.h>
+
+ #define ATOMIC_SET(dst, val) ((dst) = (val))
+ #define ATOMIC_GET(src) (src)
+ #define ATOMIC_ADD(dst, val) ((dst) += (val))
+ #define ATOMIC_SUB(dst, val) ((dst) -= (val))
+ #define ATOMIC_XCHG(dst, val) ({ __typeof__ (dst) _z = (dst); (dst) = (val); _z; })
+
+ typedef uint16_t knot_atomic_uint16_t;
+ typedef uint64_t knot_atomic_uint64_t;
+ typedef size_t knot_atomic_size_t;
+ typedef void* knot_atomic_ptr_t;
+ typedef bool knot_atomic_bool;
+#endif
diff --git a/src/contrib/files.c b/src/contrib/files.c
index 5b38469..f3a4b78 100644
--- a/src/contrib/files.c
+++ b/src/contrib/files.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -92,16 +92,29 @@ static int remove_file(const char *path, const struct stat *stat, int type, stru
{
(void)stat;
(void)ftw;
- if (type == FTW_DP) {
+
+ switch (type) {
+ case FTW_D:
+ case FTW_DNR:
+ case FTW_DP:
return rmdir(path);
- } else {
+ default:
return unlink(path);
}
}
-bool remove_path(const char *path)
+static int remove_in_dir(const char *path, const struct stat *stat, int type, struct FTW *ftw)
+{
+ return (ftw->level > 0) ? remove_file(path, stat, type, ftw) : 0;
+}
+
+int remove_path(const char *path, bool keep_apex)
{
- return (0 == nftw(path, remove_file, 1, FTW_DEPTH | FTW_PHYS));
+ if (0 != nftw(path, keep_apex ? remove_in_dir : remove_file,
+ 1, FTW_DEPTH | FTW_PHYS)) {
+ return knot_map_errno();
+ }
+ return KNOT_EOK;
}
int make_dir(const char *path, mode_t mode, bool ignore_existing)
diff --git a/src/contrib/files.h b/src/contrib/files.h
index c505ac8..4250a47 100644
--- a/src/contrib/files.h
+++ b/src/contrib/files.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -52,9 +52,12 @@ bool same_path(const char *path1, const char *path2);
/*!
* \brief Delete file or directory (recursive).
*
- * \return true on success, false when one or more files failed to be removed.
+ * \param[in] path Absolute path or a relative path suffix; a string.
+ * \param[in] keep_apex If true, don't remove the starting point (apex).
+ *
+ * \return KNOT_E*
*/
-bool remove_path(const char *path);
+int remove_path(const char *path, bool keep_apex);
/*!
* Equivalent to mkdir(2), can succeed if the directory already exists.
diff --git a/src/contrib/json.c b/src/contrib/json.c
index d44da87..5173f90 100644
--- a/src/contrib/json.c
+++ b/src/contrib/json.c
@@ -217,6 +217,13 @@ void jsonw_int(jsonw_t *w, const char *key, int value)
fprintf(w->out, "%d", value);
}
+void jsonw_double(jsonw_t *w, const char *key, double value)
+{
+ assert(w);
+
+ align_key(w, key);
+ fprintf(w->out, "%.4f", value);
+}
void jsonw_bool(jsonw_t *w, const char *key, bool value)
{
diff --git a/src/contrib/json.h b/src/contrib/json.h
index cf8abe6..17513bc 100644
--- a/src/contrib/json.h
+++ b/src/contrib/json.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -82,6 +82,11 @@ void jsonw_ulong(jsonw_t *w, const char *key, unsigned long value);
void jsonw_int(jsonw_t *w, const char *key, int value);
/*!
+ * Write double as JSON.
+ */
+void jsonw_double(jsonw_t *w, const char *key, double value);
+
+/*!
* Write boolean value as JSON.
*/
void jsonw_bool(jsonw_t *w, const char *key, bool value);
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c
index 5cc39ee..a270a43 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c
@@ -66,7 +66,7 @@ int ngtcp2_balloc_get(ngtcp2_balloc *balloc, void **pbuf, size_t n) {
if (ngtcp2_buf_left(&balloc->buf) < n) {
p = ngtcp2_mem_malloc(balloc->mem,
- sizeof(ngtcp2_memblock_hd) + 0x10u + balloc->blklen);
+ sizeof(ngtcp2_memblock_hd) + 0x8u + balloc->blklen);
if (p == NULL) {
return NGTCP2_ERR_NOMEM;
}
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.h
index 1fb1632..9920987 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.h
@@ -39,7 +39,10 @@ typedef struct ngtcp2_memblock_hd ngtcp2_memblock_hd;
* ngtcp2_memblock_hd is the header of memory block.
*/
struct ngtcp2_memblock_hd {
- ngtcp2_memblock_hd *next;
+ union {
+ ngtcp2_memblock_hd *next;
+ uint64_t pad;
+ };
};
/*
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c
index 2211a31..8b3845c 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c
@@ -39,8 +39,9 @@
#define NGTCP2_BBR_EXTRA_ACKED_FILTERLEN 10
#define NGTCP2_BBR_STARTUP_PACING_GAIN_H 277
+#define NGTCP2_BBR_DRAIN_PACING_GAIN_H 35
-#define NGTCP2_BBR_STARTUP_CWND_GAIN_H 200
+#define NGTCP2_BBR_DEFAULT_CWND_GAIN_H 200
#define NGTCP2_BBR_PROBE_RTT_CWND_GAIN_H 50
@@ -72,7 +73,7 @@ static void bbr_reset_lower_bounds(ngtcp2_cc_bbr *bbr);
static void bbr_init_round_counting(ngtcp2_cc_bbr *bbr);
-static void bbr_init_full_pipe(ngtcp2_cc_bbr *bbr);
+static void bbr_reset_full_bw(ngtcp2_cc_bbr *bbr);
static void bbr_init_pacing_rate(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat);
@@ -84,8 +85,7 @@ static void bbr_set_pacing_rate(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat);
static void bbr_enter_startup(ngtcp2_cc_bbr *bbr);
-static void bbr_check_startup_done(ngtcp2_cc_bbr *bbr,
- const ngtcp2_cc_ack *ack);
+static void bbr_check_startup_done(ngtcp2_cc_bbr *bbr);
static void bbr_update_on_ack(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts);
@@ -148,16 +148,17 @@ static void bbr_start_probe_bw_cruise(ngtcp2_cc_bbr *bbr);
static void bbr_start_probe_bw_refill(ngtcp2_cc_bbr *bbr);
-static void bbr_start_probe_bw_up(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
- ngtcp2_tstamp ts);
+static void bbr_start_probe_bw_up(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat);
static void bbr_update_probe_bw_cycle_phase(ngtcp2_cc_bbr *bbr,
ngtcp2_conn_stat *cstat,
const ngtcp2_cc_ack *ack,
ngtcp2_tstamp ts);
-static int bbr_check_time_to_cruise(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
- ngtcp2_tstamp ts);
+static int bbr_is_time_to_cruise(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
+ ngtcp2_tstamp ts);
+
+static int bbr_is_time_to_go_down(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat);
static int bbr_has_elapsed_in_phase(ngtcp2_cc_bbr *bbr,
ngtcp2_duration interval, ngtcp2_tstamp ts);
@@ -175,9 +176,8 @@ static void bbr_probe_inflight_hi_upward(ngtcp2_cc_bbr *bbr,
static void bbr_adapt_upper_bounds(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts);
-static int bbr_check_time_to_probe_bw(ngtcp2_cc_bbr *bbr,
- ngtcp2_conn_stat *cstat,
- ngtcp2_tstamp ts);
+static int bbr_is_time_to_probe_bw(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
+ ngtcp2_tstamp ts);
static void bbr_pick_probe_wait(ngtcp2_cc_bbr *bbr);
@@ -197,6 +197,8 @@ static void bbr_handle_inflight_too_high(ngtcp2_cc_bbr *bbr,
ngtcp2_conn_stat *cstat,
const ngtcp2_rs *rs, ngtcp2_tstamp ts);
+static void bbr_note_loss(ngtcp2_cc_bbr *bbr);
+
static void bbr_handle_lost_packet(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
const ngtcp2_cc_pkt *pkt, ngtcp2_tstamp ts);
@@ -227,15 +229,14 @@ static void bbr_handle_restart_from_idle(ngtcp2_cc_bbr *bbr,
ngtcp2_conn_stat *cstat,
ngtcp2_tstamp ts);
-static uint64_t bbr_bdp_multiple(ngtcp2_cc_bbr *bbr, uint64_t bw,
- uint64_t gain_h);
+static uint64_t bbr_bdp_multiple(ngtcp2_cc_bbr *bbr, uint64_t gain_h);
static uint64_t bbr_quantization_budget(ngtcp2_cc_bbr *bbr,
ngtcp2_conn_stat *cstat,
uint64_t inflight);
static uint64_t bbr_inflight(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
- uint64_t bw, uint64_t gain_h);
+ uint64_t gain_h);
static void bbr_update_max_inflight(ngtcp2_cc_bbr *bbr,
ngtcp2_conn_stat *cstat);
@@ -247,10 +248,6 @@ static uint64_t min_pipe_cwnd(size_t max_udp_payload_size);
static void bbr_advance_max_bw_filter(ngtcp2_cc_bbr *bbr);
-static void bbr_modulate_cwnd_for_recovery(ngtcp2_cc_bbr *bbr,
- ngtcp2_conn_stat *cstat,
- const ngtcp2_cc_ack *ack);
-
static void bbr_save_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat);
static void bbr_restore_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat);
@@ -272,7 +269,7 @@ static int in_congestion_recovery(const ngtcp2_conn_stat *cstat,
ngtcp2_tstamp sent_time);
static void bbr_handle_recovery(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
- const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts);
+ const ngtcp2_cc_ack *ack);
static void bbr_on_init(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
ngtcp2_tstamp initial_ts) {
@@ -289,11 +286,12 @@ static void bbr_on_init(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
bbr->idle_restart = 0;
bbr->extra_acked_interval_start = initial_ts;
bbr->extra_acked_delivered = 0;
+ bbr->full_bw_reached = 0;
bbr_reset_congestion_signals(bbr);
bbr_reset_lower_bounds(bbr);
bbr_init_round_counting(bbr);
- bbr_init_full_pipe(bbr);
+ bbr_reset_full_bw(bbr);
bbr_init_pacing_rate(bbr, cstat);
bbr_enter_startup(bbr);
@@ -326,23 +324,17 @@ static void bbr_on_init(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
bbr->bw_probe_up_acks = 0;
bbr->inflight_hi = UINT64_MAX;
- bbr->bw_hi = UINT64_MAX;
bbr->probe_rtt_expired = 0;
bbr->probe_rtt_min_delay = UINT64_MAX;
bbr->probe_rtt_min_stamp = initial_ts;
bbr->in_loss_recovery = 0;
- bbr->packet_conservation = 0;
+ bbr->round_count_at_recovery = UINT64_MAX;
bbr->max_inflight = 0;
bbr->congestion_recovery_start_ts = UINT64_MAX;
- bbr->congestion_recovery_next_round_delivered = 0;
-
- bbr->prior_inflight_lo = 0;
- bbr->prior_inflight_hi = 0;
- bbr->prior_bw_lo = 0;
}
static void bbr_reset_congestion_signals(ngtcp2_cc_bbr *bbr) {
@@ -362,48 +354,53 @@ static void bbr_init_round_counting(ngtcp2_cc_bbr *bbr) {
bbr->round_count = 0;
}
-static void bbr_init_full_pipe(ngtcp2_cc_bbr *bbr) {
- bbr->filled_pipe = 0;
+static void bbr_reset_full_bw(ngtcp2_cc_bbr *bbr) {
bbr->full_bw = 0;
bbr->full_bw_count = 0;
+ bbr->full_bw_now = 0;
}
-static void bbr_check_startup_full_bandwidth(ngtcp2_cc_bbr *bbr) {
- if (bbr->filled_pipe || !bbr->round_start || bbr->rst->rs.is_app_limited) {
+static void bbr_check_full_bw_reached(ngtcp2_cc_bbr *bbr,
+ ngtcp2_conn_stat *cstat) {
+ if (bbr->full_bw_now || bbr->rst->rs.is_app_limited) {
return;
}
- if (bbr->max_bw * 100 >= bbr->full_bw * 125) {
- bbr->full_bw = bbr->max_bw;
- bbr->full_bw_count = 0;
- }
+ if (cstat->delivery_rate_sec * 100 >= bbr->full_bw * 125) {
+ bbr_reset_full_bw(bbr);
+ bbr->full_bw = cstat->delivery_rate_sec;
- ++bbr->full_bw_count;
-
- if (bbr->full_bw_count >= 3) {
- bbr->filled_pipe = 1;
-
- ngtcp2_log_info(bbr->cc.log, NGTCP2_LOG_EVENT_CCA,
- "bbr filled pipe, full_bw=%" PRIu64, bbr->full_bw);
+ return;
}
-}
-static void bbr_check_startup_high_loss(ngtcp2_cc_bbr *bbr,
- const ngtcp2_cc_ack *ack) {
- if (bbr->filled_pipe || !bbr->round_start || bbr->rst->rs.is_app_limited) {
+ if (!bbr->round_start) {
return;
}
- if (bbr->loss_events_in_round <= 3) {
+ ++bbr->full_bw_count;
+
+ bbr->full_bw_now = bbr->full_bw_count >= 3;
+ if (!bbr->full_bw_now) {
return;
}
- /* loss_thresh = 2% */
- if (bbr->bytes_lost_in_round * 100 <= ack->prior_bytes_in_flight * 2) {
+ bbr->full_bw_reached = 1;
+
+ ngtcp2_log_info(bbr->cc.log, NGTCP2_LOG_EVENT_CCA,
+ "bbr reached full bandwidth, full_bw=%" PRIu64, bbr->full_bw);
+}
+
+static void bbr_check_startup_high_loss(ngtcp2_cc_bbr *bbr) {
+ if (bbr->full_bw_reached || bbr->loss_events_in_round <= 6 ||
+ (bbr->in_loss_recovery &&
+ bbr->round_count <= bbr->round_count_at_recovery) ||
+ !is_inflight_too_high(&bbr->rst->rs)) {
return;
}
- bbr->filled_pipe = 1;
+ bbr->full_bw_reached = 1;
+ bbr->inflight_hi = ngtcp2_max_uint64(bbr_bdp_multiple(bbr, bbr->cwnd_gain_h),
+ bbr->inflight_latest);
}
static void bbr_init_pacing_rate(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) {
@@ -423,7 +420,7 @@ static void bbr_set_pacing_rate_with_gain(ngtcp2_cc_bbr *bbr,
interval = NGTCP2_SECONDS * 100 * 100 / pacing_gain_h / bbr->bw /
(100 - NGTCP2_BBR_PACING_MARGIN_PERCENT);
- if (bbr->filled_pipe || interval < cstat->pacing_interval) {
+ if (bbr->full_bw_reached || interval < cstat->pacing_interval) {
cstat->pacing_interval = interval;
}
}
@@ -437,15 +434,13 @@ static void bbr_enter_startup(ngtcp2_cc_bbr *bbr) {
bbr->state = NGTCP2_BBR_STATE_STARTUP;
bbr->pacing_gain_h = NGTCP2_BBR_STARTUP_PACING_GAIN_H;
- bbr->cwnd_gain_h = NGTCP2_BBR_STARTUP_CWND_GAIN_H;
+ bbr->cwnd_gain_h = NGTCP2_BBR_DEFAULT_CWND_GAIN_H;
}
-static void bbr_check_startup_done(ngtcp2_cc_bbr *bbr,
- const ngtcp2_cc_ack *ack) {
- bbr_check_startup_full_bandwidth(bbr);
- bbr_check_startup_high_loss(bbr, ack);
+static void bbr_check_startup_done(ngtcp2_cc_bbr *bbr) {
+ bbr_check_startup_high_loss(bbr);
- if (bbr->state == NGTCP2_BBR_STATE_STARTUP && bbr->filled_pipe) {
+ if (bbr->state == NGTCP2_BBR_STATE_STARTUP && bbr->full_bw_reached) {
bbr_enter_drain(bbr);
}
}
@@ -468,7 +463,8 @@ static void bbr_update_model_and_state(ngtcp2_cc_bbr *bbr,
bbr_update_latest_delivery_signals(bbr, cstat);
bbr_update_congestion_signals(bbr, cstat, ack);
bbr_update_ack_aggregation(bbr, cstat, ack, ts);
- bbr_check_startup_done(bbr, ack);
+ bbr_check_full_bw_reached(bbr, cstat);
+ bbr_check_startup_done(bbr);
bbr_check_drain(bbr, cstat, ts);
bbr_update_probe_bw_cycle_phase(bbr, cstat, ack, ts);
bbr_update_min_rtt(bbr, ack, ts);
@@ -519,11 +515,6 @@ static void bbr_update_congestion_signals(ngtcp2_cc_bbr *bbr,
if (ack->bytes_lost) {
bbr->bytes_lost_in_round += ack->bytes_lost;
++bbr->loss_events_in_round;
-
- if (!bbr->loss_in_round) {
- bbr->loss_in_round = 1;
- bbr->loss_round_delivered = bbr->rst->delivered;
- }
}
if (!bbr->loss_round_start) {
@@ -568,7 +559,6 @@ static void bbr_loss_lower_bounds(ngtcp2_cc_bbr *bbr) {
static void bbr_bound_bw_for_model(ngtcp2_cc_bbr *bbr) {
bbr->bw = ngtcp2_min_uint64(bbr->max_bw, bbr->bw_lo);
- bbr->bw = ngtcp2_min_uint64(bbr->bw, bbr->bw_hi);
}
static void bbr_update_max_bw(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
@@ -636,6 +626,12 @@ static void bbr_update_ack_aggregation(ngtcp2_cc_bbr *bbr,
extra = bbr->extra_acked_delivered - expected_delivered;
extra = ngtcp2_min_uint64(extra, cstat->cwnd);
+ if (bbr->full_bw_reached) {
+ bbr->extra_acked_filter.window_length = NGTCP2_BBR_EXTRA_ACKED_FILTERLEN;
+ } else {
+ bbr->extra_acked_filter.window_length = 1;
+ }
+
ngtcp2_window_filter_update(&bbr->extra_acked_filter, extra,
bbr->round_count);
@@ -646,14 +642,14 @@ static void bbr_enter_drain(ngtcp2_cc_bbr *bbr) {
ngtcp2_log_info(bbr->cc.log, NGTCP2_LOG_EVENT_CCA, "bbr enter Drain");
bbr->state = NGTCP2_BBR_STATE_DRAIN;
- bbr->pacing_gain_h = 100 * 100 / NGTCP2_BBR_STARTUP_CWND_GAIN_H;
- bbr->cwnd_gain_h = NGTCP2_BBR_STARTUP_CWND_GAIN_H;
+ bbr->pacing_gain_h = NGTCP2_BBR_DRAIN_PACING_GAIN_H;
+ bbr->cwnd_gain_h = NGTCP2_BBR_DEFAULT_CWND_GAIN_H;
}
static void bbr_check_drain(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
ngtcp2_tstamp ts) {
if (bbr->state == NGTCP2_BBR_STATE_DRAIN &&
- cstat->bytes_in_flight <= bbr_inflight(bbr, cstat, bbr->bw, 100)) {
+ cstat->bytes_in_flight <= bbr_inflight(bbr, cstat, 100)) {
bbr_enter_probe_bw(bbr, ts);
}
}
@@ -678,7 +674,7 @@ static void bbr_start_probe_bw_down(ngtcp2_cc_bbr *bbr, ngtcp2_tstamp ts) {
bbr->state = NGTCP2_BBR_STATE_PROBE_BW_DOWN;
bbr->pacing_gain_h = 90;
- bbr->cwnd_gain_h = 200;
+ bbr->cwnd_gain_h = NGTCP2_BBR_DEFAULT_CWND_GAIN_H;
}
static void bbr_start_probe_bw_cruise(ngtcp2_cc_bbr *bbr) {
@@ -687,7 +683,7 @@ static void bbr_start_probe_bw_cruise(ngtcp2_cc_bbr *bbr) {
bbr->state = NGTCP2_BBR_STATE_PROBE_BW_CRUISE;
bbr->pacing_gain_h = 100;
- bbr->cwnd_gain_h = 200;
+ bbr->cwnd_gain_h = NGTCP2_BBR_DEFAULT_CWND_GAIN_H;
}
static void bbr_start_probe_bw_refill(ngtcp2_cc_bbr *bbr) {
@@ -704,18 +700,18 @@ static void bbr_start_probe_bw_refill(ngtcp2_cc_bbr *bbr) {
bbr->state = NGTCP2_BBR_STATE_PROBE_BW_REFILL;
bbr->pacing_gain_h = 100;
- bbr->cwnd_gain_h = 200;
+ bbr->cwnd_gain_h = NGTCP2_BBR_DEFAULT_CWND_GAIN_H;
}
-static void bbr_start_probe_bw_up(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
- ngtcp2_tstamp ts) {
+static void bbr_start_probe_bw_up(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) {
ngtcp2_log_info(bbr->cc.log, NGTCP2_LOG_EVENT_CCA, "bbr start ProbeBW_UP");
bbr->ack_phase = NGTCP2_BBR_ACK_PHASE_ACKS_PROBE_STARTING;
bbr_start_round(bbr);
+ bbr_reset_full_bw(bbr);
- bbr->cycle_stamp = ts;
+ bbr->full_bw = cstat->delivery_rate_sec;
bbr->state = NGTCP2_BBR_STATE_PROBE_BW_UP;
bbr->pacing_gain_h = 125;
bbr->cwnd_gain_h = 225;
@@ -727,7 +723,7 @@ static void bbr_update_probe_bw_cycle_phase(ngtcp2_cc_bbr *bbr,
ngtcp2_conn_stat *cstat,
const ngtcp2_cc_ack *ack,
ngtcp2_tstamp ts) {
- if (!bbr->filled_pipe) {
+ if (!bbr->full_bw_reached) {
return;
}
@@ -739,17 +735,17 @@ static void bbr_update_probe_bw_cycle_phase(ngtcp2_cc_bbr *bbr,
switch (bbr->state) {
case NGTCP2_BBR_STATE_PROBE_BW_DOWN:
- if (bbr_check_time_to_probe_bw(bbr, cstat, ts)) {
+ if (bbr_is_time_to_probe_bw(bbr, cstat, ts)) {
return;
}
- if (bbr_check_time_to_cruise(bbr, cstat, ts)) {
+ if (bbr_is_time_to_cruise(bbr, cstat, ts)) {
bbr_start_probe_bw_cruise(bbr);
}
break;
case NGTCP2_BBR_STATE_PROBE_BW_CRUISE:
- if (bbr_check_time_to_probe_bw(bbr, cstat, ts)) {
+ if (bbr_is_time_to_probe_bw(bbr, cstat, ts)) {
return;
}
@@ -757,13 +753,12 @@ static void bbr_update_probe_bw_cycle_phase(ngtcp2_cc_bbr *bbr,
case NGTCP2_BBR_STATE_PROBE_BW_REFILL:
if (bbr->round_start) {
bbr->bw_probe_samples = 1;
- bbr_start_probe_bw_up(bbr, cstat, ts);
+ bbr_start_probe_bw_up(bbr, cstat);
}
break;
case NGTCP2_BBR_STATE_PROBE_BW_UP:
- if (bbr_has_elapsed_in_phase(bbr, bbr->min_rtt, ts) &&
- cstat->bytes_in_flight > bbr_inflight(bbr, cstat, bbr->max_bw, 125)) {
+ if (bbr_is_time_to_go_down(bbr, cstat)) {
bbr_start_probe_bw_down(bbr, ts);
}
@@ -773,15 +768,26 @@ static void bbr_update_probe_bw_cycle_phase(ngtcp2_cc_bbr *bbr,
}
}
-static int bbr_check_time_to_cruise(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
- ngtcp2_tstamp ts) {
+static int bbr_is_time_to_cruise(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
+ ngtcp2_tstamp ts) {
(void)ts;
if (cstat->bytes_in_flight > bbr_inflight_with_headroom(bbr, cstat)) {
return 0;
}
- if (cstat->bytes_in_flight <= bbr_inflight(bbr, cstat, bbr->max_bw, 100)) {
+ if (cstat->bytes_in_flight <= bbr_inflight(bbr, cstat, 100)) {
+ return 1;
+ }
+
+ return 0;
+}
+
+static int bbr_is_time_to_go_down(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) {
+ if (bbr->rst->is_cwnd_limited && cstat->cwnd >= bbr->inflight_hi) {
+ bbr_reset_full_bw(bbr);
+ bbr->full_bw = cstat->delivery_rate_sec;
+ } else if (bbr->full_bw_now) {
return 1;
}
@@ -861,8 +867,7 @@ static void bbr_adapt_upper_bounds(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
}
if (!bbr_check_inflight_too_high(bbr, cstat, ts)) {
- /* bbr->bw_hi never be updated */
- if (bbr->inflight_hi == UINT64_MAX /* || bbr->bw_hi == UINT64_MAX */) {
+ if (bbr->inflight_hi == UINT64_MAX) {
return;
}
@@ -870,19 +875,14 @@ static void bbr_adapt_upper_bounds(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
bbr->inflight_hi = bbr->rst->rs.tx_in_flight;
}
- if (cstat->delivery_rate_sec > bbr->bw_hi) {
- bbr->bw_hi = cstat->delivery_rate_sec;
- }
-
if (bbr->state == NGTCP2_BBR_STATE_PROBE_BW_UP) {
bbr_probe_inflight_hi_upward(bbr, cstat, ack);
}
}
}
-static int bbr_check_time_to_probe_bw(ngtcp2_cc_bbr *bbr,
- ngtcp2_conn_stat *cstat,
- ngtcp2_tstamp ts) {
+static int bbr_is_time_to_probe_bw(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
+ ngtcp2_tstamp ts) {
if (bbr_has_elapsed_in_phase(bbr, bbr->bw_probe_wait, ts) ||
bbr_is_reno_coexistence_probe_time(bbr, cstat)) {
bbr_start_probe_bw_refill(bbr);
@@ -916,7 +916,7 @@ static int bbr_is_reno_coexistence_probe_time(ngtcp2_cc_bbr *bbr,
static uint64_t bbr_target_inflight(ngtcp2_cc_bbr *bbr,
ngtcp2_conn_stat *cstat) {
- uint64_t bdp = bbr_inflight(bbr, cstat, bbr->bw, 100);
+ uint64_t bdp = bbr_bdp_multiple(bbr, bbr->cwnd_gain_h);
return ngtcp2_min_uint64(bdp, cstat->cwnd);
}
@@ -957,10 +957,21 @@ static void bbr_handle_inflight_too_high(ngtcp2_cc_bbr *bbr,
}
}
+static void bbr_note_loss(ngtcp2_cc_bbr *bbr) {
+ if (bbr->loss_in_round) {
+ return;
+ }
+
+ bbr->loss_in_round = 1;
+ bbr->loss_round_delivered = bbr->rst->delivered;
+}
+
static void bbr_handle_lost_packet(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
const ngtcp2_cc_pkt *pkt, ngtcp2_tstamp ts) {
ngtcp2_rs rs = {0};
+ bbr_note_loss(bbr);
+
if (!bbr->bw_probe_samples) {
return;
}
@@ -1107,7 +1118,7 @@ static void bbr_mark_connection_app_limited(ngtcp2_cc_bbr *bbr,
static void bbr_exit_probe_rtt(ngtcp2_cc_bbr *bbr, ngtcp2_tstamp ts) {
bbr_reset_lower_bounds(bbr);
- if (bbr->filled_pipe) {
+ if (bbr->full_bw_reached) {
bbr_start_probe_bw_down(bbr, ts);
bbr_start_probe_bw_cruise(bbr);
} else {
@@ -1132,15 +1143,14 @@ static void bbr_handle_restart_from_idle(ngtcp2_cc_bbr *bbr,
}
}
-static uint64_t bbr_bdp_multiple(ngtcp2_cc_bbr *bbr, uint64_t bw,
- uint64_t gain_h) {
+static uint64_t bbr_bdp_multiple(ngtcp2_cc_bbr *bbr, uint64_t gain_h) {
uint64_t bdp;
if (bbr->min_rtt == UINT64_MAX) {
return bbr->initial_cwnd;
}
- bdp = bw * bbr->min_rtt / NGTCP2_SECONDS;
+ bdp = bbr->bw * bbr->min_rtt / NGTCP2_SECONDS;
return (uint64_t)(bdp * gain_h / 100);
}
@@ -1166,8 +1176,8 @@ static uint64_t bbr_quantization_budget(ngtcp2_cc_bbr *bbr,
}
static uint64_t bbr_inflight(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
- uint64_t bw, uint64_t gain_h) {
- uint64_t inflight = bbr_bdp_multiple(bbr, bw, gain_h);
+ uint64_t gain_h) {
+ uint64_t inflight = bbr_bdp_multiple(bbr, gain_h);
return bbr_quantization_budget(bbr, cstat, inflight);
}
@@ -1179,8 +1189,7 @@ static void bbr_update_max_inflight(ngtcp2_cc_bbr *bbr,
/* Not documented */
/* bbr_update_aggregation_budget(bbr); */
- inflight =
- bbr_bdp_multiple(bbr, bbr->bw, bbr->cwnd_gain_h) + bbr->extra_acked;
+ inflight = bbr_bdp_multiple(bbr, bbr->cwnd_gain_h) + bbr->extra_acked;
bbr->max_inflight = bbr_quantization_budget(bbr, cstat, inflight);
}
@@ -1193,25 +1202,6 @@ static void bbr_advance_max_bw_filter(ngtcp2_cc_bbr *bbr) {
++bbr->cycle_count;
}
-static void bbr_modulate_cwnd_for_recovery(ngtcp2_cc_bbr *bbr,
- ngtcp2_conn_stat *cstat,
- const ngtcp2_cc_ack *ack) {
- if (ack->bytes_lost > 0) {
- if (cstat->cwnd > ack->bytes_lost) {
- cstat->cwnd -= ack->bytes_lost;
- cstat->cwnd =
- ngtcp2_max_uint64(cstat->cwnd, 2 * cstat->max_tx_udp_payload_size);
- } else {
- cstat->cwnd = 2 * cstat->max_tx_udp_payload_size;
- }
- }
-
- if (bbr->packet_conservation) {
- cstat->cwnd = ngtcp2_max_uint64(cstat->cwnd, cstat->bytes_in_flight +
- ack->bytes_delivered);
- }
-}
-
static void bbr_save_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) {
if (!bbr->in_loss_recovery && bbr->state != NGTCP2_BBR_STATE_PROBE_RTT) {
bbr->prior_cwnd = cstat->cwnd;
@@ -1228,7 +1218,7 @@ static void bbr_restore_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) {
static uint64_t bbr_probe_rtt_cwnd(ngtcp2_cc_bbr *bbr,
ngtcp2_conn_stat *cstat) {
uint64_t probe_rtt_cwnd =
- bbr_bdp_multiple(bbr, bbr->bw, NGTCP2_BBR_PROBE_RTT_CWND_GAIN_H);
+ bbr_bdp_multiple(bbr, NGTCP2_BBR_PROBE_RTT_CWND_GAIN_H);
uint64_t mpcwnd = min_pipe_cwnd(cstat->max_tx_udp_payload_size);
return ngtcp2_max_uint64(probe_rtt_cwnd, mpcwnd);
@@ -1250,21 +1240,18 @@ static void bbr_set_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
uint64_t mpcwnd;
bbr_update_max_inflight(bbr, cstat);
- bbr_modulate_cwnd_for_recovery(bbr, cstat, ack);
-
- if (!bbr->packet_conservation) {
- if (bbr->filled_pipe) {
- cstat->cwnd += ack->bytes_delivered;
- cstat->cwnd = ngtcp2_min_uint64(cstat->cwnd, bbr->max_inflight);
- } else if (cstat->cwnd < bbr->max_inflight ||
- bbr->rst->delivered < bbr->initial_cwnd) {
- cstat->cwnd += ack->bytes_delivered;
- }
- mpcwnd = min_pipe_cwnd(cstat->max_tx_udp_payload_size);
- cstat->cwnd = ngtcp2_max_uint64(cstat->cwnd, mpcwnd);
+ if (bbr->full_bw_reached) {
+ cstat->cwnd += ack->bytes_delivered;
+ cstat->cwnd = ngtcp2_min_uint64(cstat->cwnd, bbr->max_inflight);
+ } else if (cstat->cwnd < bbr->max_inflight ||
+ bbr->rst->delivered < bbr->initial_cwnd) {
+ cstat->cwnd += ack->bytes_delivered;
}
+ mpcwnd = min_pipe_cwnd(cstat->max_tx_udp_payload_size);
+ cstat->cwnd = ngtcp2_max_uint64(cstat->cwnd, mpcwnd);
+
bbr_bound_cwnd_for_probe_rtt(bbr, cstat);
bbr_bound_cwnd_for_model(bbr, cstat);
}
@@ -1289,23 +1276,16 @@ static void bbr_bound_cwnd_for_model(ngtcp2_cc_bbr *bbr,
}
static void bbr_set_send_quantum(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) {
- size_t floor, send_quantum;
+ size_t send_quantum = 64 * 1024;
(void)bbr;
- if (cstat->pacing_interval > (NGTCP2_SECONDS * 8 * 10 / 12) >> 20) {
- floor = cstat->max_tx_udp_payload_size;
- } else {
- floor = 2 * cstat->max_tx_udp_payload_size;
- }
-
if (cstat->pacing_interval) {
- send_quantum = (size_t)(NGTCP2_MILLISECONDS / cstat->pacing_interval);
- send_quantum = ngtcp2_min_size(send_quantum, 64 * 1024);
- } else {
- send_quantum = 64 * 1024;
+ send_quantum = ngtcp2_min_size(
+ send_quantum, (size_t)(NGTCP2_MILLISECONDS / cstat->pacing_interval));
}
- cstat->send_quantum = ngtcp2_max_size(send_quantum, floor);
+ cstat->send_quantum =
+ ngtcp2_max_size(send_quantum, 2 * cstat->max_tx_udp_payload_size);
}
static int in_congestion_recovery(const ngtcp2_conn_stat *cstat,
@@ -1315,16 +1295,12 @@ static int in_congestion_recovery(const ngtcp2_conn_stat *cstat,
}
static void bbr_handle_recovery(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
- const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts) {
+ const ngtcp2_cc_ack *ack) {
if (bbr->in_loss_recovery) {
- if (ts - cstat->congestion_recovery_start_ts >= cstat->smoothed_rtt) {
- bbr->packet_conservation = 0;
- }
-
if (ack->largest_pkt_sent_ts != UINT64_MAX &&
!in_congestion_recovery(cstat, ack->largest_pkt_sent_ts)) {
bbr->in_loss_recovery = 0;
- bbr->packet_conservation = 0;
+ bbr->round_count_at_recovery = UINT64_MAX;
bbr_restore_cwnd(bbr, cstat);
}
@@ -1333,6 +1309,8 @@ static void bbr_handle_recovery(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
if (bbr->congestion_recovery_start_ts != UINT64_MAX) {
bbr->in_loss_recovery = 1;
+ bbr->round_count_at_recovery =
+ bbr->round_start ? bbr->round_count : bbr->round_count + 1;
bbr_save_cwnd(bbr, cstat);
cstat->cwnd =
cstat->bytes_in_flight +
@@ -1340,11 +1318,6 @@ static void bbr_handle_recovery(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat,
cstat->congestion_recovery_start_ts = bbr->congestion_recovery_start_ts;
bbr->congestion_recovery_start_ts = UINT64_MAX;
- bbr->packet_conservation = 1;
- bbr->congestion_recovery_next_round_delivered = bbr->rst->delivered;
- bbr->prior_inflight_hi = bbr->inflight_hi;
- bbr->prior_inflight_lo = bbr->inflight_lo;
- bbr->prior_bw_lo = bbr->bw_lo;
}
}
@@ -1352,6 +1325,10 @@ static void bbr_cc_on_pkt_lost(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat,
const ngtcp2_cc_pkt *pkt, ngtcp2_tstamp ts) {
ngtcp2_cc_bbr *bbr = ngtcp2_struct_of(cc, ngtcp2_cc_bbr, cc);
+ if (bbr->state == NGTCP2_BBR_STATE_STARTUP) {
+ return;
+ }
+
bbr_update_on_loss(bbr, cstat, pkt, ts);
}
@@ -1379,15 +1356,8 @@ static void bbr_cc_on_spurious_congestion(ngtcp2_cc *cc,
if (bbr->in_loss_recovery) {
bbr->in_loss_recovery = 0;
- bbr->packet_conservation = 0;
+ bbr->round_count_at_recovery = UINT64_MAX;
bbr_restore_cwnd(bbr, cstat);
- bbr->full_bw_count = 0;
- bbr->loss_in_round = 0;
- bbr->inflight_lo =
- ngtcp2_max_uint64(bbr->inflight_lo, bbr->prior_inflight_lo);
- bbr->inflight_hi =
- ngtcp2_max_uint64(bbr->inflight_hi, bbr->prior_inflight_hi);
- bbr->bw_lo = ngtcp2_max_uint64(bbr->bw_lo, bbr->prior_bw_lo);
}
}
@@ -1400,7 +1370,7 @@ static void bbr_cc_on_persistent_congestion(ngtcp2_cc *cc,
cstat->congestion_recovery_start_ts = UINT64_MAX;
bbr->congestion_recovery_start_ts = UINT64_MAX;
bbr->in_loss_recovery = 0;
- bbr->packet_conservation = 0;
+ bbr->round_count_at_recovery = UINT64_MAX;
bbr_save_cwnd(bbr, cstat);
cstat->cwnd = cstat->bytes_in_flight + cstat->max_tx_udp_payload_size;
@@ -1412,7 +1382,7 @@ static void bbr_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat,
const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts) {
ngtcp2_cc_bbr *bbr = ngtcp2_struct_of(cc, ngtcp2_cc_bbr, cc);
- bbr_handle_recovery(bbr, cstat, ack, ts);
+ bbr_handle_recovery(bbr, cstat, ack);
bbr_update_on_ack(bbr, cstat, ack, ts);
}
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h
index 0017be3..097d0fe 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h
@@ -95,9 +95,10 @@ typedef struct ngtcp2_cc_bbr {
uint64_t round_count;
/* Full pipe */
- int filled_pipe;
uint64_t full_bw;
size_t full_bw_count;
+ int full_bw_reached;
+ int full_bw_now;
/* Pacing rate */
uint64_t pacing_gain_h;
@@ -123,19 +124,13 @@ typedef struct ngtcp2_cc_bbr {
size_t bw_probe_up_rounds;
uint64_t bw_probe_up_acks;
uint64_t inflight_hi;
- uint64_t bw_hi;
int probe_rtt_expired;
ngtcp2_duration probe_rtt_min_delay;
ngtcp2_tstamp probe_rtt_min_stamp;
int in_loss_recovery;
- int packet_conservation;
+ uint64_t round_count_at_recovery;
uint64_t max_inflight;
ngtcp2_tstamp congestion_recovery_start_ts;
- uint64_t congestion_recovery_next_round_delivered;
-
- uint64_t prior_inflight_lo;
- uint64_t prior_inflight_hi;
- uint64_t prior_bw_lo;
} ngtcp2_cc_bbr;
void ngtcp2_cc_bbr_init(ngtcp2_cc_bbr *bbr, ngtcp2_log *log,
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c
index a5a47b7..0e272c8 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c
@@ -1167,9 +1167,9 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid,
ngtcp2_pq_init(&(*pconn)->tx.strmq, cycle_less, mem);
- ngtcp2_idtr_init(&(*pconn)->remote.bidi.idtr, !server, mem);
+ ngtcp2_idtr_init(&(*pconn)->remote.bidi.idtr, mem);
- ngtcp2_idtr_init(&(*pconn)->remote.uni.idtr, !server, mem);
+ ngtcp2_idtr_init(&(*pconn)->remote.uni.idtr, mem);
ngtcp2_static_ringbuf_path_challenge_init(&(*pconn)->rx.path_challenge);
@@ -1604,7 +1604,7 @@ void ngtcp2_conn_del(ngtcp2_conn *conn) {
ngtcp2_idtr_free(&conn->remote.bidi.idtr);
ngtcp2_mem_free(conn->mem, conn->tx.ack);
ngtcp2_pq_free(&conn->tx.strmq);
- ngtcp2_map_each_free(&conn->strms, delete_strms_each, (void *)conn);
+ ngtcp2_map_each(&conn->strms, delete_strms_each, (void *)conn);
ngtcp2_map_free(&conn->strms);
ngtcp2_pq_free(&conn->scid.used);
@@ -12729,7 +12729,7 @@ static void conn_discard_early_data_state(ngtcp2_conn *conn) {
ngtcp2_rtb_remove_early_data(&conn->pktns.rtb, &conn->cstat);
- ngtcp2_map_each_free(&conn->strms, delete_strms_pq_each, conn);
+ ngtcp2_map_each(&conn->strms, delete_strms_pq_each, conn);
ngtcp2_map_clear(&conn->strms);
conn->tx.offset = 0;
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c
index 87c2389..6f8e055 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c
@@ -36,14 +36,8 @@ void ngtcp2_gaptr_init(ngtcp2_gaptr *gaptr, const ngtcp2_mem *mem) {
static int gaptr_gap_init(ngtcp2_gaptr *gaptr) {
ngtcp2_range range = {0, UINT64_MAX};
- int rv;
-
- rv = ngtcp2_ksl_insert(&gaptr->gap, NULL, &range, NULL);
- if (rv != 0) {
- return rv;
- }
- return 0;
+ return ngtcp2_ksl_insert(&gaptr->gap, NULL, &range, NULL);
}
void ngtcp2_gaptr_free(ngtcp2_gaptr *gaptr) {
@@ -80,7 +74,9 @@ int ngtcp2_gaptr_push(ngtcp2_gaptr *gaptr, uint64_t offset, uint64_t datalen) {
ngtcp2_ksl_remove_hint(&gaptr->gap, &it, &it, &k);
continue;
}
+
ngtcp2_range_cut(&l, &r, &k, &m);
+
if (ngtcp2_range_len(&l)) {
ngtcp2_ksl_update_key(&gaptr->gap, &k, &l);
@@ -93,23 +89,23 @@ int ngtcp2_gaptr_push(ngtcp2_gaptr *gaptr, uint64_t offset, uint64_t datalen) {
} else if (ngtcp2_range_len(&r)) {
ngtcp2_ksl_update_key(&gaptr->gap, &k, &r);
}
+
ngtcp2_ksl_it_next(&it);
}
+
return 0;
}
uint64_t ngtcp2_gaptr_first_gap_offset(ngtcp2_gaptr *gaptr) {
ngtcp2_ksl_it it;
- ngtcp2_range r;
if (ngtcp2_ksl_len(&gaptr->gap) == 0) {
return 0;
}
it = ngtcp2_ksl_begin(&gaptr->gap);
- r = *(ngtcp2_range *)ngtcp2_ksl_it_key(&it);
- return r.begin;
+ return ((ngtcp2_range *)ngtcp2_ksl_it_key(&it))->begin;
}
ngtcp2_range ngtcp2_gaptr_get_first_gap_after(ngtcp2_gaptr *gaptr,
@@ -134,7 +130,6 @@ int ngtcp2_gaptr_is_pushed(ngtcp2_gaptr *gaptr, uint64_t offset,
uint64_t datalen) {
ngtcp2_range q = {offset, offset + datalen};
ngtcp2_ksl_it it;
- ngtcp2_range k;
ngtcp2_range m;
if (ngtcp2_ksl_len(&gaptr->gap) == 0) {
@@ -143,8 +138,7 @@ int ngtcp2_gaptr_is_pushed(ngtcp2_gaptr *gaptr, uint64_t offset,
it = ngtcp2_ksl_lower_bound_compar(&gaptr->gap, &q,
ngtcp2_ksl_range_exclusive_compar);
- k = *(ngtcp2_range *)ngtcp2_ksl_it_key(&it);
- m = ngtcp2_range_intersect(&q, &k);
+ m = ngtcp2_range_intersect(&q, (ngtcp2_range *)ngtcp2_ksl_it_key(&it));
return ngtcp2_range_len(&m) == 0;
}
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.h
index 0f100a8..e3fea1c 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.h
@@ -39,8 +39,9 @@
* ngtcp2_gaptr maintains the gap in the range [0, UINT64_MAX).
*/
typedef struct ngtcp2_gaptr {
- /* gap maintains the range of offset which is not received
- yet. Initially, its range is [0, UINT64_MAX). */
+ /* gap maintains the range of offset which is not pushed
+ yet. Initially, its range is [0, UINT64_MAX). "gap" is the range
+ that is not pushed yet. */
ngtcp2_ksl gap;
/* mem is custom memory allocator */
const ngtcp2_mem *mem;
@@ -57,8 +58,7 @@ void ngtcp2_gaptr_init(ngtcp2_gaptr *gaptr, const ngtcp2_mem *mem);
void ngtcp2_gaptr_free(ngtcp2_gaptr *gaptr);
/*
- * ngtcp2_gaptr_push adds new data of length |datalen| at the stream
- * offset |offset|.
+ * ngtcp2_gaptr_push pushes the range [offset, offset + datalen).
*
* This function returns 0 if it succeeds, or one of the following
* negative error codes:
@@ -76,7 +76,7 @@ uint64_t ngtcp2_gaptr_first_gap_offset(ngtcp2_gaptr *gaptr);
/*
* ngtcp2_gaptr_get_first_gap_after returns the first gap which
- * overlaps or comes after |offset|.
+ * includes or comes after |offset|.
*/
ngtcp2_range ngtcp2_gaptr_get_first_gap_after(ngtcp2_gaptr *gaptr,
uint64_t offset);
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_idtr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_idtr.c
index d988022..93c6ac9 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_idtr.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_idtr.c
@@ -26,10 +26,8 @@
#include <assert.h>
-void ngtcp2_idtr_init(ngtcp2_idtr *idtr, int server, const ngtcp2_mem *mem) {
+void ngtcp2_idtr_init(ngtcp2_idtr *idtr, const ngtcp2_mem *mem) {
ngtcp2_gaptr_init(&idtr->gap, mem);
-
- idtr->server = server;
}
void ngtcp2_idtr_free(ngtcp2_idtr *idtr) {
@@ -41,8 +39,7 @@ void ngtcp2_idtr_free(ngtcp2_idtr *idtr) {
}
/*
- * id_from_stream_id translates |stream_id| to id space used by
- * ngtcp2_idtr.
+ * id_from_stream_id translates |stream_id| to an internal ID.
*/
static uint64_t id_from_stream_id(int64_t stream_id) {
return (uint64_t)(stream_id >> 2);
@@ -51,9 +48,6 @@ static uint64_t id_from_stream_id(int64_t stream_id) {
int ngtcp2_idtr_open(ngtcp2_idtr *idtr, int64_t stream_id) {
uint64_t q;
- assert((idtr->server && (stream_id % 2)) ||
- (!idtr->server && (stream_id % 2)) == 0);
-
q = id_from_stream_id(stream_id);
if (ngtcp2_gaptr_is_pushed(&idtr->gap, q, 1)) {
@@ -66,14 +60,7 @@ int ngtcp2_idtr_open(ngtcp2_idtr *idtr, int64_t stream_id) {
int ngtcp2_idtr_is_open(ngtcp2_idtr *idtr, int64_t stream_id) {
uint64_t q;
- assert((idtr->server && (stream_id % 2)) ||
- (!idtr->server && (stream_id % 2)) == 0);
-
q = id_from_stream_id(stream_id);
return ngtcp2_gaptr_is_pushed(&idtr->gap, q, 1);
}
-
-uint64_t ngtcp2_idtr_first_gap(ngtcp2_idtr *idtr) {
- return ngtcp2_gaptr_first_gap_offset(&idtr->gap);
-}
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_idtr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_idtr.h
index edb8c68..cdb2b61 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_idtr.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_idtr.h
@@ -38,21 +38,17 @@
* ngtcp2_idtr tracks the usage of stream ID.
*/
typedef struct ngtcp2_idtr {
- /* gap maintains the range of ID which is not used yet. Initially,
- its range is [0, UINT64_MAX). */
+ /* gap maintains the range of an internal ID which is not used yet.
+ Initially, its range is [0, UINT64_MAX). The internal ID and
+ stream ID are in the different number spaces. See
+ id_from_stream_id to convert a stream ID to an internal ID. */
ngtcp2_gaptr gap;
- /* server is nonzero if this object records server initiated stream
- ID. */
- int server;
} ngtcp2_idtr;
/*
* ngtcp2_idtr_init initializes |idtr|.
- *
- * If this object records server initiated ID (even number), set
- * |server| to nonzero.
*/
-void ngtcp2_idtr_init(ngtcp2_idtr *idtr, int server, const ngtcp2_mem *mem);
+void ngtcp2_idtr_init(ngtcp2_idtr *idtr, const ngtcp2_mem *mem);
/*
* ngtcp2_idtr_free frees resources allocated for |idtr|.
@@ -60,30 +56,21 @@ void ngtcp2_idtr_init(ngtcp2_idtr *idtr, int server, const ngtcp2_mem *mem);
void ngtcp2_idtr_free(ngtcp2_idtr *idtr);
/*
- * ngtcp2_idtr_open claims that |stream_id| is in used.
+ * ngtcp2_idtr_open claims that |stream_id| is in use.
*
* It returns 0 if it succeeds, or one of the following negative error
* codes:
*
* NGTCP2_ERR_STREAM_IN_USE
- * ID has already been used.
+ * |stream_id| has already been used.
* NGTCP2_ERR_NOMEM
* Out of memory.
*/
int ngtcp2_idtr_open(ngtcp2_idtr *idtr, int64_t stream_id);
/*
- * ngtcp2_idtr_open tells whether ID |stream_id| is in used or not.
- *
- * It returns nonzero if |stream_id| is used.
+ * ngtcp2_idtr_open returns nonzero if |stream_id| is in use.
*/
int ngtcp2_idtr_is_open(ngtcp2_idtr *idtr, int64_t stream_id);
-/*
- * ngtcp2_idtr_first_gap returns the first id of first gap. If there
- * is no gap, it returns UINT64_MAX. The returned id is an id space
- * used in this object internally, and not stream ID.
- */
-uint64_t ngtcp2_idtr_first_gap(ngtcp2_idtr *idtr);
-
#endif /* NGTCP2_IDTR_H */
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c
index a7284bd..df2b640 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c
@@ -38,8 +38,10 @@ static ngtcp2_ksl_blk null_blk = {{{NULL, NULL, 0, 0, {0}}}};
ngtcp2_objalloc_def(ksl_blk, ngtcp2_ksl_blk, oplent);
static size_t ksl_nodelen(size_t keylen) {
- return (sizeof(ngtcp2_ksl_node) + keylen - sizeof(uint64_t) + 0xfu) &
- ~(uintptr_t)0xfu;
+ assert(keylen >= sizeof(uint64_t));
+
+ return (sizeof(ngtcp2_ksl_node) + keylen - sizeof(uint64_t) + 0x7u) &
+ ~(uintptr_t)0x7u;
}
static size_t ksl_blklen(size_t nodelen) {
@@ -65,9 +67,9 @@ void ngtcp2_ksl_init(ngtcp2_ksl *ksl, ngtcp2_ksl_compar compar, size_t keylen,
ksl->head = NULL;
ksl->front = ksl->back = NULL;
ksl->compar = compar;
+ ksl->n = 0;
ksl->keylen = keylen;
ksl->nodelen = nodelen;
- ksl->n = 0;
}
static ngtcp2_ksl_blk *ksl_blk_objalloc_new(ngtcp2_ksl *ksl) {
@@ -81,6 +83,7 @@ static void ksl_blk_objalloc_del(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk) {
static int ksl_head_init(ngtcp2_ksl *ksl) {
ngtcp2_ksl_blk *head = ksl_blk_objalloc_new(ksl);
+
if (!head) {
return NGTCP2_ERR_NOMEM;
}
@@ -142,21 +145,22 @@ static ngtcp2_ksl_blk *ksl_split_blk(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk) {
rblk->next = blk->next;
blk->next = rblk;
+
if (rblk->next) {
rblk->next->prev = rblk;
} else if (ksl->back == blk) {
ksl->back = rblk;
}
+
rblk->prev = blk;
rblk->leaf = blk->leaf;
rblk->n = blk->n / 2;
+ blk->n -= rblk->n;
- memcpy(rblk->nodes, blk->nodes + ksl->nodelen * (blk->n - rblk->n),
+ memcpy(rblk->nodes, blk->nodes + ksl->nodelen * blk->n,
ksl->nodelen * rblk->n);
- blk->n -= rblk->n;
-
assert(blk->n >= NGTCP2_KSL_MIN_NBLK);
assert(rblk->n >= NGTCP2_KSL_MIN_NBLK);
@@ -172,7 +176,7 @@ static ngtcp2_ksl_blk *ksl_split_blk(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk) {
* codes:
*
* NGTCP2_ERR_NOMEM
- * Out of memory.
+ * Out of memory.
*/
static int ksl_split_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) {
ngtcp2_ksl_node *node;
@@ -206,7 +210,7 @@ static int ksl_split_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) {
* codes:
*
* NGTCP2_ERR_NOMEM
- * Out of memory.
+ * Out of memory.
*/
static int ksl_split_head(ngtcp2_ksl *ksl) {
ngtcp2_ksl_blk *rblk = NULL, *lblk, *nhead = NULL;
@@ -220,10 +224,12 @@ static int ksl_split_head(ngtcp2_ksl *ksl) {
lblk = ksl->head;
nhead = ksl_blk_objalloc_new(ksl);
+
if (nhead == NULL) {
ksl_blk_objalloc_del(ksl, rblk);
return NGTCP2_ERR_NOMEM;
}
+
nhead->next = nhead->prev = NULL;
nhead->n = 2;
nhead->leaf = 0;
@@ -242,9 +248,9 @@ static int ksl_split_head(ngtcp2_ksl *ksl) {
}
/*
- * insert_node inserts a node whose key is |key| with the associated
- * |data| at the index of |i|. This function assumes that the number
- * of nodes contained by |blk| is strictly less than
+ * ksl_insert_node inserts a node whose key is |key| with the
+ * associated |data| at the index of |i|. This function assumes that
+ * the number of nodes contained by |blk| is strictly less than
* NGTCP2_KSL_MAX_NBLK.
*/
static void ksl_insert_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i,
@@ -263,8 +269,8 @@ static void ksl_insert_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i,
++blk->n;
}
-static size_t ksl_bsearch(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk,
- const ngtcp2_ksl_key *key, ngtcp2_ksl_compar compar) {
+static size_t ksl_search(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk,
+ const ngtcp2_ksl_key *key, ngtcp2_ksl_compar compar) {
size_t i;
ngtcp2_ksl_node *node;
@@ -290,18 +296,17 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
}
}
- blk = ksl->head;
-
- if (blk->n == NGTCP2_KSL_MAX_NBLK) {
+ if (ksl->head->n == NGTCP2_KSL_MAX_NBLK) {
rv = ksl_split_head(ksl);
if (rv != 0) {
return rv;
}
- blk = ksl->head;
}
+ blk = ksl->head;
+
for (;;) {
- i = ksl_bsearch(ksl, blk, key, ksl->compar);
+ i = ksl_search(ksl, blk, key, ksl->compar);
if (blk->leaf) {
if (i < blk->n &&
@@ -309,13 +314,17 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
if (it) {
*it = ngtcp2_ksl_end(ksl);
}
+
return NGTCP2_ERR_INVALID_ARGUMENT;
}
+
ksl_insert_node(ksl, blk, i, key, data);
++ksl->n;
+
if (it) {
ngtcp2_ksl_it_init(it, ksl, blk, i);
}
+
return 0;
}
@@ -328,16 +337,21 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
if (rv != 0) {
return rv;
}
+
node = ngtcp2_ksl_nth_node(ksl, blk, blk->n - 1);
}
+
ksl_node_set_key(ksl, node, key);
blk = node->blk;
}
+
ksl_insert_node(ksl, blk, blk->n, key, data);
++ksl->n;
+
if (it) {
ngtcp2_ksl_it_init(it, ksl, blk, blk->n - 1);
}
+
return 0;
}
@@ -348,8 +362,10 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
if (rv != 0) {
return rv;
}
+
if (ksl->compar((ngtcp2_ksl_key *)node->key, key)) {
node = ngtcp2_ksl_nth_node(ksl, blk, i + 1);
+
if (ksl->compar((ngtcp2_ksl_key *)node->key, key)) {
ksl_node_set_key(ksl, node, key);
}
@@ -375,19 +391,22 @@ static void ksl_remove_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) {
* ksl_merge_node merges 2 nodes which are the nodes at the index of
* |i| and |i + 1|.
*
- * If |blk| is the direct descendant of head (root) block and the head
- * block contains just 2 nodes, the merged block becomes head block,
- * which decreases the height of |ksl| by 1.
+ * If |blk| is the head (root) block and it contains just 2 nodes
+ * before merging nodes, the merged block becomes head block, which
+ * decreases the height of |ksl| by 1.
*
* This function returns the pointer to the merged block.
*/
static ngtcp2_ksl_blk *ksl_merge_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk,
size_t i) {
+ ngtcp2_ksl_node *lnode;
ngtcp2_ksl_blk *lblk, *rblk;
assert(i + 1 < blk->n);
- lblk = ngtcp2_ksl_nth_node(ksl, blk, i)->blk;
+ lnode = ngtcp2_ksl_nth_node(ksl, blk, i);
+
+ lblk = lnode->blk;
rblk = ngtcp2_ksl_nth_node(ksl, blk, i + 1)->blk;
assert(lblk->n + rblk->n < NGTCP2_KSL_MAX_NBLK);
@@ -397,6 +416,7 @@ static ngtcp2_ksl_blk *ksl_merge_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk,
lblk->n += rblk->n;
lblk->next = rblk->next;
+
if (lblk->next) {
lblk->next->prev = lblk;
} else if (ksl->back == rblk) {
@@ -410,7 +430,7 @@ static ngtcp2_ksl_blk *ksl_merge_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk,
ksl->head = lblk;
} else {
ksl_remove_node(ksl, blk, i + 1);
- ksl_node_set_key(ksl, ngtcp2_ksl_nth_node(ksl, blk, i),
+ ksl_node_set_key(ksl, lnode,
ngtcp2_ksl_nth_node(ksl, lblk, lblk->n - 1)->key);
}
@@ -424,6 +444,7 @@ static ngtcp2_ksl_blk *ksl_merge_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk,
*/
static void ksl_shift_left(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) {
ngtcp2_ksl_node *lnode, *rnode;
+ ngtcp2_ksl_blk *lblk, *rblk;
size_t n;
assert(i > 0);
@@ -431,35 +452,37 @@ static void ksl_shift_left(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) {
lnode = ngtcp2_ksl_nth_node(ksl, blk, i - 1);
rnode = ngtcp2_ksl_nth_node(ksl, blk, i);
- assert(lnode->blk->n < NGTCP2_KSL_MAX_NBLK);
- assert(rnode->blk->n > NGTCP2_KSL_MIN_NBLK);
+ lblk = lnode->blk;
+ rblk = rnode->blk;
+
+ assert(lblk->n < NGTCP2_KSL_MAX_NBLK);
+ assert(rblk->n > NGTCP2_KSL_MIN_NBLK);
- n = (lnode->blk->n + rnode->blk->n + 1) / 2 - lnode->blk->n;
+ n = (lblk->n + rblk->n + 1) / 2 - lblk->n;
assert(n > 0);
- assert(lnode->blk->n <= NGTCP2_KSL_MAX_NBLK - n);
- assert(rnode->blk->n >= NGTCP2_KSL_MIN_NBLK + n);
+ assert(lblk->n <= NGTCP2_KSL_MAX_NBLK - n);
+ assert(rblk->n >= NGTCP2_KSL_MIN_NBLK + n);
- memcpy(lnode->blk->nodes + ksl->nodelen * lnode->blk->n, rnode->blk->nodes,
- ksl->nodelen * n);
+ memcpy(lblk->nodes + ksl->nodelen * lblk->n, rblk->nodes, ksl->nodelen * n);
- lnode->blk->n += (uint32_t)n;
- rnode->blk->n -= (uint32_t)n;
+ lblk->n += (uint32_t)n;
+ rblk->n -= (uint32_t)n;
- ksl_node_set_key(
- ksl, lnode, ngtcp2_ksl_nth_node(ksl, lnode->blk, lnode->blk->n - 1)->key);
+ ksl_node_set_key(ksl, lnode,
+ ngtcp2_ksl_nth_node(ksl, lblk, lblk->n - 1)->key);
- memmove(rnode->blk->nodes, rnode->blk->nodes + ksl->nodelen * n,
- ksl->nodelen * rnode->blk->n);
+ memmove(rblk->nodes, rblk->nodes + ksl->nodelen * n, ksl->nodelen * rblk->n);
}
/*
* ksl_shift_right moves the last nodes in blk->nodes[i]->blk->nodes
* to blk->nodes[i + 1]->blk->nodes in a manner that they have the
- * same amount of nodes as much as possible..
+ * same amount of nodes as much as possible.
*/
static void ksl_shift_right(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) {
ngtcp2_ksl_node *lnode, *rnode;
+ ngtcp2_ksl_blk *lblk, *rblk;
size_t n;
assert(i < blk->n - 1);
@@ -467,26 +490,27 @@ static void ksl_shift_right(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) {
lnode = ngtcp2_ksl_nth_node(ksl, blk, i);
rnode = ngtcp2_ksl_nth_node(ksl, blk, i + 1);
- assert(lnode->blk->n > NGTCP2_KSL_MIN_NBLK);
- assert(rnode->blk->n < NGTCP2_KSL_MAX_NBLK);
+ lblk = lnode->blk;
+ rblk = rnode->blk;
- n = (lnode->blk->n + rnode->blk->n + 1) / 2 - rnode->blk->n;
+ assert(lblk->n > NGTCP2_KSL_MIN_NBLK);
+ assert(rblk->n < NGTCP2_KSL_MAX_NBLK);
+
+ n = (lblk->n + rblk->n + 1) / 2 - rblk->n;
assert(n > 0);
- assert(lnode->blk->n >= NGTCP2_KSL_MIN_NBLK + n);
- assert(rnode->blk->n <= NGTCP2_KSL_MAX_NBLK - n);
+ assert(lblk->n >= NGTCP2_KSL_MIN_NBLK + n);
+ assert(rblk->n <= NGTCP2_KSL_MAX_NBLK - n);
- memmove(rnode->blk->nodes + ksl->nodelen * n, rnode->blk->nodes,
- ksl->nodelen * rnode->blk->n);
+ memmove(rblk->nodes + ksl->nodelen * n, rblk->nodes, ksl->nodelen * rblk->n);
- rnode->blk->n += (uint32_t)n;
- lnode->blk->n -= (uint32_t)n;
+ rblk->n += (uint32_t)n;
+ lblk->n -= (uint32_t)n;
- memcpy(rnode->blk->nodes, lnode->blk->nodes + ksl->nodelen * lnode->blk->n,
- ksl->nodelen * n);
+ memcpy(rblk->nodes, lblk->nodes + ksl->nodelen * lblk->n, ksl->nodelen * n);
- ksl_node_set_key(
- ksl, lnode, ngtcp2_ksl_nth_node(ksl, lnode->blk, lnode->blk->n - 1)->key);
+ ksl_node_set_key(ksl, lnode,
+ ngtcp2_ksl_nth_node(ksl, lblk, lblk->n - 1)->key);
}
/*
@@ -530,23 +554,24 @@ int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
ngtcp2_ksl_node *node;
size_t i;
- if (!ksl->head) {
+ if (!blk) {
return NGTCP2_ERR_INVALID_ARGUMENT;
}
if (!blk->leaf && blk->n == 2 &&
ngtcp2_ksl_nth_node(ksl, blk, 0)->blk->n == NGTCP2_KSL_MIN_NBLK &&
ngtcp2_ksl_nth_node(ksl, blk, 1)->blk->n == NGTCP2_KSL_MIN_NBLK) {
- blk = ksl_merge_node(ksl, ksl->head, 0);
+ blk = ksl_merge_node(ksl, blk, 0);
}
for (;;) {
- i = ksl_bsearch(ksl, blk, key, ksl->compar);
+ i = ksl_search(ksl, blk, key, ksl->compar);
if (i == blk->n) {
if (it) {
*it = ngtcp2_ksl_end(ksl);
}
+
return NGTCP2_ERR_INVALID_ARGUMENT;
}
@@ -555,10 +580,13 @@ int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
if (it) {
*it = ngtcp2_ksl_end(ksl);
}
+
return NGTCP2_ERR_INVALID_ARGUMENT;
}
+
ksl_remove_node(ksl, blk, i);
--ksl->n;
+
if (it) {
if (blk->n == i && blk->next) {
ngtcp2_ksl_it_init(it, ksl, blk->next, 0);
@@ -566,6 +594,7 @@ int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
ngtcp2_ksl_it_init(it, ksl, blk, i);
}
}
+
return 0;
}
@@ -582,6 +611,7 @@ int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
ngtcp2_ksl_nth_node(ksl, blk, i + 1)->blk->n > NGTCP2_KSL_MIN_NBLK) {
ksl_shift_left(ksl, blk, i + 1);
blk = node->blk;
+
continue;
}
@@ -589,6 +619,7 @@ int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
ngtcp2_ksl_nth_node(ksl, blk, i - 1)->blk->n > NGTCP2_KSL_MIN_NBLK) {
ksl_shift_right(ksl, blk, i - 1);
blk = node->blk;
+
continue;
}
@@ -603,48 +634,12 @@ int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
}
}
-ngtcp2_ksl_it ngtcp2_ksl_lower_bound(ngtcp2_ksl *ksl,
+ngtcp2_ksl_it ngtcp2_ksl_lower_bound(const ngtcp2_ksl *ksl,
const ngtcp2_ksl_key *key) {
- ngtcp2_ksl_blk *blk = ksl->head;
- ngtcp2_ksl_it it;
- size_t i;
-
- if (!blk) {
- ngtcp2_ksl_it_init(&it, ksl, &null_blk, 0);
- return it;
- }
-
- for (;;) {
- i = ksl_bsearch(ksl, blk, key, ksl->compar);
-
- if (blk->leaf) {
- if (i == blk->n && blk->next) {
- blk = blk->next;
- i = 0;
- }
- ngtcp2_ksl_it_init(&it, ksl, blk, i);
- return it;
- }
-
- if (i == blk->n) {
- /* This happens if descendant has smaller key. Fast forward to
- find last node in this subtree. */
- for (; !blk->leaf; blk = ngtcp2_ksl_nth_node(ksl, blk, blk->n - 1)->blk)
- ;
- if (blk->next) {
- blk = blk->next;
- i = 0;
- } else {
- i = blk->n;
- }
- ngtcp2_ksl_it_init(&it, ksl, blk, i);
- return it;
- }
- blk = ngtcp2_ksl_nth_node(ksl, blk, i)->blk;
- }
+ return ngtcp2_ksl_lower_bound_compar(ksl, key, ksl->compar);
}
-ngtcp2_ksl_it ngtcp2_ksl_lower_bound_compar(ngtcp2_ksl *ksl,
+ngtcp2_ksl_it ngtcp2_ksl_lower_bound_compar(const ngtcp2_ksl *ksl,
const ngtcp2_ksl_key *key,
ngtcp2_ksl_compar compar) {
ngtcp2_ksl_blk *blk = ksl->head;
@@ -657,14 +652,16 @@ ngtcp2_ksl_it ngtcp2_ksl_lower_bound_compar(ngtcp2_ksl *ksl,
}
for (;;) {
- i = ksl_bsearch(ksl, blk, key, compar);
+ i = ksl_search(ksl, blk, key, compar);
if (blk->leaf) {
if (i == blk->n && blk->next) {
blk = blk->next;
i = 0;
}
+
ngtcp2_ksl_it_init(&it, ksl, blk, i);
+
return it;
}
@@ -673,15 +670,19 @@ ngtcp2_ksl_it ngtcp2_ksl_lower_bound_compar(ngtcp2_ksl *ksl,
find last node in this subtree. */
for (; !blk->leaf; blk = ngtcp2_ksl_nth_node(ksl, blk, blk->n - 1)->blk)
;
+
if (blk->next) {
blk = blk->next;
i = 0;
} else {
i = blk->n;
}
+
ngtcp2_ksl_it_init(&it, ksl, blk, i);
+
return it;
}
+
blk = ngtcp2_ksl_nth_node(ksl, blk, i)->blk;
}
}
@@ -695,7 +696,7 @@ void ngtcp2_ksl_update_key(ngtcp2_ksl *ksl, const ngtcp2_ksl_key *old_key,
assert(ksl->head);
for (;;) {
- i = ksl_bsearch(ksl, blk, old_key, ksl->compar);
+ i = ksl_search(ksl, blk, old_key, ksl->compar);
assert(i < blk->n);
node = ngtcp2_ksl_nth_node(ksl, blk, i);
@@ -703,6 +704,7 @@ void ngtcp2_ksl_update_key(ngtcp2_ksl *ksl, const ngtcp2_ksl_key *old_key,
if (blk->leaf) {
assert(key_equal(ksl->compar, (ngtcp2_ksl_key *)node->key, old_key));
ksl_node_set_key(ksl, node, new_key);
+
return;
}
@@ -715,7 +717,7 @@ void ngtcp2_ksl_update_key(ngtcp2_ksl *ksl, const ngtcp2_ksl_key *old_key,
}
}
-size_t ngtcp2_ksl_len(ngtcp2_ksl *ksl) { return ksl->n; }
+size_t ngtcp2_ksl_len(const ngtcp2_ksl *ksl) { return ksl->n; }
void ngtcp2_ksl_clear(ngtcp2_ksl *ksl) {
if (!ksl->head) {
@@ -733,7 +735,8 @@ void ngtcp2_ksl_clear(ngtcp2_ksl *ksl) {
}
#ifndef WIN32
-static void ksl_print(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t level) {
+static void ksl_print(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk,
+ size_t level) {
size_t i;
ngtcp2_ksl_node *node;
@@ -744,7 +747,9 @@ static void ksl_print(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t level) {
node = ngtcp2_ksl_nth_node(ksl, blk, i);
fprintf(stderr, " %" PRId64, *(int64_t *)(void *)node->key);
}
+
fprintf(stderr, "\n");
+
return;
}
@@ -753,7 +758,7 @@ static void ksl_print(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t level) {
}
}
-void ngtcp2_ksl_print(ngtcp2_ksl *ksl) {
+void ngtcp2_ksl_print(const ngtcp2_ksl *ksl) {
if (!ksl->head) {
return;
}
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h
index d972bfc..89b5f2b 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h
@@ -35,10 +35,6 @@
#include "ngtcp2_objalloc.h"
-/*
- * Skip List using single key instead of range.
- */
-
#define NGTCP2_KSL_DEGR 16
/* NGTCP2_KSL_MAX_NBLK is the maximum number of nodes which a single
block can contain. */
@@ -85,7 +81,8 @@ struct ngtcp2_ksl_blk {
struct {
/* next points to the next block if leaf field is nonzero. */
ngtcp2_ksl_blk *next;
- /* prev points to the previous block if leaf field is nonzero. */
+ /* prev points to the previous block if leaf field is
+ nonzero. */
ngtcp2_ksl_blk *prev;
/* n is the number of nodes this object contains in nodes. */
uint32_t n;
@@ -120,7 +117,7 @@ typedef struct ngtcp2_ksl ngtcp2_ksl;
typedef struct ngtcp2_ksl_it ngtcp2_ksl_it;
/*
- * ngtcp2_ksl_it is a forward iterator to iterate nodes.
+ * ngtcp2_ksl_it is a bidirectional iterator to iterate nodes.
*/
struct ngtcp2_ksl_it {
const ngtcp2_ksl *ksl;
@@ -140,6 +137,7 @@ struct ngtcp2_ksl {
/* back points to the last leaf block. */
ngtcp2_ksl_blk *back;
ngtcp2_ksl_compar compar;
+ /* n is the number of elements stored. */
size_t n;
/* keylen is the size of key */
size_t keylen;
@@ -150,7 +148,8 @@ struct ngtcp2_ksl {
/*
* ngtcp2_ksl_init initializes |ksl|. |compar| specifies compare
- * function. |keylen| is the length of key.
+ * function. |keylen| is the length of key and must be at least
+ * sizeof(uint64_t).
*/
void ngtcp2_ksl_init(ngtcp2_ksl *ksl, ngtcp2_ksl_compar compar, size_t keylen,
const ngtcp2_mem *mem);
@@ -165,15 +164,15 @@ void ngtcp2_ksl_free(ngtcp2_ksl *ksl);
/*
* ngtcp2_ksl_insert inserts |key| with its associated |data|. On
* successful insertion, the iterator points to the inserted node is
- * stored in |*it|.
+ * stored in |*it| if |it| is not NULL.
*
* This function returns 0 if it succeeds, or one of the following
* negative error codes:
*
* NGTCP2_ERR_NOMEM
- * Out of memory.
+ * Out of memory.
* NGTCP2_ERR_INVALID_ARGUMENT
- * |key| already exists.
+ * |key| already exists.
*/
int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
const ngtcp2_ksl_key *key, void *data);
@@ -184,13 +183,14 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
* This function assigns the iterator to |*it|, which points to the
* node which is located at the right next of the removed node if |it|
* is not NULL. If |key| is not found, no deletion takes place and
- * the return value of ngtcp2_ksl_end(ksl) is assigned to |*it|.
+ * the return value of ngtcp2_ksl_end(ksl) is assigned to |*it| if
+ * |it| is not NULL.
*
* This function returns 0 if it succeeds, or one of the following
* negative error codes:
*
* NGTCP2_ERR_INVALID_ARGUMENT
- * |key| does not exist.
+ * |key| does not exist.
*/
int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
const ngtcp2_ksl_key *key);
@@ -213,14 +213,14 @@ int ngtcp2_ksl_remove_hint(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it,
* node, it returns the iterator which satisfies ngtcp2_ksl_it_end(it)
* != 0.
*/
-ngtcp2_ksl_it ngtcp2_ksl_lower_bound(ngtcp2_ksl *ksl,
+ngtcp2_ksl_it ngtcp2_ksl_lower_bound(const ngtcp2_ksl *ksl,
const ngtcp2_ksl_key *key);
/*
* ngtcp2_ksl_lower_bound_compar works like ngtcp2_ksl_lower_bound,
* but it takes custom function |compar| to do lower bound search.
*/
-ngtcp2_ksl_it ngtcp2_ksl_lower_bound_compar(ngtcp2_ksl *ksl,
+ngtcp2_ksl_it ngtcp2_ksl_lower_bound_compar(const ngtcp2_ksl *ksl,
const ngtcp2_ksl_key *key,
ngtcp2_ksl_compar compar);
@@ -235,7 +235,8 @@ void ngtcp2_ksl_update_key(ngtcp2_ksl *ksl, const ngtcp2_ksl_key *old_key,
/*
* ngtcp2_ksl_begin returns the iterator which points to the first
* node. If there is no node in |ksl|, it returns the iterator which
- * satisfies ngtcp2_ksl_it_end(it) != 0.
+ * satisfies both ngtcp2_ksl_it_begin(it) != 0 and
+ * ngtcp2_ksl_it_end(it) != 0.
*/
ngtcp2_ksl_it ngtcp2_ksl_begin(const ngtcp2_ksl *ksl);
@@ -243,14 +244,15 @@ ngtcp2_ksl_it ngtcp2_ksl_begin(const ngtcp2_ksl *ksl);
* ngtcp2_ksl_end returns the iterator which points to the node
* following the last node. The returned object satisfies
* ngtcp2_ksl_it_end(). If there is no node in |ksl|, it returns the
- * iterator which satisfies ngtcp2_ksl_it_begin(it) != 0.
+ * iterator which satisfies ngtcp2_ksl_it_begin(it) != 0 and
+ * ngtcp2_ksl_it_end(it) != 0.
*/
ngtcp2_ksl_it ngtcp2_ksl_end(const ngtcp2_ksl *ksl);
/*
* ngtcp2_ksl_len returns the number of elements stored in |ksl|.
*/
-size_t ngtcp2_ksl_len(ngtcp2_ksl *ksl);
+size_t ngtcp2_ksl_len(const ngtcp2_ksl *ksl);
/*
* ngtcp2_ksl_clear removes all elements stored in |ksl|.
@@ -269,7 +271,7 @@ void ngtcp2_ksl_clear(ngtcp2_ksl *ksl);
* that the key is of type int64_t. This function should be used for
* the debugging purpose only.
*/
-void ngtcp2_ksl_print(ngtcp2_ksl *ksl);
+void ngtcp2_ksl_print(const ngtcp2_ksl *ksl);
#endif /* !WIN32 */
/*
@@ -304,16 +306,16 @@ void ngtcp2_ksl_it_init(ngtcp2_ksl_it *it, const ngtcp2_ksl *ksl,
void ngtcp2_ksl_it_prev(ngtcp2_ksl_it *it);
/*
- * ngtcp2_ksl_it_end returns nonzero if |it| points to the beyond the
- * last node.
+ * ngtcp2_ksl_it_end returns nonzero if |it| points to the one beyond
+ * the last node.
*/
#define ngtcp2_ksl_it_end(IT) \
((IT)->blk->n == (IT)->i && (IT)->blk->next == NULL)
/*
* ngtcp2_ksl_it_begin returns nonzero if |it| points to the first
- * node. |it| might satisfy both ngtcp2_ksl_it_begin(&it) and
- * ngtcp2_ksl_it_end(&it) if the skip list has no node.
+ * node. |it| might satisfy both ngtcp2_ksl_it_begin(it) != 0 and
+ * ngtcp2_ksl_it_end(it) != 0 if the skip list has no node.
*/
int ngtcp2_ksl_it_begin(const ngtcp2_ksl_it *it);
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_macro.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_macro.h
index 46cfebc..62d7036 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_macro.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_macro.h
@@ -34,7 +34,7 @@
#include <ngtcp2/ngtcp2.h>
#define ngtcp2_struct_of(ptr, type, member) \
- ((type *)(void *)((char *)(ptr)-offsetof(type, member)))
+ ((type *)(void *)((char *)(ptr) - offsetof(type, member)))
/* ngtcp2_list_insert inserts |T| before |*PD|. The contract is that
this is singly linked list, and the next element is pointed by next
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c
index 33e9fcc..10cb657 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c
@@ -35,7 +35,6 @@
void ngtcp2_map_init(ngtcp2_map *map, const ngtcp2_mem *mem) {
map->mem = mem;
- map->tablelen = 0;
map->tablelenbits = 0;
map->table = NULL;
map->size = 0;
@@ -49,33 +48,20 @@ void ngtcp2_map_free(ngtcp2_map *map) {
ngtcp2_mem_free(map->mem, map->table);
}
-void ngtcp2_map_each_free(ngtcp2_map *map, int (*func)(void *data, void *ptr),
- void *ptr) {
- uint32_t i;
- ngtcp2_map_bucket *bkt;
-
- for (i = 0; i < map->tablelen; ++i) {
- bkt = &map->table[i];
-
- if (bkt->data == NULL) {
- continue;
- }
-
- func(bkt->data, ptr);
- }
-}
-
-int ngtcp2_map_each(ngtcp2_map *map, int (*func)(void *data, void *ptr),
+int ngtcp2_map_each(const ngtcp2_map *map, int (*func)(void *data, void *ptr),
void *ptr) {
int rv;
- uint32_t i;
+ size_t i;
ngtcp2_map_bucket *bkt;
+ size_t tablelen;
if (map->size == 0) {
return 0;
}
- for (i = 0; i < map->tablelen; ++i) {
+ tablelen = 1u << map->tablelenbits;
+
+ for (i = 0; i < tablelen; ++i) {
bkt = &map->table[i];
if (bkt->data == NULL) {
@@ -95,78 +81,81 @@ static uint32_t hash(ngtcp2_map_key_type key) {
return (uint32_t)((key * 11400714819323198485llu) >> 32);
}
-static size_t h2idx(uint32_t hash, uint32_t bits) {
- return hash >> (32 - bits);
-}
-
-static size_t distance(uint32_t tablelen, uint32_t tablelenbits,
- ngtcp2_map_bucket *bkt, size_t idx) {
- return (idx - h2idx(bkt->hash, tablelenbits)) & (tablelen - 1);
-}
+static size_t h2idx(uint32_t hash, size_t bits) { return hash >> (32 - bits); }
static void map_bucket_swap(ngtcp2_map_bucket *bkt, uint32_t *phash,
- ngtcp2_map_key_type *pkey, void **pdata) {
+ uint32_t *ppsl, ngtcp2_map_key_type *pkey,
+ void **pdata) {
uint32_t h = bkt->hash;
+ uint32_t psl = bkt->psl;
ngtcp2_map_key_type key = bkt->key;
void *data = bkt->data;
bkt->hash = *phash;
+ bkt->psl = *ppsl;
bkt->key = *pkey;
bkt->data = *pdata;
*phash = h;
+ *ppsl = psl;
*pkey = key;
*pdata = data;
}
static void map_bucket_set_data(ngtcp2_map_bucket *bkt, uint32_t hash,
- ngtcp2_map_key_type key, void *data) {
+ uint32_t psl, ngtcp2_map_key_type key,
+ void *data) {
bkt->hash = hash;
+ bkt->psl = psl;
bkt->key = key;
bkt->data = data;
}
#ifndef WIN32
-void ngtcp2_map_print_distance(ngtcp2_map *map) {
- uint32_t i;
+void ngtcp2_map_print_distance(const ngtcp2_map *map) {
+ size_t i;
size_t idx;
ngtcp2_map_bucket *bkt;
+ size_t tablelen;
- for (i = 0; i < map->tablelen; ++i) {
+ if (map->size == 0) {
+ return;
+ }
+
+ tablelen = 1u << map->tablelenbits;
+
+ for (i = 0; i < tablelen; ++i) {
bkt = &map->table[i];
if (bkt->data == NULL) {
- fprintf(stderr, "@%u <EMPTY>\n", i);
+ fprintf(stderr, "@%zu <EMPTY>\n", i);
continue;
}
idx = h2idx(bkt->hash, map->tablelenbits);
- fprintf(stderr, "@%u hash=%08x key=%" PRIu64 " base=%zu distance=%zu\n", i,
- bkt->hash, bkt->key, idx,
- distance(map->tablelen, map->tablelenbits, bkt, idx));
+ fprintf(stderr, "@%zu hash=%08x key=%" PRIu64 " base=%zu distance=%u\n", i,
+ bkt->hash, bkt->key, idx, bkt->psl);
}
}
#endif /* !WIN32 */
-static int insert(ngtcp2_map_bucket *table, uint32_t tablelen,
- uint32_t tablelenbits, uint32_t hash, ngtcp2_map_key_type key,
- void *data) {
+static int insert(ngtcp2_map_bucket *table, size_t tablelenbits, uint32_t hash,
+ ngtcp2_map_key_type key, void *data) {
size_t idx = h2idx(hash, tablelenbits);
- size_t d = 0, dd;
+ uint32_t psl = 0;
ngtcp2_map_bucket *bkt;
+ size_t mask = (1u << tablelenbits) - 1;
for (;;) {
bkt = &table[idx];
if (bkt->data == NULL) {
- map_bucket_set_data(bkt, hash, key, data);
+ map_bucket_set_data(bkt, hash, psl, key, data);
return 0;
}
- dd = distance(tablelen, tablelenbits, bkt, idx);
- if (d > dd) {
- map_bucket_swap(bkt, &hash, &key, &data);
- d = dd;
+ if (psl > bkt->psl) {
+ map_bucket_swap(bkt, &hash, &psl, &key, &data);
} else if (bkt->key == key) {
/* TODO This check is just a waste after first swap or if this
function is called from map_resize. That said, there is no
@@ -175,40 +164,41 @@ static int insert(ngtcp2_map_bucket *table, uint32_t tablelen,
return NGTCP2_ERR_INVALID_ARGUMENT;
}
- ++d;
- idx = (idx + 1) & (tablelen - 1);
+ ++psl;
+ idx = (idx + 1) & mask;
}
}
-/* new_tablelen must be power of 2 and new_tablelen == (1 <<
- new_tablelenbits) must hold. */
-static int map_resize(ngtcp2_map *map, uint32_t new_tablelen,
- uint32_t new_tablelenbits) {
- uint32_t i;
+static int map_resize(ngtcp2_map *map, size_t new_tablelenbits) {
+ size_t i;
ngtcp2_map_bucket *new_table;
ngtcp2_map_bucket *bkt;
+ size_t tablelen;
int rv;
(void)rv;
- new_table =
- ngtcp2_mem_calloc(map->mem, new_tablelen, sizeof(ngtcp2_map_bucket));
+ new_table = ngtcp2_mem_calloc(map->mem, 1u << new_tablelenbits,
+ sizeof(ngtcp2_map_bucket));
if (new_table == NULL) {
return NGTCP2_ERR_NOMEM;
}
- for (i = 0; i < map->tablelen; ++i) {
- bkt = &map->table[i];
- if (bkt->data == NULL) {
- continue;
- }
- rv = insert(new_table, new_tablelen, new_tablelenbits, bkt->hash, bkt->key,
- bkt->data);
+ if (map->size) {
+ tablelen = 1u << map->tablelenbits;
- assert(0 == rv);
+ for (i = 0; i < tablelen; ++i) {
+ bkt = &map->table[i];
+ if (bkt->data == NULL) {
+ continue;
+ }
+
+ rv = insert(new_table, new_tablelenbits, bkt->hash, bkt->key, bkt->data);
+
+ assert(0 == rv);
+ }
}
ngtcp2_mem_free(map->mem, map->table);
- map->tablelen = new_tablelen;
map->tablelenbits = new_tablelenbits;
map->table = new_table;
@@ -221,35 +211,38 @@ int ngtcp2_map_insert(ngtcp2_map *map, ngtcp2_map_key_type key, void *data) {
assert(data);
/* Load factor is 0.75 */
- if ((map->size + 1) * 4 > map->tablelen * 3) {
- if (map->tablelen) {
- rv = map_resize(map, map->tablelen * 2, map->tablelenbits + 1);
+ /* Under the very initial condition, that is map->size == 0 and
+ map->tablelenbits == 0, 4 > 3 still holds nicely. */
+ if ((map->size + 1) * 4 > (1u << map->tablelenbits) * 3) {
+ if (map->tablelenbits) {
+ rv = map_resize(map, map->tablelenbits + 1);
if (rv != 0) {
return rv;
}
} else {
- rv = map_resize(map, 1 << NGTCP2_INITIAL_TABLE_LENBITS,
- NGTCP2_INITIAL_TABLE_LENBITS);
+ rv = map_resize(map, NGTCP2_INITIAL_TABLE_LENBITS);
if (rv != 0) {
return rv;
}
}
}
- rv = insert(map->table, map->tablelen, map->tablelenbits, hash(key), key,
- data);
+ rv = insert(map->table, map->tablelenbits, hash(key), key, data);
if (rv != 0) {
return rv;
}
+
++map->size;
+
return 0;
}
-void *ngtcp2_map_find(ngtcp2_map *map, ngtcp2_map_key_type key) {
+void *ngtcp2_map_find(const ngtcp2_map *map, ngtcp2_map_key_type key) {
uint32_t h;
size_t idx;
ngtcp2_map_bucket *bkt;
size_t d = 0;
+ size_t mask;
if (map->size == 0) {
return NULL;
@@ -257,12 +250,12 @@ void *ngtcp2_map_find(ngtcp2_map *map, ngtcp2_map_key_type key) {
h = hash(key);
idx = h2idx(h, map->tablelenbits);
+ mask = (1u << map->tablelenbits) - 1;
for (;;) {
bkt = &map->table[idx];
- if (bkt->data == NULL ||
- d > distance(map->tablelen, map->tablelenbits, bkt, idx)) {
+ if (bkt->data == NULL || d > bkt->psl) {
return NULL;
}
@@ -271,7 +264,7 @@ void *ngtcp2_map_find(ngtcp2_map *map, ngtcp2_map_key_type key) {
}
++d;
- idx = (idx + 1) & (map->tablelen - 1);
+ idx = (idx + 1) & mask;
}
}
@@ -280,6 +273,7 @@ int ngtcp2_map_remove(ngtcp2_map *map, ngtcp2_map_key_type key) {
size_t idx, didx;
ngtcp2_map_bucket *bkt;
size_t d = 0;
+ size_t mask;
if (map->size == 0) {
return NGTCP2_ERR_INVALID_ARGUMENT;
@@ -287,33 +281,31 @@ int ngtcp2_map_remove(ngtcp2_map *map, ngtcp2_map_key_type key) {
h = hash(key);
idx = h2idx(h, map->tablelenbits);
+ mask = (1u << map->tablelenbits) - 1;
for (;;) {
bkt = &map->table[idx];
- if (bkt->data == NULL ||
- d > distance(map->tablelen, map->tablelenbits, bkt, idx)) {
+ if (bkt->data == NULL || d > bkt->psl) {
return NGTCP2_ERR_INVALID_ARGUMENT;
}
if (bkt->key == key) {
- map_bucket_set_data(bkt, 0, 0, NULL);
-
didx = idx;
- idx = (idx + 1) & (map->tablelen - 1);
+ idx = (idx + 1) & mask;
for (;;) {
bkt = &map->table[idx];
- if (bkt->data == NULL ||
- distance(map->tablelen, map->tablelenbits, bkt, idx) == 0) {
+ if (bkt->data == NULL || bkt->psl == 0) {
+ map_bucket_set_data(&map->table[didx], 0, 0, 0, NULL);
break;
}
+ --bkt->psl;
map->table[didx] = *bkt;
- map_bucket_set_data(bkt, 0, 0, NULL);
didx = idx;
- idx = (idx + 1) & (map->tablelen - 1);
+ idx = (idx + 1) & mask;
}
--map->size;
@@ -322,17 +314,17 @@ int ngtcp2_map_remove(ngtcp2_map *map, ngtcp2_map_key_type key) {
}
++d;
- idx = (idx + 1) & (map->tablelen - 1);
+ idx = (idx + 1) & mask;
}
}
void ngtcp2_map_clear(ngtcp2_map *map) {
- if (map->tablelen == 0) {
+ if (map->size == 0) {
return;
}
- memset(map->table, 0, sizeof(*map->table) * map->tablelen);
+ memset(map->table, 0, sizeof(*map->table) * (1u << map->tablelenbits));
map->size = 0;
}
-size_t ngtcp2_map_size(ngtcp2_map *map) { return map->size; }
+size_t ngtcp2_map_size(const ngtcp2_map *map) { return map->size; }
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h
index d05b165..cc85d07 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h
@@ -40,6 +40,7 @@ typedef uint64_t ngtcp2_map_key_type;
typedef struct ngtcp2_map_bucket {
uint32_t hash;
+ uint32_t psl;
ngtcp2_map_key_type key;
void *data;
} ngtcp2_map_bucket;
@@ -48,33 +49,24 @@ typedef struct ngtcp2_map {
ngtcp2_map_bucket *table;
const ngtcp2_mem *mem;
size_t size;
- uint32_t tablelen;
- uint32_t tablelenbits;
+ size_t tablelenbits;
} ngtcp2_map;
/*
- * Initializes the map |map|.
+ * ngtcp2_map_init initializes the map |map|.
*/
void ngtcp2_map_init(ngtcp2_map *map, const ngtcp2_mem *mem);
/*
- * Deallocates any resources allocated for |map|. The stored entries
- * are not freed by this function. Use ngtcp2_map_each_free() to free
- * each entries.
+ * ngtcp2_map_free deallocates any resources allocated for |map|. The
+ * stored entries are not freed by this function. Use
+ * ngtcp2_map_each() to free each entry.
*/
void ngtcp2_map_free(ngtcp2_map *map);
/*
- * Deallocates each entries using |func| function and any resources
- * allocated for |map|. The |func| function is responsible for freeing
- * given the |data| object. The |ptr| will be passed to the |func| as
- * send argument. The return value of the |func| will be ignored.
- */
-void ngtcp2_map_each_free(ngtcp2_map *map, int (*func)(void *data, void *ptr),
- void *ptr);
-
-/*
- * Inserts the new |data| with the |key| to the map |map|.
+ * ngtcp2_map_insert inserts the new |data| with the |key| to the map
+ * |map|.
*
* This function returns 0 if it succeeds, or one of the following
* negative error codes:
@@ -82,57 +74,56 @@ void ngtcp2_map_each_free(ngtcp2_map *map, int (*func)(void *data, void *ptr),
* NGTCP2_ERR_INVALID_ARGUMENT
* The item associated by |key| already exists.
* NGTCP2_ERR_NOMEM
- * Out of memory
+ * Out of memory
*/
int ngtcp2_map_insert(ngtcp2_map *map, ngtcp2_map_key_type key, void *data);
/*
- * Returns the data associated by the key |key|. If there is no such
- * data, this function returns NULL.
+ * ngtcp2_map_find returns the entry associated by the key |key|. If
+ * there is no such entry, this function returns NULL.
*/
-void *ngtcp2_map_find(ngtcp2_map *map, ngtcp2_map_key_type key);
+void *ngtcp2_map_find(const ngtcp2_map *map, ngtcp2_map_key_type key);
/*
- * Removes the data associated by the key |key| from the |map|. The
- * removed data is not freed by this function.
+ * ngtcp2_map_remove removes the entry associated by the key |key|
+ * from the |map|. The removed entry is not freed by this function.
*
* This function returns 0 if it succeeds, or one of the following
* negative error codes:
*
* NGTCP2_ERR_INVALID_ARGUMENT
- * The data associated by |key| does not exist.
+ * The entry associated by |key| does not exist.
*/
int ngtcp2_map_remove(ngtcp2_map *map, ngtcp2_map_key_type key);
/*
- * Removes all entries from |map|.
+ * ngtcp2_map_clear removes all entries from |map|. The removed entry
+ * is not freed by this function.
*/
void ngtcp2_map_clear(ngtcp2_map *map);
/*
- * Returns the number of items stored in the map |map|.
+ * ngtcp2_map_size returns the number of items stored in the map
+ * |map|.
*/
-size_t ngtcp2_map_size(ngtcp2_map *map);
+size_t ngtcp2_map_size(const ngtcp2_map *map);
/*
- * Applies the function |func| to each data in the |map| with the
- * optional user supplied pointer |ptr|.
+ * ngtcp2_map_each applies the function |func| to each entry in the
+ * |map| with the optional user supplied pointer |ptr|.
*
* If the |func| returns 0, this function calls the |func| with the
- * next data. If the |func| returns nonzero, it will not call the
+ * next entry. If the |func| returns nonzero, it will not call the
* |func| for further entries and return the return value of the
* |func| immediately. Thus, this function returns 0 if all the
* invocations of the |func| return 0, or nonzero value which the last
* invocation of |func| returns.
- *
- * Don't use this function to free each data. Use
- * ngtcp2_map_each_free() instead.
*/
-int ngtcp2_map_each(ngtcp2_map *map, int (*func)(void *data, void *ptr),
+int ngtcp2_map_each(const ngtcp2_map *map, int (*func)(void *data, void *ptr),
void *ptr);
#ifndef WIN32
-void ngtcp2_map_print_distance(ngtcp2_map *map);
+void ngtcp2_map_print_distance(const ngtcp2_map *map);
#endif /* !WIN32 */
#endif /* NGTCP2_MAP_H */
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c
index 34363d0..268559c 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c
@@ -66,6 +66,7 @@ int ngtcp2_ppe_encode_hd(ngtcp2_ppe *ppe, const ngtcp2_pkt_hd *hd) {
rv = ngtcp2_pkt_encode_hd_short(
buf->last, ngtcp2_buf_left(buf) - cc->aead.max_overhead, hd);
}
+
if (rv < 0) {
return (int)rv;
}
@@ -74,7 +75,6 @@ int ngtcp2_ppe_encode_hd(ngtcp2_ppe *ppe, const ngtcp2_pkt_hd *hd) {
ppe->pkt_numlen = hd->pkt_numlen;
ppe->hdlen = (size_t)rv;
-
ppe->pkt_num = hd->pkt_num;
return 0;
@@ -138,7 +138,7 @@ ngtcp2_ssize ngtcp2_ppe_final(ngtcp2_ppe *ppe, const uint8_t **ppkt) {
buf->last = payload + payloadlen + cc->aead.max_overhead;
- /* TODO Check that we have enough space to get sample */
+ /* Make sure that we have enough space to get sample */
assert(ppe_sample_offset(ppe) + NGTCP2_HP_SAMPLELEN <= ngtcp2_buf_len(buf));
rv = cc->hp_mask(mask, &cc->hp, &cc->hp_ctx,
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.h
index 2f9275c..c1f4b16 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.h
@@ -36,10 +36,13 @@
#include "ngtcp2_crypto.h"
/*
- * ngtcp2_ppe is the Protected Packet Encoder.
+ * ngtcp2_ppe is the QUIC Packet Encoder.
*/
typedef struct ngtcp2_ppe {
+ /* buf is the buffer where a QUIC packet is written. */
ngtcp2_buf buf;
+ /* cc is the encryption context that includes callback functions to
+ encrypt a QUIC packet, and AEAD cipher, etc. */
ngtcp2_crypto_cc *cc;
/* dgram_offset is the offset in UDP datagram payload that this QUIC
packet is positioned at. */
@@ -56,7 +59,7 @@ typedef struct ngtcp2_ppe {
/* pkt_num is the packet number written in buf. */
int64_t pkt_num;
/* nonce is the buffer to store nonce. It should be equal or longer
- than then length of IV. */
+ than the length of IV. */
uint8_t nonce[32];
} ngtcp2_ppe;
@@ -89,7 +92,7 @@ int ngtcp2_ppe_encode_hd(ngtcp2_ppe *ppe, const ngtcp2_pkt_hd *hd);
int ngtcp2_ppe_encode_frame(ngtcp2_ppe *ppe, ngtcp2_frame *fr);
/*
- * ngtcp2_ppe_final encrypts QUIC packet payload. If |**ppkt| is not
+ * ngtcp2_ppe_final encrypts QUIC packet payload. If |ppkt| is not
* NULL, the pointer to the packet is assigned to it.
*
* This function returns the length of QUIC packet, including header,
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.c
index 96cde8f..dcf6717 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.c
@@ -29,17 +29,20 @@
#include "ngtcp2_macro.h"
-void ngtcp2_pq_init(ngtcp2_pq *pq, ngtcp2_less less, const ngtcp2_mem *mem) {
- pq->mem = mem;
- pq->capacity = 0;
+void ngtcp2_pq_init(ngtcp2_pq *pq, ngtcp2_pq_less less, const ngtcp2_mem *mem) {
pq->q = NULL;
+ pq->mem = mem;
pq->length = 0;
+ pq->capacity = 0;
pq->less = less;
}
void ngtcp2_pq_free(ngtcp2_pq *pq) {
+ if (!pq) {
+ return;
+ }
+
ngtcp2_mem_free(pq->mem, pq->q);
- pq->q = NULL;
}
static void swap(ngtcp2_pq *pq, size_t i, size_t j) {
@@ -54,11 +57,13 @@ static void swap(ngtcp2_pq *pq, size_t i, size_t j) {
static void bubble_up(ngtcp2_pq *pq, size_t index) {
size_t parent;
- while (index != 0) {
+
+ while (index) {
parent = (index - 1) / 2;
if (!pq->less(pq->q[index], pq->q[parent])) {
return;
}
+
swap(pq, parent, index);
index = parent;
}
@@ -76,49 +81,57 @@ int ngtcp2_pq_push(ngtcp2_pq *pq, ngtcp2_pq_entry *item) {
if (nq == NULL) {
return NGTCP2_ERR_NOMEM;
}
+
pq->capacity = ncapacity;
pq->q = nq;
}
+
pq->q[pq->length] = item;
item->index = pq->length;
++pq->length;
- bubble_up(pq, pq->length - 1);
+ bubble_up(pq, item->index);
+
return 0;
}
-ngtcp2_pq_entry *ngtcp2_pq_top(ngtcp2_pq *pq) {
+ngtcp2_pq_entry *ngtcp2_pq_top(const ngtcp2_pq *pq) {
assert(pq->length);
return pq->q[0];
}
static void bubble_down(ngtcp2_pq *pq, size_t index) {
size_t i, j, minindex;
+
for (;;) {
j = index * 2 + 1;
minindex = index;
+
for (i = 0; i < 2; ++i, ++j) {
if (j >= pq->length) {
break;
}
+
if (pq->less(pq->q[j], pq->q[minindex])) {
minindex = j;
}
}
+
if (minindex == index) {
return;
}
+
swap(pq, index, minindex);
index = minindex;
}
}
void ngtcp2_pq_pop(ngtcp2_pq *pq) {
- if (pq->length > 0) {
- pq->q[0] = pq->q[pq->length - 1];
- pq->q[0]->index = 0;
- --pq->length;
- bubble_down(pq, 0);
- }
+ assert(pq->length);
+
+ pq->q[0] = pq->q[pq->length - 1];
+ pq->q[0]->index = 0;
+ --pq->length;
+ bubble_down(pq, 0);
}
void ngtcp2_pq_remove(ngtcp2_pq *pq, ngtcp2_pq_entry *item) {
@@ -145,20 +158,22 @@ void ngtcp2_pq_remove(ngtcp2_pq *pq, ngtcp2_pq_entry *item) {
}
}
-int ngtcp2_pq_empty(ngtcp2_pq *pq) { return pq->length == 0; }
+int ngtcp2_pq_empty(const ngtcp2_pq *pq) { return pq->length == 0; }
-size_t ngtcp2_pq_size(ngtcp2_pq *pq) { return pq->length; }
+size_t ngtcp2_pq_size(const ngtcp2_pq *pq) { return pq->length; }
-int ngtcp2_pq_each(ngtcp2_pq *pq, ngtcp2_pq_item_cb fun, void *arg) {
+int ngtcp2_pq_each(const ngtcp2_pq *pq, ngtcp2_pq_item_cb fun, void *arg) {
size_t i;
if (pq->length == 0) {
return 0;
}
+
for (i = 0; i < pq->length; ++i) {
if ((*fun)(pq->q[i], arg)) {
return 1;
}
}
+
return 0;
}
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.h
index 484c8f2..2fe5e74 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.h
@@ -45,37 +45,39 @@ typedef struct ngtcp2_pq_entry {
size_t index;
} ngtcp2_pq_entry;
-/* "less" function, return nonzero if |lhs| is less than |rhs|. */
-typedef int (*ngtcp2_less)(const ngtcp2_pq_entry *lhs,
- const ngtcp2_pq_entry *rhs);
+/* ngtcp2_pq_less is a "less" function, that returns nonzero if |lhs|
+ is considered to be less than |rhs|. */
+typedef int (*ngtcp2_pq_less)(const ngtcp2_pq_entry *lhs,
+ const ngtcp2_pq_entry *rhs);
typedef struct ngtcp2_pq {
- /* The pointer to the pointer to the item stored */
+ /* q is a pointer to an array that stores the items. */
ngtcp2_pq_entry **q;
- /* Memory allocator */
+ /* mem is a memory allocator. */
const ngtcp2_mem *mem;
- /* The number of items stored */
+ /* length is the number of items stored. */
size_t length;
- /* The maximum number of items this pq can store. This is
- automatically extended when length is reached to this value. */
+ /* capacity is the maximum number of items this queue can store.
+ This is automatically extended when length is reached to this
+ limit. */
size_t capacity;
- /* The less function between items */
- ngtcp2_less less;
+ /* less is the less function to compare items. */
+ ngtcp2_pq_less less;
} ngtcp2_pq;
/*
- * Initializes priority queue |pq| with compare function |cmp|.
+ * ngtcp2_pq_init initializes |pq| with compare function |cmp|.
*/
-void ngtcp2_pq_init(ngtcp2_pq *pq, ngtcp2_less less, const ngtcp2_mem *mem);
+void ngtcp2_pq_init(ngtcp2_pq *pq, ngtcp2_pq_less less, const ngtcp2_mem *mem);
/*
- * Deallocates any resources allocated for |pq|. The stored items are
- * not freed by this function.
+ * ngtcp2_pq_free deallocates any resources allocated for |pq|. The
+ * stored items are not freed by this function.
*/
void ngtcp2_pq_free(ngtcp2_pq *pq);
/*
- * Adds |item| to the priority queue |pq|.
+ * ngtcp2_pq_push adds |item| to |pq|.
*
* This function returns 0 if it succeeds, or one of the following
* negative error codes:
@@ -86,40 +88,41 @@ void ngtcp2_pq_free(ngtcp2_pq *pq);
int ngtcp2_pq_push(ngtcp2_pq *pq, ngtcp2_pq_entry *item);
/*
- * Returns item at the top of the queue |pq|. It is undefined if the
- * queue is empty.
+ * ngtcp2_pq_top returns item at the top of |pq|. It is undefined if
+ * |pq| is empty.
*/
-ngtcp2_pq_entry *ngtcp2_pq_top(ngtcp2_pq *pq);
+ngtcp2_pq_entry *ngtcp2_pq_top(const ngtcp2_pq *pq);
/*
- * Pops item at the top of the queue |pq|. The popped item is not
- * freed by this function.
+ * ngtcp2_pq_pop pops item at the top of |pq|. The popped item is not
+ * freed by this function. It is undefined if |pq| is empty.
*/
void ngtcp2_pq_pop(ngtcp2_pq *pq);
/*
- * Returns nonzero if the queue |pq| is empty.
+ * ngtcp2_pq_empty returns nonzero if |pq| is empty.
*/
-int ngtcp2_pq_empty(ngtcp2_pq *pq);
+int ngtcp2_pq_empty(const ngtcp2_pq *pq);
/*
- * Returns the number of items in the queue |pq|.
+ * ngtcp2_pq_size returns the number of items |pq| contains.
*/
-size_t ngtcp2_pq_size(ngtcp2_pq *pq);
+size_t ngtcp2_pq_size(const ngtcp2_pq *pq);
typedef int (*ngtcp2_pq_item_cb)(ngtcp2_pq_entry *item, void *arg);
/*
- * Applies |fun| to each item in |pq|. The |arg| is passed as arg
- * parameter to callback function. This function must not change the
- * ordering key. If the return value from callback is nonzero, this
- * function returns 1 immediately without iterating remaining items.
- * Otherwise this function returns 0.
+ * ngtcp2_pq_each applies |fun| to each item in |pq|. The |arg| is
+ * passed as arg parameter to callback function. This function must
+ * not change the ordering key. If the return value from callback is
+ * nonzero, this function returns 1 immediately without iterating
+ * remaining items. Otherwise this function returns 0.
*/
-int ngtcp2_pq_each(ngtcp2_pq *pq, ngtcp2_pq_item_cb fun, void *arg);
+int ngtcp2_pq_each(const ngtcp2_pq *pq, ngtcp2_pq_item_cb fun, void *arg);
/*
- * Removes |item| from priority queue.
+ * ngtcp2_pq_remove removes |item| from |pq|. |pq| must contain
+ * |item| otherwise the behavior is undefined.
*/
void ngtcp2_pq_remove(ngtcp2_pq *pq, ngtcp2_pq_entry *item);
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c
index 2767534..c4713f1 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c
@@ -184,8 +184,7 @@ static uint8_t *write_pair_cid_impl(uint8_t *p, const uint8_t *name,
write_pair_cid_impl((DEST), (const uint8_t *)(NAME), sizeof(NAME) - 1, \
(VALUE))
-#define ngtcp2_make_vec_lit(S) \
- { (uint8_t *)(S), sizeof((S)) - 1 }
+#define ngtcp2_make_vec_lit(S) {(uint8_t *)(S), sizeof((S)) - 1}
static uint8_t *write_common_fields(uint8_t *p, const ngtcp2_cid *odcid) {
p = write_verbatim(
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c
index ed07eb3..7bbefc0 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c
@@ -35,9 +35,11 @@ ngtcp2_range ngtcp2_range_intersect(const ngtcp2_range *a,
ngtcp2_range r = {0, 0};
uint64_t begin = ngtcp2_max_uint64(a->begin, b->begin);
uint64_t end = ngtcp2_min_uint64(a->end, b->end);
+
if (begin < end) {
ngtcp2_range_init(&r, begin, end);
}
+
return r;
}
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.h
index a776c4e..cf01ef3 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.h
@@ -58,7 +58,7 @@ uint64_t ngtcp2_range_len(const ngtcp2_range *r);
/*
* ngtcp2_range_eq returns nonzero if |a| equals |b|, such that
- * a->begin == b->begin, and a->end == b->end hold.
+ * a->begin == b->begin and a->end == b->end hold.
*/
int ngtcp2_range_eq(const ngtcp2_range *a, const ngtcp2_range *b);
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c
index 4fa3b83..596e76d 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c
@@ -56,7 +56,6 @@ int ngtcp2_rob_data_new(ngtcp2_rob_data **pd, uint64_t offset, size_t chunk,
(*pd)->range.begin = offset;
(*pd)->range.end = offset + chunk;
(*pd)->begin = (uint8_t *)(*pd) + sizeof(ngtcp2_rob_data);
- (*pd)->end = (*pd)->begin + chunk;
return 0;
}
@@ -177,9 +176,11 @@ int ngtcp2_rob_push(ngtcp2_rob *rob, uint64_t offset, const uint8_t *data,
if (!ngtcp2_range_len(&m)) {
break;
}
+
if (ngtcp2_range_eq(&g->range, &m)) {
ngtcp2_ksl_remove_hint(&rob->gapksl, &it, &it, &g->range);
ngtcp2_rob_gap_del(g, rob->mem);
+
rv = rob_write_data(rob, m.begin, data + (m.begin - offset),
(size_t)ngtcp2_range_len(&m));
if (rv != 0) {
@@ -188,17 +189,21 @@ int ngtcp2_rob_push(ngtcp2_rob *rob, uint64_t offset, const uint8_t *data,
continue;
}
+
ngtcp2_range_cut(&l, &r, &g->range, &m);
+
if (ngtcp2_range_len(&l)) {
ngtcp2_ksl_update_key(&rob->gapksl, &g->range, &l);
g->range = l;
if (ngtcp2_range_len(&r)) {
ngtcp2_rob_gap *ng;
+
rv = ngtcp2_rob_gap_new(&ng, r.begin, r.end, rob->mem);
if (rv != 0) {
return rv;
}
+
rv = ngtcp2_ksl_insert(&rob->gapksl, &it, &ng->range, ng);
if (rv != 0) {
ngtcp2_rob_gap_del(ng, rob->mem);
@@ -209,13 +214,16 @@ int ngtcp2_rob_push(ngtcp2_rob *rob, uint64_t offset, const uint8_t *data,
ngtcp2_ksl_update_key(&rob->gapksl, &g->range, &r);
g->range = r;
}
+
rv = rob_write_data(rob, m.begin, data + (m.begin - offset),
(size_t)ngtcp2_range_len(&m));
if (rv != 0) {
return rv;
}
+
ngtcp2_ksl_it_next(&it);
}
+
return 0;
}
@@ -231,12 +239,16 @@ void ngtcp2_rob_remove_prefix(ngtcp2_rob *rob, uint64_t offset) {
if (offset <= g->range.begin) {
break;
}
+
if (offset < g->range.end) {
ngtcp2_range r = {offset, g->range.end};
+
ngtcp2_ksl_update_key(&rob->gapksl, &g->range, &r);
g->range.begin = offset;
+
break;
}
+
ngtcp2_ksl_remove_hint(&rob->gapksl, &it, &it, &g->range);
ngtcp2_rob_gap_del(g, rob->mem);
}
@@ -248,6 +260,7 @@ void ngtcp2_rob_remove_prefix(ngtcp2_rob *rob, uint64_t offset) {
if (offset < d->range.begin + rob->chunk) {
return;
}
+
ngtcp2_ksl_remove_hint(&rob->dataksl, &it, &it, &d->range);
ngtcp2_rob_data_del(d, rob->mem);
}
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.h
index 6518d56..9ebc68b 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.h
@@ -70,12 +70,10 @@ void ngtcp2_rob_gap_del(ngtcp2_rob_gap *g, const ngtcp2_mem *mem);
* ngtcp2_rob_data holds the buffered stream data.
*/
typedef struct ngtcp2_rob_data {
- /* range is the range of this gap. */
+ /* range is the range of this data. */
ngtcp2_range range;
/* begin points to the buffer. */
uint8_t *begin;
- /* end points to the one beyond of the last byte of the buffer */
- uint8_t *end;
} ngtcp2_rob_data;
/*
@@ -110,8 +108,8 @@ typedef struct ngtcp2_rob {
/* gapksl maintains the range of offset which is not received
yet. Initially, its range is [0, UINT64_MAX). */
ngtcp2_ksl gapksl;
- /* dataksl maintains the list of buffers which store received data
- ordered by stream offset. */
+ /* dataksl maintains the buffers which store received out-of-order
+ data ordered by stream offset. */
ngtcp2_ksl dataksl;
/* mem is custom memory allocator */
const ngtcp2_mem *mem;
@@ -137,8 +135,8 @@ int ngtcp2_rob_init(ngtcp2_rob *rob, size_t chunk, const ngtcp2_mem *mem);
void ngtcp2_rob_free(ngtcp2_rob *rob);
/*
- * ngtcp2_rob_push adds new data of length |datalen| at the stream
- * offset |offset|.
+ * ngtcp2_rob_push adds new data pointed by |data| of length |datalen|
+ * at the stream offset |offset|.
*
* This function returns 0 if it succeeds, or one of the following
* negative error codes:
@@ -151,7 +149,8 @@ int ngtcp2_rob_push(ngtcp2_rob *rob, uint64_t offset, const uint8_t *data,
/*
* ngtcp2_rob_remove_prefix removes gap up to |offset|, exclusive. It
- * also removes data buffer if it is completely included in |offset|.
+ * also removes buffered data if it is completely included in
+ * |offset|.
*/
void ngtcp2_rob_remove_prefix(ngtcp2_rob *rob, uint64_t offset);
@@ -159,7 +158,8 @@ void ngtcp2_rob_remove_prefix(ngtcp2_rob *rob, uint64_t offset);
* ngtcp2_rob_data_at stores the pointer to the buffer of stream
* offset |offset| to |*pdest| if it is available, and returns the
* valid length of available data. If no data is available, it
- * returns 0.
+ * returns 0. This function only returns the data before the first
+ * gap. It returns 0 even if data is available after the first gap.
*/
size_t ngtcp2_rob_data_at(ngtcp2_rob *rob, const uint8_t **pdest,
uint64_t offset);
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c
index 862fa8d..4937c17 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c
@@ -35,12 +35,13 @@ void ngtcp2_rs_init(ngtcp2_rs *rs) {
rs->interval = UINT64_MAX;
rs->delivered = 0;
rs->prior_delivered = 0;
- rs->prior_ts = 0;
+ rs->prior_ts = UINT64_MAX;
rs->tx_in_flight = 0;
rs->lost = 0;
rs->prior_lost = 0;
rs->send_elapsed = 0;
rs->ack_elapsed = 0;
+ rs->last_end_seq = -1;
rs->is_app_limited = 0;
}
@@ -55,6 +56,7 @@ void ngtcp2_rst_init(ngtcp2_rst *rst) {
rst->round_count = 0;
rst->is_cwnd_limited = 0;
rst->lost = 0;
+ rst->last_seq = -1;
}
void ngtcp2_rst_on_pkt_sent(ngtcp2_rst *rst, ngtcp2_rtb_entry *ent,
@@ -68,6 +70,7 @@ void ngtcp2_rst_on_pkt_sent(ngtcp2_rst *rst, ngtcp2_rtb_entry *ent,
ent->rst.is_app_limited = rst->app_limited != 0;
ent->rst.tx_in_flight = cstat->bytes_in_flight + ent->pktlen;
ent->rst.lost = rst->lost;
+ ent->rst.end_seq = ++rst->last_seq;
}
void ngtcp2_rst_on_ack_recv(ngtcp2_rst *rst, ngtcp2_conn_stat *cstat,
@@ -84,7 +87,7 @@ void ngtcp2_rst_on_ack_recv(ngtcp2_rst *rst, ngtcp2_conn_stat *cstat,
++rst->round_count;
}
- if (rs->prior_ts == 0) {
+ if (rs->prior_ts == UINT64_MAX) {
return;
}
@@ -104,12 +107,18 @@ void ngtcp2_rst_on_ack_recv(ngtcp2_rst *rst, ngtcp2_conn_stat *cstat,
rate = rs->delivered * NGTCP2_SECONDS / rs->interval;
- if (rate > ngtcp2_window_filter_get_best(&rst->wf) || !rst->app_limited) {
+ if (rate >= ngtcp2_window_filter_get_best(&rst->wf) || !rst->app_limited) {
ngtcp2_window_filter_update(&rst->wf, rate, rst->round_count);
cstat->delivery_rate_sec = ngtcp2_window_filter_get_best(&rst->wf);
}
}
+static int rst_is_newest_pkt(const ngtcp2_rst *rst, const ngtcp2_rtb_entry *ent,
+ const ngtcp2_rs *rs) {
+ return ent->ts > rst->first_sent_ts ||
+ (ent->ts == rst->first_sent_ts && ent->rst.end_seq > rs->last_end_seq);
+}
+
void ngtcp2_rst_update_rate_sample(ngtcp2_rst *rst, const ngtcp2_rtb_entry *ent,
ngtcp2_tstamp ts) {
ngtcp2_rs *rs = &rst->rs;
@@ -117,7 +126,7 @@ void ngtcp2_rst_update_rate_sample(ngtcp2_rst *rst, const ngtcp2_rtb_entry *ent,
rst->delivered += ent->pktlen;
rst->delivered_ts = ts;
- if (ent->rst.delivered > rs->prior_delivered) {
+ if (rs->prior_ts == UINT64_MAX || rst_is_newest_pkt(rst, ent, rs)) {
rs->prior_delivered = ent->rst.delivered;
rs->prior_ts = ent->rst.delivered_ts;
rs->is_app_limited = ent->rst.is_app_limited;
@@ -125,6 +134,7 @@ void ngtcp2_rst_update_rate_sample(ngtcp2_rst *rst, const ngtcp2_rtb_entry *ent,
rs->ack_elapsed = rst->delivered_ts - ent->rst.delivered_ts;
rs->tx_in_flight = ent->rst.tx_in_flight;
rs->prior_lost = ent->rst.lost;
+ rs->last_end_seq = ent->rst.end_seq;
rst->first_sent_ts = ent->ts;
}
}
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h
index c9e1e16..74c1400 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h
@@ -51,6 +51,7 @@ typedef struct ngtcp2_rs {
uint64_t prior_lost;
ngtcp2_duration send_elapsed;
ngtcp2_duration ack_elapsed;
+ int64_t last_end_seq;
int is_app_limited;
} ngtcp2_rs;
@@ -58,7 +59,7 @@ void ngtcp2_rs_init(ngtcp2_rs *rs);
/*
* ngtcp2_rst implements delivery rate estimation described in
- * https://tools.ietf.org/html/draft-cheng-iccrg-delivery-rate-estimation-00
+ * https://ietf-wg-ccwg.github.io/draft-cardwell-ccwg-bbr/draft-cardwell-ccwg-bbr.html
*/
typedef struct ngtcp2_rst {
ngtcp2_rs rs;
@@ -70,6 +71,11 @@ typedef struct ngtcp2_rst {
uint64_t next_round_delivered;
uint64_t round_count;
uint64_t lost;
+ /* last_seq is the sequence number of packets across all packet
+ number spaces. If we would adopt single packet number sequence
+ across all packet number spaces, we can replace this with a
+ packet number. */
+ int64_t last_seq;
int is_cwnd_limited;
} ngtcp2_rst;
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h
index a1ff208..043cff3 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h
@@ -111,6 +111,7 @@ struct ngtcp2_rtb_entry {
ngtcp2_tstamp first_sent_ts;
uint64_t tx_in_flight;
uint64_t lost;
+ int64_t end_seq;
int is_app_limited;
} rst;
/* flags is bitwise-OR of zero or more of
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c
index 15b3827..de92f33 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c
@@ -40,8 +40,9 @@ void ngtcp2_strm_init(ngtcp2_strm *strm, int64_t stream_id, uint32_t flags,
uint64_t max_rx_offset, uint64_t max_tx_offset,
void *stream_user_data, ngtcp2_objalloc *frc_objalloc,
const ngtcp2_mem *mem) {
- strm->frc_objalloc = frc_objalloc;
+ strm->pe.index = NGTCP2_PQ_BAD_INDEX;
strm->cycle = 0;
+ strm->frc_objalloc = frc_objalloc;
strm->tx.acked_offset = NULL;
strm->tx.cont_acked_offset = 0;
strm->tx.streamfrq = NULL;
@@ -56,13 +57,12 @@ void ngtcp2_strm_init(ngtcp2_strm *strm, int64_t stream_id, uint32_t flags,
strm->rx.rob = NULL;
strm->rx.cont_offset = 0;
strm->rx.last_offset = 0;
- strm->stream_id = stream_id;
- strm->flags = flags;
- strm->stream_user_data = stream_user_data;
- strm->rx.window = strm->rx.max_offset = strm->rx.unsent_max_offset =
+ strm->rx.max_offset = strm->rx.unsent_max_offset = strm->rx.window =
max_rx_offset;
- strm->pe.index = NGTCP2_PQ_BAD_INDEX;
strm->mem = mem;
+ strm->stream_id = stream_id;
+ strm->stream_user_data = stream_user_data;
+ strm->flags = flags;
strm->app_error_code = 0;
}
@@ -271,6 +271,7 @@ static int strm_streamfrq_unacked_pop(ngtcp2_strm *strm,
}
ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem);
+
continue;
}
@@ -306,6 +307,7 @@ static int strm_streamfrq_unacked_pop(ngtcp2_strm *strm,
fr->data[0].len -= (size_t)base_offset;
*pfrc = frc;
+
return 0;
}
@@ -336,6 +338,7 @@ static int strm_streamfrq_unacked_pop(ngtcp2_strm *strm,
assert(ngtcp2_err_is_fatal(rv));
ngtcp2_frame_chain_objalloc_del(nfrc, strm->frc_objalloc, strm->mem);
ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem);
+
return rv;
}
@@ -350,14 +353,17 @@ static int strm_streamfrq_unacked_pop(ngtcp2_strm *strm,
fr->fin = 0;
fr->offset = offset + base_offset;
fr->datacnt = end_idx - idx;
+
if (end_base_offset) {
assert(fr->data[fr->datacnt - 1].len > end_base_offset);
fr->data[fr->datacnt - 1].len = (size_t)end_base_offset;
}
+
fr->data[0].base += base_offset;
fr->data[0].len -= (size_t)base_offset;
*pfrc = frc;
+
return 0;
}
@@ -385,6 +391,7 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc,
if (rv != 0) {
return rv;
}
+
if (frc == NULL) {
*pfrc = NULL;
return 0;
@@ -401,7 +408,9 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc,
ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem);
return rv;
}
+
*pfrc = NULL;
+
return 0;
}
@@ -437,6 +446,7 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc,
assert(ngtcp2_err_is_fatal(rv));
ngtcp2_frame_chain_objalloc_del(nfrc, strm->frc_objalloc, strm->mem);
ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem);
+
return rv;
}
@@ -501,8 +511,10 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc,
assert(ngtcp2_err_is_fatal(rv));
ngtcp2_frame_chain_objalloc_del(nfrc, strm->frc_objalloc, strm->mem);
ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem);
+
return rv;
}
+
break;
}
@@ -560,6 +572,7 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc,
}
*pfrc = frc;
+
return 0;
}
@@ -606,9 +619,11 @@ uint64_t ngtcp2_strm_streamfrq_unacked_offset(ngtcp2_strm *strm) {
if (gap.begin <= fr->offset) {
return fr->offset;
}
+
if (gap.begin < fr->offset + datalen) {
return gap.begin;
}
+
if (fr->offset + datalen == gap.begin && fr->fin &&
!(strm->flags & NGTCP2_STRM_FLAG_FIN_ACKED)) {
return fr->offset + datalen;
@@ -625,6 +640,7 @@ ngtcp2_frame_chain *ngtcp2_strm_streamfrq_top(ngtcp2_strm *strm) {
assert(ngtcp2_ksl_len(strm->tx.streamfrq));
it = ngtcp2_ksl_begin(strm->tx.streamfrq);
+
return ngtcp2_ksl_it_get(&it);
}
@@ -645,6 +661,7 @@ void ngtcp2_strm_streamfrq_clear(ngtcp2_strm *strm) {
frc = ngtcp2_ksl_it_get(&it);
ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem);
}
+
ngtcp2_ksl_clear(strm->tx.streamfrq);
}
diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h
index e396b24..e7e2fa6 100644
--- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h
+++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h
@@ -108,13 +108,13 @@ struct ngtcp2_strm {
acked_offset is used instead. */
uint64_t cont_acked_offset;
/* streamfrq contains STREAM or CRYPTO frame for
- retransmission. The flow control credits have been paid
- when they are transmitted first time. There are no
+ retransmission. The flow control credits have already been
+ paid when they are transmitted first time. There are no
restriction regarding flow control for retransmission. */
ngtcp2_ksl *streamfrq;
- /* offset is the next offset of outgoing data. In other words, it
- is the number of bytes sent in this stream without
- duplication. */
+ /* offset is the next offset of new outgoing data. In other
+ words, it is the number of bytes sent in this stream
+ without duplication. */
uint64_t offset;
/* max_tx_offset is the maximum offset that local endpoint can
send for this stream. */
@@ -218,8 +218,8 @@ int ngtcp2_strm_recv_reordering(ngtcp2_strm *strm, const uint8_t *data,
size_t datalen, uint64_t offset);
/*
- * ngtcp2_strm_update_rx_offset tells that data up to offset bytes are
- * received in order.
+ * ngtcp2_strm_update_rx_offset tells that data up to |offset| bytes
+ * are received in order.
*/
void ngtcp2_strm_update_rx_offset(ngtcp2_strm *strm, uint64_t offset);
@@ -230,13 +230,14 @@ void ngtcp2_strm_update_rx_offset(ngtcp2_strm *strm, uint64_t offset);
void ngtcp2_strm_discard_reordered_data(ngtcp2_strm *strm);
/*
- * ngtcp2_strm_shutdown shutdowns |strm|. |flags| should be
- * NGTCP2_STRM_FLAG_SHUT_RD, and/or NGTCP2_STRM_FLAG_SHUT_WR.
+ * ngtcp2_strm_shutdown shutdowns |strm|. |flags| should be one of
+ * NGTCP2_STRM_FLAG_SHUT_RD, NGTCP2_STRM_FLAG_SHUT_WR, and
+ * NGTCP2_STRM_FLAG_SHUT_RDWR.
*/
void ngtcp2_strm_shutdown(ngtcp2_strm *strm, uint32_t flags);
/*
- * ngtcp2_strm_streamfrq_push pushes |frc| to streamfrq for
+ * ngtcp2_strm_streamfrq_push pushes |frc| to strm->tx.streamfrq for
* retransmission.
*
* This function returns 0 if it succeeds, or one of the following
@@ -248,11 +249,12 @@ void ngtcp2_strm_shutdown(ngtcp2_strm *strm, uint32_t flags);
int ngtcp2_strm_streamfrq_push(ngtcp2_strm *strm, ngtcp2_frame_chain *frc);
/*
- * ngtcp2_strm_streamfrq_pop pops the first ngtcp2_frame_chain and
- * assigns it to |*pfrc|. This function splits into or merges several
- * ngtcp2_frame_chain objects so that the returned ngtcp2_frame_chain
- * has at most |left| data length. If there is no frames to send,
- * this function returns 0 and |*pfrc| is NULL.
+ * ngtcp2_strm_streamfrq_pop assigns a ngtcp2_frame_chain that only
+ * contains unacknowledged stream data with smallest offset to |*pfrc|
+ * for retransmission. The assigned ngtcp2_frame_chain has stream
+ * data at most |left| bytes. strm->tx.streamfrq is adjusted to
+ * exclude the portion of data included in it. If there is no stream
+ * data to send, this function returns 0 and |*pfrc| is NULL.
*
* This function returns 0 if it succeeds, or one of the following
* negative error codes:
@@ -305,7 +307,7 @@ int ngtcp2_strm_is_all_tx_data_fin_acked(ngtcp2_strm *strm);
/*
* ngtcp2_strm_get_unacked_range_after returns the range that is not
- * acknowledged yet and intersects or comes after |offset|.
+ * acknowledged yet and includes or comes after |offset|.
*/
ngtcp2_range ngtcp2_strm_get_unacked_range_after(ngtcp2_strm *strm,
uint64_t offset);
@@ -318,8 +320,8 @@ ngtcp2_range ngtcp2_strm_get_unacked_range_after(ngtcp2_strm *strm,
uint64_t ngtcp2_strm_get_acked_offset(ngtcp2_strm *strm);
/*
- * ngtcp2_strm_ack_data tells |strm| that the data [offset,
- * offset+len) is acknowledged by a remote endpoint.
+ * ngtcp2_strm_ack_data tells |strm| that the data [|offset|, |offset|
+ * + |len|) is acknowledged by a remote endpoint.
*/
int ngtcp2_strm_ack_data(ngtcp2_strm *strm, uint64_t offset, uint64_t len);
diff --git a/src/contrib/libngtcp2/ngtcp2/version.h b/src/contrib/libngtcp2/ngtcp2/version.h
index 85ef77b..4aa1164 100644
--- a/src/contrib/libngtcp2/ngtcp2/version.h
+++ b/src/contrib/libngtcp2/ngtcp2/version.h
@@ -36,7 +36,7 @@
*
* Version number of the ngtcp2 library release.
*/
-#define NGTCP2_VERSION "1.6.0"
+#define NGTCP2_VERSION "1.7.0"
/**
* @macro
@@ -46,6 +46,6 @@
* number, 8 bits for minor and 8 bits for patch. Version 1.2.3
* becomes 0x010203.
*/
-#define NGTCP2_VERSION_NUM 0x010600
+#define NGTCP2_VERSION_NUM 0x010700
#endif /* VERSION_H */
diff --git a/src/contrib/mempattern.c b/src/contrib/mempattern.c
index f57139d..f86f0ac 100644
--- a/src/contrib/mempattern.c
+++ b/src/contrib/mempattern.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -114,9 +114,15 @@ void mm_ctx_init(knot_mm_t *mm)
mm->free = free;
}
+// UBSAN type punning workaround
+static void *mp_alloc_wrap(void *ctx, size_t size)
+{
+ return mp_alloc(ctx, size);
+}
+
void mm_ctx_mempool(knot_mm_t *mm, size_t chunk_size)
{
mm->ctx = mp_new(chunk_size);
- mm->alloc = (knot_mm_alloc_t)mp_alloc;
+ mm->alloc = mp_alloc_wrap;
mm->free = mm_nofree;
}
diff --git a/src/contrib/spinlock.h b/src/contrib/spinlock.h
index 837f500..a7ec5ec 100644
--- a/src/contrib/spinlock.h
+++ b/src/contrib/spinlock.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,48 +15,23 @@
*/
/*!
- * \brief Multiplatform spinlock.
+ * \brief A C11 spinlock (POSIX pthread spinlock as a fallback).
*/
#pragma once
#if (__STDC_VERSION__ >= 201112L) && !defined(__STDC_NO_ATOMICS__)
-/* Not tested and activated yet. */
-/* #define HAVE_STDATOMIC */
-#endif
-
-#if defined(__APPLE__)
-# if defined(MAC_OS_X_VERSION_10_12) || \
- MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12
-# define APPLE_SPIN_NEW
-# else
-# define APPLE_SPIN_OLD
-# endif /* MAC_OS_X_VERSION_10_12 ... */
-#endif /* __APPLE__ */
-
-#if defined(HAVE_SYNC_ATOMIC) || defined(HAVE_ATOMIC)
-# include <stdbool.h>
-#elif defined(HAVE_STDATOMIC)
-# include <stdbool.h>
-# include <stdatomic.h>
-#elif defined(APPLE_SPIN_NEW)
-# include <os/lock.h>
-#elif defined(APPLE_SPIN_OLD)
-# include <libkern/OSAtomic.h>
+ #define HAVE_STDATOMIC
+ #include <stdatomic.h>
+ #include <stdbool.h>
#else /* POSIX pthread spinlock. */
-# include <pthread.h>
+ #include <pthread.h>
#endif
/*! \brief Spinlock lock variable type. */
typedef
-#if defined(HAVE_SYNC_ATOMIC) || defined(HAVE_ATOMIC)
- bool /*!< Spinlock lock - a simple & fast atomic version. */
-#elif defined(HAVE_STDATOMIC)
+#if defined(HAVE_STDATOMIC)
atomic_bool /*!< Spinlock lock - a simple & fast atomic version, C11 */
-#elif defined(APPLE_SPIN_NEW)
- os_unfair_lock /*!< Spinlock lock - a newer macOS version (macOS >= 10.12). */
-#elif defined(APPLE_SPIN_OLD)
- OSSpinLock /*!< Spinlock lock - an older macOS version (macOS < 10.12). */
#else /* POSIX */
pthread_spinlock_t /*!< Spinlock lock - a POSIX pthread version. */
#endif
@@ -65,14 +40,8 @@ typedef
/*! \brief Initialize the spinlock pointed to by the parameter "lock". */
static inline void knot_spin_init(knot_spin_t *lock)
{
-#if defined(HAVE_SYNC_ATOMIC) || defined(HAVE_ATOMIC)
- *lock = false;
-#elif defined(HAVE_STDATOMIC)
+#if defined(HAVE_STDATOMIC)
atomic_init(lock, false);
-#elif defined(APPLE_SPIN_NEW)
- *lock = OS_UNFAIR_LOCK_INIT;
-#elif defined(APPLE_SPIN_OLD)
- *lock = OS_SPINLOCK_INIT;
#else /* POSIX */
pthread_spin_init(lock, PTHREAD_PROCESS_PRIVATE);
#endif
@@ -81,8 +50,7 @@ static inline void knot_spin_init(knot_spin_t *lock)
/*! \brief Destroy the spinlock pointed to by the parameter "lock". */
static inline void knot_spin_destroy(knot_spin_t *lock)
{
-#if defined(HAVE_SYNC_ATOMIC) || defined(HAVE_ATOMIC) || defined(HAVE_STDATOMIC) || \
- defined(APPLE_SPIN_NEW) || defined(APPLE_SPIN_OLD)
+#if defined(HAVE_STDATOMIC)
/* Nothing needed here. */
#else /* POSIX */
pthread_spin_destroy(lock);
@@ -92,23 +60,11 @@ static inline void knot_spin_destroy(knot_spin_t *lock)
/*! \brief Lock the spinlock pointed to by the parameter "lock". */
static inline void knot_spin_lock(knot_spin_t *lock)
{
-#if defined(HAVE_SYNC_ATOMIC)
- while (__sync_lock_test_and_set(lock, 1)) {
- }
-#elif defined(HAVE_ATOMIC)
- int expected = 0;
- while (!__atomic_compare_exchange_n(lock, &expected, 1, false, __ATOMIC_RELAXED, __ATOMIC_RELAXED)) {
- expected = 0;
- }
-#elif defined(HAVE_STDATOMIC)
- int expected = 0;
- while (!atomic_compare_exchange_strong(lock, &expected, false)) {
- expected = 0;
+#if defined(HAVE_STDATOMIC)
+ bool expected = false;
+ while (!atomic_compare_exchange_strong(lock, &expected, true)) {
+ expected = false;
}
-#elif defined(APPLE_SPIN_NEW)
- os_unfair_lock_lock(lock);
-#elif defined(APPLE_SPIN_OLD)
- OSSpinLockLock(lock);
#else /* POSIX */
pthread_spin_lock(lock);
#endif
@@ -117,16 +73,8 @@ static inline void knot_spin_lock(knot_spin_t *lock)
/*! \brief Unlock the spinlock pointed to by the parameter "lock". */
static inline void knot_spin_unlock(knot_spin_t *lock)
{
-#if defined(HAVE_SYNC_ATOMIC)
- __sync_lock_release(lock);
-#elif defined(HAVE_ATOMIC)
- __atomic_clear(lock, __ATOMIC_RELAXED);
-#elif defined(HAVE_STDATOMIC)
+#if defined(HAVE_STDATOMIC)
atomic_store(lock, false);
-#elif defined(APPLE_SPIN_NEW)
- os_unfair_lock_unlock(lock);
-#elif defined(APPLE_SPIN_OLD)
- OSSpinLockUnlock(lock);
#else /* POSIX */
pthread_spin_unlock(lock);
#endif
diff --git a/src/contrib/string.c b/src/contrib/string.c
index 272116e..6fa2d0a 100644
--- a/src/contrib/string.c
+++ b/src/contrib/string.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -26,16 +26,16 @@
/* #include <string.h> is needed. */
#elif defined(HAVE_EXPLICIT_MEMSET)
/* #include <string.h> is needed. */
-#elif defined(HAVE_GNUTLS_MEMSET)
- #include <gnutls/gnutls.h>
#else
- #define USE_CUSTOM_MEMSET
+ #include <gnutls/gnutls.h>
#endif
#include "contrib/string.h"
#include "contrib/ctype.h"
#include "contrib/tolower.h"
+const char *configure_summary = CONFIGURE_SUMMARY;
+
uint8_t *memdup(const uint8_t *data, size_t data_size)
{
uint8_t *result = (uint8_t *)malloc(data_size);
@@ -137,11 +137,6 @@ int const_time_memcmp(const void *s1, const void *s2, size_t n)
return equal;
}
-#if defined(USE_CUSTOM_MEMSET)
-typedef void *(*memset_t)(void *, int, size_t);
-static volatile memset_t volatile_memset = memset;
-#endif
-
void *memzero(void *s, size_t n)
{
#if defined(HAVE_EXPLICIT_BZERO) /* In OpenBSD since 5.5. */
@@ -161,14 +156,9 @@ void *memzero(void *s, size_t n)
return s;
#elif defined(HAVE_EXPLICIT_MEMSET) /* In NetBSD since 7.0. */
return explicit_memset(s, 0, n);
-#elif defined(HAVE_GNUTLS_MEMSET) /* In GnuTLS since 3.4.0. */
+#else
gnutls_memset(s, 0, n);
return s;
-#else /* Knot custom solution as a fallback. */
- /* Warning: the use of the return value is *probably* needed
- * so as to avoid the volatile_memset() to be optimized out.
- */
- return volatile_memset(s, 0, n);
#endif
}
diff --git a/src/contrib/string.h b/src/contrib/string.h
index ad3c990..3e113b1 100644
--- a/src/contrib/string.h
+++ b/src/contrib/string.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -24,6 +24,8 @@
#include <stddef.h>
#include <stdint.h>
+extern const char *configure_summary;
+
/*!
* \brief Create a copy of a binary buffer.
*
diff --git a/src/contrib/time.h b/src/contrib/time.h
index 20d241e..b12b366 100644
--- a/src/contrib/time.h
+++ b/src/contrib/time.h
@@ -88,6 +88,11 @@ inline static int knot_time_cmp(knot_time_t a, knot_time_t b)
{
return (a == b ? 0 : 1) * ((a && b) == 0 ? -1 : 1) * (a < b ? -1 : 1);
}
+inline static bool knot_time_lt (knot_time_t a, knot_time_t b) { return knot_time_cmp(a, b) < 0; }
+inline static bool knot_time_leq(knot_time_t a, knot_time_t b) { return knot_time_cmp(a, b) <= 0; }
+inline static bool knot_time_eq (knot_time_t a, knot_time_t b) { return knot_time_cmp(a, b) == 0; }
+inline static bool knot_time_geq(knot_time_t a, knot_time_t b) { return knot_time_cmp(a, b) >= 0; }
+inline static bool knot_time_gt (knot_time_t a, knot_time_t b) { return knot_time_cmp(a, b) > 0; }
/*!
* \brief Return the smaller (=earlier) from given two timestamps.
diff --git a/src/knot/Makefile.inc b/src/knot/Makefile.inc
index f67fe7f..0cbc9f3 100644
--- a/src/knot/Makefile.inc
+++ b/src/knot/Makefile.inc
@@ -1,12 +1,11 @@
libknotd_la_CPPFLAGS = $(AM_CPPFLAGS) $(CFLAG_VISIBILITY) $(libkqueue_CFLAGS) \
$(liburcu_CFLAGS) $(lmdb_CFLAGS) $(systemd_CFLAGS) \
- $(gnutls_CFLAGS) $(libngtcp2_CFLAGS) -DKNOTD_MOD_STATIC
+ $(libdbus_CFLAGS) $(gnutls_CFLAGS) -DKNOTD_MOD_STATIC
libknotd_la_LDFLAGS = $(AM_LDFLAGS) -export-symbols-regex '^knotd_'
-libknotd_la_LIBADD = $(dlopen_LIBS) $(libkqueue_LIBS) $(pthread_LIBS) \
- $(libngtcp2_LIBS)
+libknotd_la_LIBADD = $(dlopen_LIBS) $(libkqueue_LIBS) $(pthread_LIBS)
libknotd_LIBS = libknotd.la libknot.la libdnssec.la libzscanner.la \
$(libcontrib_LIBS) $(liburcu_LIBS) $(lmdb_LIBS) \
- $(systemd_LIBS) $(gnutls_LIBS)
+ $(systemd_LIBS) $(libdbus_LIBS) $(gnutls_LIBS)
if EMBEDDED_LIBNGTCP2
libknotd_la_LIBADD += $(libembngtcp2_LIBS)
@@ -93,6 +92,7 @@ libknotd_la_SOURCES = \
knot/events/handlers/notify.c \
knot/events/handlers/refresh.c \
knot/events/handlers/update.c \
+ knot/events/handlers/validate.c \
knot/events/replan.c \
knot/events/replan.h \
knot/nameserver/axfr.c \
@@ -125,6 +125,10 @@ libknotd_la_SOURCES = \
knot/query/query.h \
knot/query/requestor.c \
knot/query/requestor.h \
+ knot/query/tls-requestor.c \
+ knot/query/tls-requestor.h \
+ knot/common/dbus.c \
+ knot/common/dbus.h \
knot/common/evsched.c \
knot/common/evsched.h \
knot/common/fdset.c \
diff --git a/src/knot/catalog/catalog_db.c b/src/knot/catalog/catalog_db.c
index b483f4d..2ea776f 100644
--- a/src/knot/catalog/catalog_db.c
+++ b/src/knot/catalog/catalog_db.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@ int catalog_bailiwick_shift(const knot_dname_t *subname, const knot_dname_t *nam
if (*res == '\0') {
return -1;
}
- res = knot_wire_next_label(res, NULL);
+ res = knot_dname_next_label(res);
}
return res - subname;
}
diff --git a/src/knot/catalog/catalog_update.c b/src/knot/catalog/catalog_update.c
index edfd8c5..71b7dbe 100644
--- a/src/knot/catalog/catalog_update.c
+++ b/src/knot/catalog/catalog_update.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -132,7 +132,7 @@ static const knot_dname_t *get_uniq(const knot_dname_t *ptr_owner,
int labels = knot_dname_labels(ptr_owner, NULL);
labels -= knot_dname_labels(catz, NULL);
assert(labels >= 2);
- return ptr_owner + knot_dname_prefixlen(ptr_owner, labels - 2, NULL);
+ return ptr_owner + knot_dname_prefixlen(ptr_owner, labels - 2);
}
static bool same_uniq(const knot_dname_t *owner1, const knot_dname_t *catz1,
diff --git a/src/knot/catalog/interpret.c b/src/knot/catalog/interpret.c
index 7337105..3e8e5db 100644
--- a/src/knot/catalog/interpret.c
+++ b/src/knot/catalog/interpret.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -105,7 +105,7 @@ static const knot_dname_t *property_get_member(const zone_node_t *prop_node,
knot_rdataset_t *ptr = node_rdataset(prop_node->parent, KNOT_RRTYPE_PTR);
if (ptr == NULL) {
// fallback: search in provided complete zone contents
- const knot_dname_t *memb_name = knot_wire_next_label(prop_node->owner, NULL);
+ const knot_dname_t *memb_name = knot_dname_next_label(prop_node->owner);
const zone_node_t *memb_node = zone_contents_find_node(complete_conts, memb_name);
ptr = node_rdataset(memb_node, KNOT_RRTYPE_PTR);
if (memb_node != NULL) {
diff --git a/src/knot/common/dbus.c b/src/knot/common/dbus.c
new file mode 100644
index 0000000..38ae5fa
--- /dev/null
+++ b/src/knot/common/dbus.c
@@ -0,0 +1,243 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#include <stdarg.h>
+
+#include "knot/common/dbus.h"
+#include "knot/common/log.h"
+
+#define ENABLE_DBUS (ENABLE_DBUS_SYSTEMD | ENABLE_DBUS_LIBDBUS)
+
+#if defined(ENABLE_DBUS_SYSTEMD)
+
+#include <systemd/sd-bus.h>
+#define VALUE_OF(x) (x)
+typedef sd_bus * dbus_ctx_t;
+
+#elif defined(ENABLE_DBUS_LIBDBUS)
+
+#include <assert.h>
+#include <dbus/dbus.h>
+#define VALUE_OF(x) (&(x))
+typedef DBusConnection * dbus_ctx_t;
+
+#else
+
+typedef struct {} * dbus_ctx_t; // Dummy
+
+#endif // ENABLE_DBUS_LIBDBUS
+
+static dbus_ctx_t _dbus = NULL;
+
+int dbus_open(void)
+{
+ if (_dbus != NULL) {
+ return KNOT_EOK;
+ }
+#if defined(ENABLE_DBUS_SYSTEMD)
+ int ret = sd_bus_open_system(&_dbus);
+ if (ret < 0) {
+ goto error_systemd;
+ }
+
+ /* Take a well-known service name so that clients can find us. */
+ ret = sd_bus_request_name(_dbus, KNOT_DBUS_NAME, 0);
+ if (ret < 0) {
+ goto error_systemd;
+ }
+
+ log_info("d-bus: connected to system bus");
+ return KNOT_EOK;
+error_systemd:
+ log_error("d-bus: failed to open system bus (%s)", knot_strerror(ret));
+ dbus_close();
+ return ret;
+#elif defined(ENABLE_DBUS_LIBDBUS)
+ DBusError err;
+ dbus_error_init(&err);
+
+ _dbus = dbus_bus_get(DBUS_BUS_SYSTEM, &err);
+ if (dbus_error_is_set(&err) == TRUE) {
+ goto error_libdbus;
+ }
+
+ /* Take a well-known service name so that clients can find us. */
+ dbus_bus_request_name(_dbus, KNOT_DBUS_NAME, 0, &err);
+ if (dbus_error_is_set(&err) == TRUE) {
+ goto error_libdbus;
+ }
+
+ dbus_error_free(&err);
+ log_info("d-bus: connected to system bus");
+ return KNOT_EOK;
+error_libdbus:
+ log_error("d-bus: failed to open system bus (%s)", err.message);
+ dbus_error_free(&err);
+ dbus_close();
+ return KNOT_ERROR;
+#endif
+ log_error("d-bus: not supported");
+ return KNOT_ENOTSUP;
+}
+
+void dbus_close(void)
+{
+ if (_dbus == NULL) {
+ return;
+ }
+#if defined(ENABLE_DBUS_SYSTEMD)
+ _dbus = sd_bus_unref(_dbus);
+#elif defined(ENABLE_DBUS_LIBDBUS)
+ dbus_connection_unref(_dbus);
+ _dbus = NULL;
+#endif // ENABLE_DBUS_LIBDBUS
+}
+
+#if ENABLE_DBUS
+static void emit_event(const char *event, char *first_arg_type, ...)
+{
+ int ret = KNOT_ENOENT;
+ if (_dbus == NULL) {
+ goto failed;
+ }
+
+#if defined(ENABLE_DBUS_SYSTEMD)
+ sd_bus_message *msg = NULL;
+ ret = sd_bus_message_new_signal(_dbus, &msg, KNOT_DBUS_PATH,
+ KNOT_DBUS_NAME".events", event);
+ if (ret < 0) {
+ goto failed;
+ }
+
+ va_list args;
+ va_start(args, first_arg_type);
+ ret = sd_bus_message_appendv(msg, first_arg_type, args);
+ if (ret < 0) {
+ sd_bus_message_unref(msg);
+ va_end(args);
+ goto failed;
+ }
+ /*
+ * \note sd_bus_message_send(msg) or even sd_bus_emit_signalv() can
+ * be used with a newer systemd.
+ */
+ ret = sd_bus_send(sd_bus_message_get_bus(msg), msg, NULL);
+ if (ret < 0) {
+ sd_bus_message_unref(msg);
+ va_end(args);
+ goto failed;
+ }
+ va_end(args);
+#elif defined(ENABLE_DBUS_LIBDBUS)
+ DBusMessage *msg = NULL;
+ msg = dbus_message_new_signal(KNOT_DBUS_PATH, KNOT_DBUS_NAME".events",
+ event);
+ if (msg == NULL) {
+ ret = KNOT_ENOMEM;
+ goto failed;
+ }
+
+ /*
+ * \note This loop considers only basic data types; composite ones,
+ * such as arrays, result in undefined behavior.
+ */
+ va_list args;
+ va_start(args, first_arg_type);
+ for (const char *type = first_arg_type; *type; ++type) {
+ dbus_bool_t bret = dbus_message_append_args(msg, *type,
+ va_arg(args, void *),
+ DBUS_TYPE_INVALID);
+ if (bret == FALSE) {
+ dbus_message_unref(msg);
+ va_end(args);
+ assert(0); // Read note
+ ret = KNOT_EINVAL;
+ goto failed;
+ }
+ }
+
+ if (dbus_connection_send(_dbus, msg, NULL) == 0) {
+ dbus_message_unref(msg);
+ va_end(args);
+ ret = KNOT_NET_ESEND;
+ goto failed;
+ }
+ dbus_message_unref(msg);
+ va_end(args);
+#endif // ENABLE_DBUS_LIBDBUS
+ return;
+failed:
+ log_error("d-bus: failed to emit signal '%s' (%s)", event, knot_strerror(ret));
+}
+#endif // ENABLE_DBUS
+
+void dbus_emit_running(bool up)
+{
+#if ENABLE_DBUS
+ emit_event(up ? KNOT_BUS_EVENT_STARTED : KNOT_BUS_EVENT_STOPPED, "");
+#endif // ENABLE_DBUS
+}
+
+void dbus_emit_zone_updated(const knot_dname_t *zone_name, uint32_t serial)
+{
+#if ENABLE_DBUS
+ knot_dname_txt_storage_t buff;
+ char *zone_str = knot_dname_to_str(buff, zone_name, sizeof(buff));
+ if (zone_str != NULL) {
+ emit_event(KNOT_BUS_EVENT_ZONE_UPD, "su", VALUE_OF(zone_str),
+ VALUE_OF(serial));
+ }
+#endif // ENABLE_DBUS
+}
+
+void dbus_emit_keys_updated(const knot_dname_t *zone_name)
+{
+#if ENABLE_DBUS
+ knot_dname_txt_storage_t buff;
+ char *zone_str = knot_dname_to_str(buff, zone_name, sizeof(buff));
+ if (zone_str != NULL) {
+ emit_event(KNOT_BUS_EVENT_ZONE_KEYS_UPD, "s",
+ VALUE_OF(zone_str));
+ }
+#endif // ENABLE_DBUS
+}
+
+void dbus_emit_zone_submission(const knot_dname_t *zone_name, uint16_t keytag,
+ const char *keyid)
+{
+#if ENABLE_DBUS
+ knot_dname_txt_storage_t buff;
+ char *zone_str = knot_dname_to_str(buff, zone_name, sizeof(buff));
+ if (zone_str != NULL) {
+ emit_event(KNOT_BUS_EVENT_ZONE_KSK_SUBM, "sqs",
+ VALUE_OF(zone_str), VALUE_OF(keytag),
+ VALUE_OF(keyid));
+ }
+#endif // ENABLE_DBUS
+}
+
+void dbus_emit_zone_invalid(const knot_dname_t *zone_name, uint32_t remaining_secs)
+{
+#if ENABLE_DBUS
+ knot_dname_txt_storage_t buff;
+ char *zone_str = knot_dname_to_str(buff, zone_name, sizeof(buff));
+ if (zone_str != NULL) {
+ emit_event(KNOT_BUS_EVENT_ZONE_INVALID, "su",
+ VALUE_OF(zone_str),
+ VALUE_OF(remaining_secs));
+ }
+#endif // ENABLE_DBUS
+}
diff --git a/src/knot/common/dbus.h b/src/knot/common/dbus.h
new file mode 100644
index 0000000..3a529f3
--- /dev/null
+++ b/src/knot/common/dbus.h
@@ -0,0 +1,86 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+/*!
+ * \brief D-Bus API wrappers.
+ */
+
+#pragma once
+
+#include "libknot/libknot.h"
+
+#define KNOT_DBUS_NAME "cz.nic.knotd"
+#define KNOT_DBUS_PATH "/cz/nic/knotd"
+
+#define KNOT_BUS_EVENT_STARTED "started"
+#define KNOT_BUS_EVENT_STOPPED "stopped"
+#define KNOT_BUS_EVENT_ZONE_UPD "zone_updated"
+#define KNOT_BUS_EVENT_ZONE_KEYS_UPD "keys_updated"
+#define KNOT_BUS_EVENT_ZONE_KSK_SUBM "zone_ksk_submission"
+#define KNOT_BUS_EVENT_ZONE_INVALID "zone_dnssec_invalid"
+
+/*!
+ * \brief Creates unique D-Bus sender reference (common for whole process).
+ *
+ * \retval KNOT_EOK on successful create of reference.
+ * \retval Negative value on error.
+ */
+int dbus_open(void);
+
+/*!
+ * \brief Closes D-Bus.
+ */
+void dbus_close(void);
+
+/*!
+ * \brief Emit event signal for started daemon.
+ *
+ * \param up Indication if the server has been started.
+ */
+void dbus_emit_running(bool up);
+
+/*!
+ * \brief Emit event signal for updated zones.
+ *
+ * \param zone_name Zone name.
+ * \param serial Current zone SOA serial.
+ */
+void dbus_emit_zone_updated(const knot_dname_t *zone_name, uint32_t serial);
+
+/*!
+ * \brief Emit event signal for updated DNSSEC key set.
+ *
+ * \param zone_name Zone name.
+ */
+void dbus_emit_keys_updated(const knot_dname_t *zone_name);
+
+/*!
+ * \brief Emit event signal for KSK submission.
+ *
+ * \param zone_name Zone name.
+ * \param keytag Keytag of the ready key.
+ * \param keyid KASP id of the ready key.
+ */
+void dbus_emit_zone_submission(const knot_dname_t *zone_name, uint16_t keytag,
+ const char *keyid);
+
+/*!
+ * \brief Emit event signal for failed DNSSEC validation.
+ *
+ * \param zone_name Zone name.
+ * \param remaining_secs Remaining time until a RRSIG expires.
+ */
+void dbus_emit_zone_invalid(const knot_dname_t *zone_name, uint32_t remaining_secs);
diff --git a/src/knot/common/fdset.c b/src/knot/common/fdset.c
index a0a0212..2bf4113 100644
--- a/src/knot/common/fdset.c
+++ b/src/knot/common/fdset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -35,6 +35,7 @@ static int fdset_resize(fdset_t *set, const unsigned size)
assert(set);
MEM_RESIZE(set->ctx, size);
+ MEM_RESIZE(set->ctx2, size);
MEM_RESIZE(set->timeout, size);
#if defined(HAVE_EPOLL) || defined(HAVE_KQUEUE)
MEM_RESIZE(set->ev, size);
@@ -80,6 +81,7 @@ void fdset_clear(fdset_t *set)
}
free(set->ctx);
+ free(set->ctx2);
free(set->timeout);
#if defined(HAVE_EPOLL) || defined(HAVE_KQUEUE)
free(set->ev);
@@ -104,6 +106,7 @@ int fdset_add(fdset_t *set, const int fd, const fdset_event_t events, void *ctx)
const int idx = set->n++;
set->ctx[idx] = ctx;
+ set->ctx2[idx] = NULL;
set->timeout[idx] = 0;
#ifdef HAVE_EPOLL
set->ev[idx].data.fd = fd;
@@ -164,6 +167,7 @@ int fdset_remove(fdset_t *set, const unsigned idx)
/* Nothing else if it is the last one. Move last -> i if some remain. */
if (idx < last) {
set->ctx[idx] = set->ctx[last];
+ set->ctx2[idx] = set->ctx2[last];
set->timeout[idx] = set->timeout[last];
#if defined(HAVE_EPOLL) || defined (HAVE_KQUEUE)
set->ev[idx] = set->ev[last];
@@ -326,8 +330,7 @@ void fdset_sweep(fdset_t *set, const fdset_sweep_cb_t cb, void *data)
while (idx < set->n) {
/* Check sweep state, remove if requested. */
if (set->timeout[idx] > 0 && set->timeout[idx] <= now.tv_sec) {
- const int fd = fdset_get_fd(set, idx);
- if (cb(set, fd, data) == FDSET_SWEEP) {
+ if (cb(set, idx, data) == FDSET_SWEEP) {
(void)fdset_remove(set, idx);
continue;
}
diff --git a/src/knot/common/fdset.h b/src/knot/common/fdset.h
index e0c3dbe..81ec7a8 100644
--- a/src/knot/common/fdset.h
+++ b/src/knot/common/fdset.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -45,6 +45,7 @@ typedef struct {
unsigned n; /*!< Active fds. */
unsigned size; /*!< Array size (allocated). */
void **ctx; /*!< Context for each fd. */
+ void **ctx2; /*!< Another context for each fd. */
time_t *timeout; /*!< Timeout for each fd (seconds precision). */
#if defined(HAVE_EPOLL) || defined(HAVE_KQUEUE)
#ifdef HAVE_EPOLL
@@ -271,6 +272,16 @@ inline static void *fdset_it_get_ctx(const fdset_it_t *it)
}
/*!
+ * \brief Get a read/write pointer on (void *) second context.
+ */
+inline static void **fdset_ctx2(const fdset_t *set, const unsigned idx)
+{
+ assert(set && idx < set->n);
+
+ return &set->ctx2[idx];
+}
+
+/*!
* \brief Move iterator on next received event.
*
* \param it Target iterator.
diff --git a/src/knot/common/stats.c b/src/knot/common/stats.c
index 79c0f23..da31e3d 100644
--- a/src/knot/common/stats.c
+++ b/src/knot/common/stats.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -24,140 +24,168 @@
#include "knot/common/stats.h"
#include "knot/common/log.h"
#include "knot/nameserver/query_module.h"
+#include "libknot/xdp.h"
-struct {
- bool active_dumper;
- pthread_t dumper;
- uint32_t timer;
- server_t *server;
-} stats = { 0 };
-
-typedef struct {
- FILE *fd;
- const list_t *query_modules;
- const knot_dname_t *zone;
- unsigned threads;
- int level;
- bool zone_emitted;
- bool zone_name_emitted;
- bool module_emitted;
-} dump_ctx_t;
-
-#define DUMP_STR(fd, level, name, ...) do { \
- fprintf(fd, "%-.*s"name":\n", level, " ", ##__VA_ARGS__); \
-} while (0)
-
-#define DUMP_CTR(fd, level, name, idx, val) do { \
- fprintf(fd, "%-.*s"name": %"PRIu64"\n", level, " ", idx, val); \
-} while (0)
-
-static uint64_t server_zone_count(server_t *server)
+static uint64_t stats_get_counter(knot_atomic_uint64_t **stats_vals, uint32_t offset,
+ unsigned threads)
{
- return knot_zonedb_size(server->zone_db);
+ uint64_t res = 0;
+ for (unsigned i = 0; i < threads; i++) {
+ res += ATOMIC_GET(stats_vals[i][offset]);
+ }
+ return res;
}
-const stats_item_t server_stats[] = {
- { "zone-count", { .server_val = server_zone_count } },
- { 0 }
-};
-
-static uint64_t zone_size(zone_t *zone)
+int stats_xdp(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx)
{
- return zone->contents != NULL ? zone->contents->size : 0;
+#ifdef ENABLE_XDP
+#define DUMP(structure, item_name, avg) { \
+ params.item_begin = true; \
+ params.item = #item_name; \
+ params.id = stats[0].if_name; \
+ params.value = 0; \
+ for (int j = 0; j < i->fd_xdp_count; j++) { \
+ params.value += stats[j].structure.item_name; \
+ } \
+ if (avg) { \
+ params.value /= i->fd_xdp_count; \
+ } \
+ int ret = fcn(&params, ctx); \
+ if (ret != KNOT_EOK) { \
+ return ret; \
+ } \
}
+ stats_dump_params_t params = { .section = "xdp" };
-static uint64_t zone_max_ttl(zone_t *zone)
-{
- return zone->contents != NULL ? zone->contents->max_ttl : 0;
+ if (ctx->section != NULL && strcasecmp(ctx->section, params.section) != 0) {
+ return KNOT_EOK;
+ }
+
+ for (const iface_t *i = ctx->server->ifaces;
+ i != ctx->server->ifaces + ctx->server->n_ifaces; i++) {
+ if (i->fd_xdp_count == 0) {
+ continue;
+ }
+ knot_xdp_stats_t stats[i->fd_xdp_count];
+ for (int j = 0; j < i->fd_xdp_count; j++) {
+ knot_xdp_socket_stats(i->xdp_sockets[j], &stats[j]);
+ }
+
+ DUMP(socket, rx_dropped, false);
+ DUMP(socket, rx_invalid, false);
+ DUMP(socket, tx_invalid, false);
+ DUMP(socket, rx_full, false);
+ DUMP(socket, fq_empty, false);
+ DUMP(socket, tx_empty, false);
+ DUMP(rings, tx_busy, true);
+ DUMP(rings, fq_fill, true);
+ DUMP(rings, rx_fill, true);
+ DUMP(rings, tx_fill, true);
+ DUMP(rings, cq_fill, true);
+ }
+#undef DUMP
+#endif
+ return KNOT_EOK;
}
-const stats_item_t zone_contents_stats[] = {
- { "size", { .zone_val = zone_size } },
- { "max-ttl", { .zone_val = zone_max_ttl } },
- { 0 }
-};
+#define DUMP_VAL(params, it, val) { \
+ (params).item = (it); \
+ (params).value = (val); \
+ int ret = fcn(&(params), ctx); \
+ if (ret != KNOT_EOK) { \
+ return ret; \
+ } \
+}
-uint64_t stats_get_counter(uint64_t **stats_vals, uint32_t offset, unsigned threads)
+int stats_server(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx)
{
- uint64_t res = 0;
- for (unsigned i = 0; i < threads; i++) {
- res += ATOMIC_GET(stats_vals[i][offset]);
+ stats_dump_params_t params = { .section = "server" };
+
+ if (ctx->section != NULL && strcasecmp(ctx->section, params.section) != 0) {
+ return KNOT_EOK;
}
- return res;
+
+ DUMP_VAL(params, "zone-count", knot_zonedb_size(ctx->server->zone_db));
+
+ return KNOT_EOK;
}
-static void dump_common(dump_ctx_t *ctx, knotd_mod_t *mod)
+int stats_zone(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx)
{
- // Dump zone name.
- if (ctx->zone != NULL) {
- // Prevent from zone section override.
- if (!ctx->zone_emitted) {
- ctx->level = 0;
- DUMP_STR(ctx->fd, ctx->level++, "zone");
- ctx->zone_emitted = true;
- }
+ knot_dname_txt_storage_t zone;
+ stats_dump_params_t params = { .section = "zone", .zone = zone };
- if (!ctx->zone_name_emitted) {
- ctx->level = 1;
- knot_dname_txt_storage_t name;
- if (knot_dname_to_str(name, ctx->zone, sizeof(name)) == NULL) {
- return;
- }
- DUMP_STR(ctx->fd, ctx->level++, "\"%s\"", name);
- ctx->zone_name_emitted = true;
- }
+ if (ctx->section != NULL && strcasecmp(ctx->section, params.section) != 0) {
+ return KNOT_EOK;
}
- if (!ctx->module_emitted) {
- DUMP_STR(ctx->fd, ctx->level++, "%s", mod->id->name + 1);
- ctx->module_emitted = true;
+ assert(ctx->zone);
+ zone_contents_t *contents = ctx->zone->contents;
+
+ if (knot_dname_to_str(zone, ctx->zone->name, sizeof(zone)) == NULL) {
+ return KNOT_EINVAL;
}
+
+ DUMP_VAL(params, "size", contents != NULL ? contents->size : 0);
+ DUMP_VAL(params, "max-ttl", contents != NULL ? contents->max_ttl : 0);
+
+ return KNOT_EOK;
}
-static void dump_counter(dump_ctx_t *ctx, knotd_mod_t *mod, mod_ctr_t *ctr)
+static int stats_counter(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx,
+ stats_dump_params_t *params, knotd_mod_t *mod, mod_ctr_t *ctr)
{
- uint64_t counter = stats_get_counter(mod->stats_vals, ctr->offset, ctx->threads);
- if (counter == 0) {
- // Skip empty counter.
- return;
- }
+ params->id = NULL;
+ params->value_pos = 0;
- dump_common(ctx, mod);
+ uint64_t val = stats_get_counter(mod->stats_vals, ctr->offset, ctx->threads);
- DUMP_CTR(ctx->fd, ctx->level, "%s", ctr->name, counter);
+ DUMP_VAL(*params, ctr->name, val);
+
+ return KNOT_EOK;
}
-static void dump_counters(dump_ctx_t *ctx, knotd_mod_t *mod, mod_ctr_t *ctr)
+static int stats_counters(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx,
+ stats_dump_params_t *params, knotd_mod_t *mod, mod_ctr_t *ctr)
{
- bool counter_emitted = false;
- for (uint32_t j = 0; j < ctr->count; j++) {
- uint64_t counter = stats_get_counter(mod->stats_vals, ctr->offset + j, ctx->threads);
- if (counter == 0) {
- // Skip empty counter.
- continue;
- }
+ char id[64];
+ params->id = id;
+ params->value_pos = 0;
+ params->item_begin = true;
- dump_common(ctx, mod);
-
- if (!counter_emitted) {
- DUMP_STR(ctx->fd, ctx->level, "%s", ctr->name);
- counter_emitted = true;
- }
+ for (uint32_t i = 0; i < ctr->count; i++) {
+ uint64_t val = stats_get_counter(mod->stats_vals, ctr->offset + i,
+ ctx->threads);
if (ctr->idx_to_str != NULL) {
- char *str = ctr->idx_to_str(j, ctr->count);
- if (str != NULL) {
- DUMP_CTR(ctx->fd, ctx->level + 1, "%s", str, counter);
- free(str);
+ char *str = ctr->idx_to_str(i, ctr->count);
+ if (str == NULL) {
+ continue;
}
+ (void)snprintf(id, sizeof(id), "%s", str);
+ free(str);
} else {
- DUMP_CTR(ctx->fd, ctx->level + 1, "%u", j, counter);
+ (void)snprintf(id, sizeof(id), "%u", i);
}
+
+ DUMP_VAL(*params, ctr->name, val);
+ params->value_pos++;
}
+
+ params->id = NULL;
+
+ return KNOT_EOK;
}
-static void dump_modules(dump_ctx_t *ctx)
+int stats_modules(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx)
{
+ if (ctx->section != NULL && strncasecmp(ctx->section, "mod-", strlen("mod-")) != 0) {
+ return KNOT_EOK;
+ }
+
+ knot_dname_txt_storage_t zone;
+ stats_dump_params_t params = { 0 };
+
knotd_mod_t *mod;
WALK_LIST(mod, *ctx->query_modules) {
// Skip modules without statistics.
@@ -169,39 +197,114 @@ static void dump_modules(dump_ctx_t *ctx)
ctx->threads = knotd_mod_threads(mod);
}
+ params.section = mod->id->name + 1;
+ params.module_begin = true;
+ if (ctx->zone != NULL && params.zone == NULL) {
+ params.zone = knot_dname_to_str(zone, ctx->zone->name,
+ sizeof(zone));
+ if (params.zone == NULL) {
+ return KNOT_EINVAL;
+ }
+ }
+
// Dump module counters.
- ctx->module_emitted = false;
for (int i = 0; i < mod->stats_count; i++) {
mod_ctr_t *ctr = mod->stats_info + i;
if (ctr->name == NULL) {
// Empty counter.
continue;
}
- if (ctr->count == 1) {
- // Simple counter.
- dump_counter(ctx, mod, ctr);
- } else {
- // Array of counters.
- dump_counters(ctx, mod, ctr);
+ int ret = (ctr->count == 1) ?
+ stats_counter(fcn, ctx, &params, mod, ctr) :
+ stats_counters(fcn, ctx, &params, mod, ctr);
+ if (ret != KNOT_EOK) {
+ return ret;
}
}
- if (ctx->module_emitted) {
- ctx->level--;
+ }
+
+ return KNOT_EOK;
+}
+
+struct {
+ bool active_dumper;
+ pthread_t dumper;
+ uint32_t timer;
+ server_t *server;
+} stats = { 0 };
+
+typedef struct {
+ FILE *fd;
+ bool section_emitted;
+ bool zone_section_emitted;
+ bool zone_emitted;
+ bool id_emitted;
+} dump_ctx_t;
+
+static int dump_ctr(stats_dump_params_t *params, stats_dump_ctx_t *dump_ctx)
+{
+ dump_ctx_t *ctx = dump_ctx->ctx;
+
+ if (params->value == 0) {
+ return KNOT_EOK;
+ }
+
+ const char *INDENT = " ";
+ unsigned indent = 0;
+
+ if (params->zone != NULL) {
+ if (!ctx->zone_section_emitted) {
+ fprintf(ctx->fd, "zone:\n");
+ ctx->zone_section_emitted = true;
+ }
+
+ if (!ctx->zone_emitted) {
+ fprintf(ctx->fd, " \"%s\":\n", params->zone);
+ ctx->zone_emitted = true;
}
+ indent += 2;
}
+
+ if (!ctx->section_emitted || params->module_begin) {
+ fprintf(ctx->fd, "%-.*s%s:\n", indent, INDENT, params->section);
+ ctx->section_emitted = true;
+ params->module_begin = false;
+ }
+ indent++;
+
+ if (params->id != NULL) {
+ if (params->item_begin) {
+ fprintf(ctx->fd, "%-.*s%s:\n", indent, INDENT, params->item);
+ params->item_begin = false;
+ }
+ indent++;
+ fprintf(ctx->fd, "%-.*s%s: %"PRIu64"\n", indent, INDENT,
+ params->id, params->value);
+ } else {
+ fprintf(ctx->fd, "%-.*s%s: %"PRIu64"\n", indent, INDENT,
+ params->item, params->value);
+ }
+
+ return KNOT_EOK;
}
-static void zone_stats_dump(zone_t *zone, dump_ctx_t *ctx)
+static void zone_stats_dump(zone_t *zone, stats_dump_ctx_t *dump_ctx)
{
if (EMPTY_LIST(zone->query_modules)) {
return;
}
- ctx->query_modules = &zone->query_modules;
- ctx->zone = zone->name;
- ctx->zone_name_emitted = false;
+ // Reset per-zone context.
+ dump_ctx_t *ctx = dump_ctx->ctx;
+ *ctx = (dump_ctx_t){
+ .fd = ctx->fd,
+ .zone_section_emitted = ctx->zone_section_emitted,
+ };
+
+ dump_ctx->zone = zone;
+ dump_ctx->query_modules = &zone->query_modules;
- dump_modules(ctx);
+ (void)stats_modules(dump_ctr, dump_ctx);
}
static void dump_to_file(conf_t *conf, FILE *fd, server_t *server)
@@ -224,22 +327,28 @@ static void dump_to_file(conf_t *conf, FILE *fd, server_t *server)
"identity: %s\n",
date, ident);
- dump_ctx_t ctx = {
- .fd = fd,
+ dump_ctx_t ctx = { .fd = fd };
+
+ stats_dump_ctx_t dump_ctx = {
+ .server = server,
.query_modules = conf->query_modules,
+ .ctx = &ctx,
};
- // Dump server statistics.
- DUMP_STR(ctx.fd, ctx.level, "server");
- for (const stats_item_t *item = server_stats; item->name != NULL; item++) {
- DUMP_CTR(ctx.fd, ctx.level + 1, "%s", item->name, item->server_val(server));
- }
+ // Dump server counters.
+ (void)stats_server(dump_ctr, &dump_ctx);
+
+ // Dump XDP counters.
+ ctx = (dump_ctx_t){ .fd = fd };
+ (void)stats_xdp(dump_ctr, &dump_ctx);
- // Dump global statistics.
- dump_modules(&ctx);
+ // Dump global module counters.
+ ctx = (dump_ctx_t){ .fd = fd };
+ (void)stats_modules(dump_ctr, &dump_ctx);
- // Dump zone statistics.
- knot_zonedb_foreach(server->zone_db, zone_stats_dump, &ctx);
+ // Dump per zone module counters (fixed zone counters not included).
+ ctx = (dump_ctx_t){ .fd = fd };
+ knot_zonedb_foreach(server->zone_db, zone_stats_dump, &dump_ctx);
}
static void dump_stats(server_t *server)
@@ -321,7 +430,6 @@ void stats_reconfigure(conf_t *conf, server_t *server)
return;
}
- // Update server context.
stats.server = server;
conf_val_t val = conf_get(conf, C_STATS, C_TIMER);
diff --git a/src/knot/common/stats.h b/src/knot/common/stats.h
index 5cb51ca..4391178 100644
--- a/src/knot/common/stats.h
+++ b/src/knot/common/stats.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,36 +20,65 @@
#pragma once
+#include "contrib/atomic.h"
#include "knot/server/server.h"
-typedef uint64_t (*stats_server_val_f)(server_t *server);
-typedef uint64_t (*stats_zone_val_f)(zone_t *zone);
+/*!
+ * \brief Parameters for a statistic metric dump callback.
+ */
+typedef struct {
+ const char *section;
+ const char *item;
+ const char *id;
+ const char *zone;
+ uint64_t value;
+ unsigned value_pos; // Counted from 0.
+
+ bool module_begin; // Indication of a new module.
+ bool item_begin; // Indication of a new item.
+} stats_dump_params_t;
/*!
- * \brief Statistics metrics item.
+ * \brief Statistic metric context.
*/
typedef struct {
- const char *name; /*!< Metrics name. */
- union {
- stats_server_val_f server_val; /*!< Server metrics value getter. */
- stats_zone_val_f zone_val; /*!< Zone metrics value getter. */
- };
-} stats_item_t;
+ server_t *server;
+ zone_t *zone;
+ const list_t *query_modules;
+
+ const char *section; // Optional section specification.
+ const char *item; // Optional item specification.
+ bool match; // Indication of non-empty [[section[.item]] selection.
+
+ unsigned threads; // Internal cache for the number of workers.
+
+ void *ctx;
+} stats_dump_ctx_t;
+
+/*!
+ * \brief Statistic metric dump callback.
+ */
+typedef int (*stats_dump_ctr_f)(stats_dump_params_t *, stats_dump_ctx_t *);
+
+/*!
+ * \brief XDP metrics.
+ */
+int stats_xdp(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx);
/*!
- * \brief Basic server metrics.
+ * \brief Server metrics.
*/
-extern const stats_item_t server_stats[];
+int stats_server(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx);
/*!
- * \brief Basic zone metrics.
+ * \brief Zone metrics.
*/
-extern const stats_item_t zone_contents_stats[];
+int stats_zone(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx);
/*!
- * \brief Read out value of single counter summed across threads.
+ * \brief Modules metrics.
*/
-uint64_t stats_get_counter(uint64_t **stats_vals, uint32_t offset, unsigned threads);
+int stats_modules(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx);
/*!
* \brief Reconfigures the statistics facility.
diff --git a/src/knot/common/systemd.c b/src/knot/common/systemd.c
index 5a72fb4..3f9d9a6 100644
--- a/src/knot/common/systemd.c
+++ b/src/knot/common/systemd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -14,8 +14,6 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-#include <stdarg.h>
-#include <stdio.h>
#include <stdlib.h>
#include "knot/common/systemd.h"
@@ -43,12 +41,6 @@ static int systemd_zone_load_timeout(void)
}
#endif
-#ifdef ENABLE_DBUS
-#include <systemd/sd-bus.h>
-
-static sd_bus *_dbus = NULL;
-#endif
-
void systemd_zone_load_timeout_notify(void)
{
#ifdef ENABLE_SYSTEMD
@@ -92,91 +84,3 @@ void systemd_stopping_notify(void)
sd_notify(0, "STOPPING=1\nSTATUS=");
#endif
}
-
-int systemd_dbus_open(void)
-{
-#ifdef ENABLE_DBUS
- if (_dbus != NULL) {
- return KNOT_EOK;
- }
-
- int ret = sd_bus_open_system(&_dbus);
- if (ret < 0) {
- return ret;
- }
-
- /* Take a well-known service name so that clients can find us. */
- ret = sd_bus_request_name(_dbus, KNOT_DBUS_NAME, 0);
- if (ret < 0) {
- systemd_dbus_close();
- return ret;
- }
-
- return KNOT_EOK;
-#else
- return KNOT_ENOTSUP;
-#endif
-}
-
-void systemd_dbus_close(void)
-{
-#ifdef ENABLE_DBUS
- _dbus = sd_bus_unref(_dbus);
-#endif
-}
-
-#define emit_event(event, ...) \
- sd_bus_emit_signal(_dbus, KNOT_DBUS_PATH, KNOT_DBUS_NAME".events", \
- event, __VA_ARGS__)
-
-void systemd_emit_running(bool up)
-{
-#ifdef ENABLE_DBUS
- emit_event(up ? KNOT_BUS_EVENT_STARTED : KNOT_BUS_EVENT_STOPPED, "");
-#endif
-}
-
-void systemd_emit_zone_updated(const knot_dname_t *zone_name, uint32_t serial)
-{
-#ifdef ENABLE_DBUS
- knot_dname_txt_storage_t buff;
- char *zone_str = knot_dname_to_str(buff, zone_name, sizeof(buff));
- if (zone_str != NULL) {
- emit_event(KNOT_BUS_EVENT_ZONE_UPD, "su", zone_str, serial);
- }
-#endif
-}
-
-void systemd_emit_keys_updated(const knot_dname_t *zone_name)
-{
-#ifdef ENABLE_DBUS
- knot_dname_txt_storage_t buff;
- char *zone_str = knot_dname_to_str(buff, zone_name, sizeof(buff));
- if (zone_str != NULL) {
- emit_event(KNOT_BUS_EVENT_ZONE_KEYS_UPD, "s", zone_str);
- }
-#endif
-}
-
-void systemd_emit_zone_submission(const knot_dname_t *zone_name, uint16_t keytag,
- const char *keyid)
-{
-#ifdef ENABLE_DBUS
- knot_dname_txt_storage_t buff;
- char *zone_str = knot_dname_to_str(buff, zone_name, sizeof(buff));
- if (zone_str != NULL) {
- emit_event(KNOT_BUS_EVENT_ZONE_KSK_SUBM, "sqs", zone_str, keytag, keyid);
- }
-#endif
-}
-
-void systemd_emit_zone_invalid(const knot_dname_t *zone_name)
-{
-#ifdef ENABLE_DBUS
- knot_dname_txt_storage_t buff;
- char *zone_str = knot_dname_to_str(buff, zone_name, sizeof(buff));
- if (zone_str != NULL) {
- emit_event(KNOT_BUS_EVENT_ZONE_INVALID, "s", zone_str);
- }
-#endif
-}
diff --git a/src/knot/common/systemd.h b/src/knot/common/systemd.h
index c6fe260..2038e94 100644
--- a/src/knot/common/systemd.h
+++ b/src/knot/common/systemd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,18 +20,6 @@
#pragma once
-#include "libknot/libknot.h"
-
-#define KNOT_DBUS_NAME "cz.nic.knotd"
-#define KNOT_DBUS_PATH "/cz/nic/knotd"
-
-#define KNOT_BUS_EVENT_STARTED "started"
-#define KNOT_BUS_EVENT_STOPPED "stopped"
-#define KNOT_BUS_EVENT_ZONE_UPD "zone_updated"
-#define KNOT_BUS_EVENT_ZONE_KEYS_UPD "keys_updated"
-#define KNOT_BUS_EVENT_ZONE_KSK_SUBM "zone_ksk_submission"
-#define KNOT_BUS_EVENT_ZONE_INVALID "zone_dnssec_invalid"
-
/*!
* \brief Notify systemd about zone loading start.
*/
@@ -59,55 +47,3 @@ void systemd_reloading_notify(void);
* \brief Notify systemd about service is stopping.
*/
void systemd_stopping_notify(void);
-
-/*!
- * \brief Creates unique D-Bus sender reference (common for whole process).
- *
- * \retval KNOT_EOK on successful create of reference.
- * \retval Negative value on error.
- */
-int systemd_dbus_open(void);
-
-/*!
- * \brief Closes D-Bus.
- */
-void systemd_dbus_close(void);
-
-/*!
- * \brief Emit event signal for started daemon.
- *
- * \param up Indication if the server has been started.
- */
-void systemd_emit_running(bool up);
-
-/*!
- * \brief Emit event signal for updated zones.
- *
- * \param zone_name Zone name.
- * \param serial Current zone SOA serial.
- */
-void systemd_emit_zone_updated(const knot_dname_t *zone_name, uint32_t serial);
-
-/*!
- * \brief Emit event signal for updated DNSSEC key set.
- *
- * \param zone_name Zone name.
- */
-void systemd_emit_keys_updated(const knot_dname_t *zone_name);
-
-/*!
- * \brief Emit event signal for KSK submission.
- *
- * \param zone_name Zone name.
- * \param keytag Keytag of the ready key.
- * \param keyid KASP id of the ready key.
- */
-void systemd_emit_zone_submission(const knot_dname_t *zone_name, uint16_t keytag,
- const char *keyid);
-
-/*!
- * \brief Emit event signal for failed DNSSEC validation.
- *
- * \param zone_name Zone name.
- */
-void systemd_emit_zone_invalid(const knot_dname_t *zone_name);
diff --git a/src/knot/conf/base.c b/src/knot/conf/base.c
index 51caf10..4683171 100644
--- a/src/knot/conf/base.c
+++ b/src/knot/conf/base.c
@@ -130,6 +130,9 @@ static void init_cache(
static bool running_xdp_tcp;
static uint16_t running_xdp_quic;
static bool running_route_check;
+ static uint16_t running_ring_size;
+ static uint16_t running_busypoll_budget;
+ static uint16_t running_busypoll_timeout;
static size_t running_udp_threads;
static size_t running_tcp_threads;
static size_t running_xdp_threads;
@@ -148,6 +151,9 @@ static void init_cache(
running_xdp_quic = conf_get_int(conf, C_XDP, C_QUIC_PORT);
}
running_route_check = conf_get_bool(conf, C_XDP, C_ROUTE_CHECK);
+ running_ring_size = conf_get_int(conf, C_XDP, C_RING_SIZE);
+ running_busypoll_budget = conf_get_int(conf, C_XDP, C_BUSYPOLL_BUDGET);
+ running_busypoll_timeout = conf_get_int(conf, C_XDP, C_BUSYPOLL_TIMEOUT);
running_udp_threads = conf_udp_threads(conf);
running_tcp_threads = conf_tcp_threads(conf);
running_xdp_threads = conf_xdp_threads(conf);
@@ -235,6 +241,12 @@ static void init_cache(
conf->cache.xdp_route_check = running_route_check;
+ conf->cache.xdp_ring_size = running_ring_size;
+
+ conf->cache.xdp_busypoll_budget = running_busypoll_budget;
+
+ conf->cache.xdp_busypoll_timeout = running_busypoll_timeout;
+
val = conf_get(conf, C_CTL, C_TIMEOUT);
conf->cache.ctl_timeout = conf_int(&val) * 1000;
/* infinite_adjust() call isn't needed, 0 is adjusted later anyway. */
@@ -335,9 +347,10 @@ int conf_new(
ret = out->api->init(&out->db, NULL, &lmdb_opts);
// Remove the database to ensure it is temporary.
- if (!remove_path(lmdb_opts.path)) {
- CONF_LOG(LOG_WARNING, "failed to purge temporary directory '%s'",
- lmdb_opts.path);
+ int ret2 = remove_path(lmdb_opts.path, false);
+ if (ret2 != KNOT_EOK) {
+ CONF_LOG(LOG_WARNING, "failed to purge temporary directory '%s' (%s)",
+ lmdb_opts.path, knot_strerror(ret2));
}
} else {
// Set the specified database.
diff --git a/src/knot/conf/base.h b/src/knot/conf/base.h
index 5c77cac..1ac5ef5 100644
--- a/src/knot/conf/base.h
+++ b/src/knot/conf/base.h
@@ -165,6 +165,9 @@ typedef struct {
const char *srv_version;
uint32_t srv_quic_idle_close;
uint16_t xdp_quic;
+ uint16_t xdp_ring_size;
+ uint16_t xdp_busypoll_budget;
+ uint16_t xdp_busypoll_timeout;
int ctl_timeout;
bool xdp_udp;
bool xdp_tcp;
diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c
index 55ee971..5e9ed83 100644
--- a/src/knot/conf/conf.c
+++ b/src/knot/conf/conf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -606,8 +606,9 @@ void conf_mix_iter_next(
}
}
-int64_t conf_int(
- conf_val_t *val)
+int64_t conf_int_alt(
+ conf_val_t *val,
+ bool alternative)
{
assert(val != NULL && val->item != NULL);
assert(val->item->type == YP_TINT ||
@@ -618,7 +619,7 @@ int64_t conf_int(
conf_val(val);
return yp_int(val->data);
} else {
- return val->item->var.i.dflt;
+ return alternative ? val->item->var.i.dflt_alt : val->item->var.i.dflt;
}
}
@@ -1063,7 +1064,7 @@ static int str_label(
size_t index = labels - right_index - 1;
// Create a dname from the single label.
- size_t prefix_len = knot_dname_prefixlen(zone, index, NULL);
+ size_t prefix_len = knot_dname_prefixlen(zone, index);
size_t label_len = *(zone + prefix_len);
memcpy(label, zone + prefix_len, 1 + label_len);
label[1 + label_len] = '\0';
@@ -1379,6 +1380,8 @@ conf_remote_t conf_remote_txn(
conf_val_t val = conf_id_get_txn(conf, txn, C_RMT, C_QUIC, id);
out.quic = conf_bool(&val);
+ val = conf_id_get_txn(conf, txn, C_RMT, C_TLS, id);
+ out.tls = conf_bool(&val);
conf_val_t rundir_val = conf_get_txn(conf, txn, C_SRV, C_RUNDIR);
char *rundir = conf_abs_path(&rundir_val, NULL);
@@ -1398,7 +1401,7 @@ conf_remote_t conf_remote_txn(
conf_val_next(&val);
}
// Index overflow causes empty socket.
- out.addr = conf_addr_alt(&val, rundir, out.quic);
+ out.addr = conf_addr_alt(&val, rundir, out.quic || out.tls);
// Get outgoing address if family matches (optional).
uint16_t via_pos = 0;
diff --git a/src/knot/conf/conf.h b/src/knot/conf/conf.h
index 562722d..f79a284 100644
--- a/src/knot/conf/conf.h
+++ b/src/knot/conf/conf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -44,6 +44,8 @@ typedef struct {
struct sockaddr_storage via;
/*! QUIC context. */
bool quic;
+ /*! TLS context. */
+ bool tls;
/*! TSIG key. */
knot_tsig_key_t key;
/*! Suppress sending NOTIFY after zone transfer from this master. */
@@ -469,13 +471,20 @@ void conf_mix_iter_next(
/*!
* Gets the numeric value of the item.
*
- * \param[in] val Item value.
+ * \param[in] val Item value.
+ * \param[in] alternative Use alternative default value.
*
* \return Integer.
*/
-int64_t conf_int(
- conf_val_t *val
+int64_t conf_int_alt(
+ conf_val_t *val,
+ bool alternative
);
+inline static int64_t conf_int(
+ conf_val_t *val)
+{
+ return conf_int_alt(val, false);
+}
/*!
* Gets the boolean value of the item.
diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c
index 6e426b3..fd55fc8 100644
--- a/src/knot/conf/schema.c
+++ b/src/knot/conf/schema.c
@@ -24,6 +24,7 @@
#include "knot/conf/tools.h"
#include "knot/common/log.h"
#include "knot/updates/acl.h"
+#include "knot/zone/zone-load.h"
#include "libknot/rrtype/opt.h"
#include "libdnssec/tsig.h"
#include "libdnssec/key.h"
@@ -63,9 +64,7 @@ static const knot_lookup_t dnssec_key_algs[] = {
{ DNSSEC_KEY_ALGORITHM_RSA_SHA512, "rsasha512" },
{ DNSSEC_KEY_ALGORITHM_ECDSA_P256_SHA256, "ecdsap256sha256" },
{ DNSSEC_KEY_ALGORITHM_ECDSA_P384_SHA384, "ecdsap384sha384" },
-#ifdef HAVE_ED25519
{ DNSSEC_KEY_ALGORITHM_ED25519, "ed25519" },
-#endif
#ifdef HAVE_ED448
{ DNSSEC_KEY_ALGORITHM_ED448, "ed448" },
#endif
@@ -248,15 +247,8 @@ static const yp_item_t desc_server[] = {
{ C_DBUS_INIT_DELAY, YP_TINT, YP_VINT = { 0, INT32_MAX, 1, YP_STIME } },
{ C_LISTEN, YP_TADDR, YP_VADDR = { 53 }, YP_FMULTI, { check_listen } },
{ C_LISTEN_QUIC, YP_TADDR, YP_VADDR = { 853 }, YP_FMULTI, { check_listen } },
+ { C_LISTEN_TLS, YP_TADDR, YP_VADDR = { 853 }, YP_FMULTI, { check_listen } },
{ C_COMMENT, YP_TSTR, YP_VNONE },
- // Legacy items.
- { C_LISTEN_XDP, YP_TADDR, YP_VADDR = { 0 }, YP_FMULTI, { legacy_item } },
- { C_MAX_TCP_CLIENTS, YP_TINT, YP_VINT = { 0, INT32_MAX, 0 }, YP_FNONE, { legacy_item } },
- { C_TCP_HSHAKE_TIMEOUT, YP_TINT, YP_VINT = { 0, INT32_MAX, 0, YP_STIME }, YP_FNONE, { legacy_item } },
- { C_TCP_REPLY_TIMEOUT, YP_TINT, YP_VINT = { 0, INT32_MAX, 0, YP_STIME }, YP_FNONE, { legacy_item } },
- { C_MAX_UDP_PAYLOAD, YP_TINT, YP_VINT = { 0, INT32_MAX, 0, YP_SSIZE }, YP_FNONE, { legacy_item } },
- { C_MAX_IPV4_UDP_PAYLOAD, YP_TINT, YP_VINT = { 0, INT32_MAX, 0, YP_SSIZE }, YP_FNONE, { legacy_item } },
- { C_MAX_IPV6_UDP_PAYLOAD, YP_TINT, YP_VINT = { 0, INT32_MAX, 0, YP_SSIZE }, YP_FNONE, { legacy_item } },
{ NULL }
};
@@ -273,10 +265,10 @@ static const yp_item_t desc_xdp[] = {
{ C_TCP_IDLE_RESET, YP_TINT, YP_VINT = { 1, INT32_MAX, 20, YP_STIME } },
{ C_TCP_RESEND, YP_TINT, YP_VINT = { 1, INT32_MAX, 5, YP_STIME } },
{ C_ROUTE_CHECK, YP_TBOOL, YP_VNONE },
- { C_EXTRA_FRAMES, YP_TBOOL, YP_VNONE },
+ { C_RING_SIZE, YP_TINT, YP_VINT = { 4, 32768, 2048 } },
+ { C_BUSYPOLL_BUDGET, YP_TINT, YP_VINT = { 0, UINT16_MAX, 0 } },
+ { C_BUSYPOLL_TIMEOUT, YP_TINT, YP_VINT = { 1, UINT16_MAX, 20 } },
{ C_COMMENT, YP_TSTR, YP_VNONE },
- // Legacy items.
- { C_QUIC_LOG, YP_TBOOL, YP_VNONE, YP_FNONE, { legacy_item } },
{ NULL }
};
@@ -349,6 +341,7 @@ static const yp_item_t desc_remote[] = {
{ C_ADDR, YP_TADDR, YP_VADDR = { 53, 853 }, YP_FMULTI },
{ C_VIA, YP_TADDR, YP_VNONE, YP_FMULTI },
{ C_QUIC, YP_TBOOL, YP_VNONE },
+ { C_TLS, YP_TBOOL, YP_VNONE },
{ C_KEY, YP_TREF, YP_VREF = { C_KEY }, YP_FNONE, { check_ref } },
{ C_CERT_KEY, YP_TB64, YP_VNONE, YP_FMULTI, { check_cert_pin } },
{ C_BLOCK_NOTIFY_XFR, YP_TBOOL, YP_VNONE },
@@ -431,7 +424,7 @@ static const yp_item_t desc_policy[] = {
CONF_IO_FRLD_ZONES },
{ C_RRSIG_REFRESH, YP_TINT, YP_VINT = { 1, INT32_MAX, YP_NIL, YP_STIME },
CONF_IO_FRLD_ZONES },
- { C_RRSIG_PREREFRESH, YP_TINT, YP_VINT = { 0, INT32_MAX, HOURS(1), YP_STIME },
+ { C_RRSIG_PREREFRESH, YP_TINT, YP_VINT = { 0, INT32_MAX, HOURS(1), YP_STIME, DAYS(1) },
CONF_IO_FRLD_ZONES },
{ C_REPRO_SIGNING, YP_TBOOL, YP_VNONE, CONF_IO_FRLD_ZONES },
{ C_NSEC3, YP_TBOOL, YP_VNONE, CONF_IO_FRLD_ZONES },
@@ -471,6 +464,7 @@ static const yp_item_t desc_policy[] = {
{ C_MASTER_PIN_TOL, YP_TINT, YP_VINT = { 0, UINT32_MAX, 0, YP_STIME } }, \
{ C_PROVIDE_IXFR, YP_TBOOL, YP_VBOOL = { true } }, \
{ C_SEM_CHECKS, YP_TOPT, YP_VOPT = { semantic_checks, SEMCHECKS_OFF }, FLAGS }, \
+ { C_DEFAULT_TTL, YP_TINT, YP_VINT = { 1, INT32_MAX, DEFAULT_TTL, YP_STIME }, FLAGS }, \
{ C_ZONEFILE_SYNC, YP_TINT, YP_VINT = { -1, INT32_MAX, 0, YP_STIME } }, \
{ C_ZONEFILE_LOAD, YP_TOPT, YP_VOPT = { zonefile_load, ZONEFILE_LOAD_WHOLE } }, \
{ C_JOURNAL_CONTENT, YP_TOPT, YP_VOPT = { journal_content, JOURNAL_CONTENT_CHANGES }, FLAGS }, \
@@ -504,27 +498,12 @@ static const yp_item_t desc_policy[] = {
{ C_MODULE, YP_TDATA, YP_VDATA = { 0, NULL, mod_id_to_bin, mod_id_to_txt }, \
YP_FMULTI | FLAGS, { check_modref } }, \
{ C_COMMENT, YP_TSTR, YP_VNONE }, \
- /* Legacy items.*/ \
- { C_DISABLE_ANY, YP_TBOOL, YP_VNONE, YP_FNONE, { legacy_item } }, \
- { C_MAX_ZONE_SIZE, YP_TINT, YP_VINT = { 0, SSIZE_MAX, 0, YP_SSIZE }, YP_FNONE, { legacy_item } }, \
- { C_MAX_JOURNAL_USAGE, YP_TINT, YP_VINT = { 0, SSIZE_MAX, 0, YP_SSIZE }, YP_FNONE, { legacy_item } }, \
- { C_MAX_JOURNAL_DEPTH, YP_TINT, YP_VINT = { 0, SSIZE_MAX, 0 }, YP_FNONE, { legacy_item } }, \
- { C_MAX_REFRESH_INTERVAL,YP_TINT, YP_VINT = { 0, SSIZE_MAX, 0, YP_STIME }, YP_FNONE, { legacy_item } }, \
- { C_MIN_REFRESH_INTERVAL,YP_TINT, YP_VINT = { 0, SSIZE_MAX, 0, YP_STIME }, YP_FNONE, { legacy_item } }, \
static const yp_item_t desc_template[] = {
{ C_ID, YP_TSTR, YP_VNONE, CONF_IO_FREF },
{ C_GLOBAL_MODULE, YP_TDATA, YP_VDATA = { 0, NULL, mod_id_to_bin, mod_id_to_txt },
YP_FMULTI | CONF_IO_FRLD_MOD, { check_modref } },
ZONE_ITEMS(CONF_IO_FRLD_ZONES)
- // Legacy items.
- { C_TIMER_DB, YP_TSTR, YP_VSTR = { "" }, YP_FNONE, { legacy_item } },
- { C_MAX_TIMER_DB_SIZE, YP_TINT, YP_VINT = { 0, SSIZE_MAX, 0, YP_SSIZE }, YP_FNONE, { legacy_item } },
- { C_JOURNAL_DB, YP_TSTR, YP_VSTR = { "" }, YP_FNONE, { legacy_item } },
- { C_JOURNAL_DB_MODE, YP_TOPT, YP_VOPT = { journal_modes, 0 }, YP_FNONE, { legacy_item } },
- { C_MAX_JOURNAL_DB_SIZE, YP_TINT, YP_VINT = { 0, SSIZE_MAX, 0, YP_SSIZE }, YP_FNONE, { legacy_item } },
- { C_KASP_DB, YP_TSTR, YP_VSTR = { "" }, YP_FNONE, { legacy_item } },
- { C_MAX_KASP_DB_SIZE, YP_TINT, YP_VINT = { 0, SSIZE_MAX, 0, YP_SSIZE }, YP_FNONE, { legacy_item } },
{ NULL }
};
diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h
index 96d29c1..d2966e6 100644
--- a/src/knot/conf/schema.h
+++ b/src/knot/conf/schema.h
@@ -33,6 +33,8 @@
#define C_BACKLOG "\x07""backlog"
#define C_BG_WORKERS "\x12""background-workers"
#define C_BLOCK_NOTIFY_XFR "\x1B""block-notify-after-transfer"
+#define C_BUSYPOLL_BUDGET "\x0F""busypoll-budget"
+#define C_BUSYPOLL_TIMEOUT "\x10""busypoll-timeout"
#define C_CATALOG_DB "\x0A""catalog-db"
#define C_CATALOG_DB_MAX_SIZE "\x13""catalog-db-max-size"
#define C_CATALOG_GROUP "\x0D""catalog-group"
@@ -52,6 +54,7 @@
#define C_DBUS_EVENT "\x0A""dbus-event"
#define C_DBUS_INIT_DELAY "\x0F""dbus-init-delay"
#define C_DDNS_MASTER "\x0B""ddns-master"
+#define C_DEFAULT_TTL "\x0B""default-ttl"
#define C_DENY "\x04""deny"
#define C_DNSKEY_MGMT "\x11""dnskey-management"
#define C_DNSKEY_SYNC "\x0B""dnskey-sync"
@@ -64,7 +67,6 @@
#define C_ECS "\x12""edns-client-subnet"
#define C_EXPIRE_MAX_INTERVAL "\x13""expire-max-interval"
#define C_EXPIRE_MIN_INTERVAL "\x13""expire-min-interval"
-#define C_EXTRA_FRAMES "\x0C""extra-frames"
#define C_FILE "\x04""file"
#define C_GLOBAL_MODULE "\x0D""global-module"
#define C_ID "\x02""id"
@@ -93,6 +95,7 @@
#define C_KSK_SIZE "\x08""ksk-size"
#define C_LISTEN "\x06""listen"
#define C_LISTEN_QUIC "\x0B""listen-quic"
+#define C_LISTEN_TLS "\x0A""listen-tls"
#define C_LOG "\x03""log"
#define C_MANUAL "\x06""manual"
#define C_MASTER "\x06""master"
@@ -116,7 +119,6 @@
#define C_PROXY_ALLOWLIST "\x0F""proxy-allowlist"
#define C_QUIC "\x04""quic"
#define C_QUIC_IDLE_CLOSE "\x17""quic-idle-close-timeout"
-#define C_QUIC_LOG "\x08""quic-log"
#define C_QUIC_MAX_CLIENTS "\x10""quic-max-clients"
#define C_QUIC_OUTBUF_MAX_SIZE "\x14""quic-outbuf-max-size"
#define C_QUIC_PORT "\x09""quic-port"
@@ -126,6 +128,7 @@
#define C_RETRY_MAX_INTERVAL "\x12""retry-max-interval"
#define C_RETRY_MIN_INTERVAL "\x12""retry-min-interval"
#define C_REVERSE_GEN "\x10""reverse-generate"
+#define C_RING_SIZE "\x09""ring-size"
#define C_RMT "\x06""remote"
#define C_RMTS "\x07""remotes"
#define C_RMT_POOL_LIMIT "\x11""remote-pool-limit"
@@ -166,6 +169,7 @@
#define C_TIMER "\x05""timer"
#define C_TIMER_DB "\x08""timer-db"
#define C_TIMER_DB_MAX_SIZE "\x11""timer-db-max-size"
+#define C_TLS "\x03""tls"
#define C_TPL "\x08""template"
#define C_UDP "\x03""udp"
#define C_UDP_MAX_PAYLOAD "\x0F""udp-max-payload"
@@ -191,24 +195,6 @@
#define C_ZSK_LIFETIME "\x0C""zsk-lifetime"
#define C_ZSK_SIZE "\x08""zsk-size"
-// Legacy items.
-#define C_DISABLE_ANY "\x0B""disable-any"
-#define C_LISTEN_XDP "\x0A""listen-xdp"
-#define C_MAX_TIMER_DB_SIZE "\x11""max-timer-db-size"
-#define C_MAX_JOURNAL_DB_SIZE "\x13""max-journal-db-size"
-#define C_MAX_KASP_DB_SIZE "\x10""max-kasp-db-size"
-#define C_TCP_HSHAKE_TIMEOUT "\x15""tcp-handshake-timeout"
-#define C_TCP_REPLY_TIMEOUT "\x11""tcp-reply-timeout"
-#define C_MAX_TCP_CLIENTS "\x0F""max-tcp-clients"
-#define C_MAX_UDP_PAYLOAD "\x0F""max-udp-payload"
-#define C_MAX_IPV4_UDP_PAYLOAD "\x14""max-ipv4-udp-payload"
-#define C_MAX_IPV6_UDP_PAYLOAD "\x14""max-ipv6-udp-payload"
-#define C_MAX_ZONE_SIZE "\x0D""max-zone-size"
-#define C_MAX_REFRESH_INTERVAL "\x14""max-refresh-interval"
-#define C_MIN_REFRESH_INTERVAL "\x14""min-refresh-interval"
-#define C_MAX_JOURNAL_DEPTH "\x11""max-journal-depth"
-#define C_MAX_JOURNAL_USAGE "\x11""max-journal-usage"
-
enum {
KEYSTORE_BACKEND_PEM = 1,
KEYSTORE_BACKEND_PKCS11 = 2,
diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c
index e232fba..1ea8446 100644
--- a/src/knot/conf/tools.c
+++ b/src/knot/conf/tools.c
@@ -43,9 +43,7 @@
#include "knot/updates/acl.h"
#include "knot/zone/serial.h"
#include "libknot/errcode.h"
-#ifdef ENABLE_QUIC
-#include "libknot/quic/quic.h"
-#endif // ENABLE_QUIC
+#include "libknot/quic/tls_common.h"
#include "libknot/yparser/yptrafo.h"
#include "libknot/xdp.h"
#include "contrib/files.h"
@@ -345,15 +343,13 @@ int check_xdp_listen(
int check_cert_pin(
knotd_conf_check_args_t *args)
{
-#ifdef ENABLE_QUIC
- if (args->data_len != sizeof(uint16_t) + KNOT_QUIC_PIN_LEN) {
+ if (args->data_len != sizeof(uint16_t) + KNOT_TLS_PIN_LEN) {
(void)snprintf(check_str, sizeof(check_str),
"invalid certificate pin, expected base64-encoded "
- "%u bytes", KNOT_QUIC_PIN_LEN);
+ "%u bytes", KNOT_TLS_PIN_LEN);
args->err_str = check_str;
return KNOT_EINVAL;
}
-#endif // ENABLE_QUIC
return KNOT_EOK;
}
@@ -551,7 +547,6 @@ static void check_mtu(knotd_conf_check_args_t *args, conf_val_t *xdp_listen)
#endif
}
-#ifdef ENABLE_QUIC
static bool listen_hit(const struct sockaddr_storage *ss1,
const struct sockaddr_storage *ss2)
{
@@ -562,7 +557,33 @@ static bool listen_hit(const struct sockaddr_storage *ss1,
return sockaddr_cmp(ss1, ss2, false) == 0;
}
}
-#endif // ENABLE_QUIC
+
+static bool listen_overlaps(
+ knotd_conf_check_args_t *args,
+ conf_val_t *chk_listen,
+ size_t chk_listen_count)
+{
+ conf_val_t listen_val = conf_get_txn(args->extra->conf, args->extra->txn,
+ C_SRV, C_LISTEN);
+ size_t listen_count = conf_val_count(&listen_val);
+
+ for (size_t i = 0; listen_count > 0 && i < chk_listen_count; i++) {
+ struct sockaddr_storage chk_addr = conf_addr(chk_listen, NULL);
+
+ for (size_t j = 0; j < listen_count; j++) {
+ struct sockaddr_storage listen_addr = conf_addr(&listen_val, NULL);
+ if (listen_hit(&chk_addr, &listen_addr)) {
+ return true;
+ }
+ conf_val_next(&listen_val);
+ }
+
+ conf_val(&listen_val);
+ conf_val_next(chk_listen);
+ }
+
+ return false;
+}
int check_server(
knotd_conf_check_args_t *args)
@@ -576,30 +597,26 @@ int check_server(
return KNOT_EINVAL;
}
+ conf_val_t listls_val = conf_get_txn(args->extra->conf, args->extra->txn,
+ C_SRV, C_LISTEN_TLS);
+ size_t listls_count = conf_val_count(&listls_val);
+ if (listls_count > 0) {
+ if (listen_overlaps(args, &listls_val, listls_count)) {
+ args->err_str = "TLS listen address/port overlaps "
+ "with TCP listen address/port";
+ return KNOT_EINVAL;
+ }
+ }
+
conf_val_t liquic_val = conf_get_txn(args->extra->conf, args->extra->txn,
C_SRV, C_LISTEN_QUIC);
size_t liquic_count = conf_val_count(&liquic_val);
if (liquic_count > 0) {
#ifdef ENABLE_QUIC
- conf_val_t listen_val = conf_get_txn(args->extra->conf, args->extra->txn,
- C_SRV, C_LISTEN);
- size_t listen_count = conf_val_count(&listen_val);
-
- for (size_t i = 0; listen_count > 0 && i < liquic_count; i++) {
- struct sockaddr_storage liquic_addr = conf_addr(&liquic_val, NULL);
-
- for (size_t j = 0; j < listen_count; j++) {
- struct sockaddr_storage listen_addr = conf_addr(&listen_val, NULL);
- if (listen_hit(&liquic_addr, &listen_addr)) {
- args->err_str = "QUIC listen address/port overlaps "
- "with UDP listen address/port";
- return KNOT_EINVAL;
- }
- conf_val_next(&listen_val);
- }
-
- conf_val(&listen_val);
- conf_val_next(&liquic_val);
+ if (listen_overlaps(args, &liquic_val, liquic_count)) {
+ args->err_str = "QUIC listen address/port overlaps "
+ "with UDP listen address/port";
+ return KNOT_EINVAL;
}
#else
args->err_str = "QUIC processing not available";
@@ -713,10 +730,6 @@ int check_policy(
C_NSEC3_ITER, args->id, args->id_len);
unsigned algorithm = conf_opt(&alg);
- if (algorithm < DNSSEC_KEY_ALGORITHM_RSA_SHA256) {
- CONF_LOG(LOG_NOTICE, "algorithm %u is deprecated and shouldn't be used for DNSSEC signing",
- algorithm);
- }
int64_t ksk_size = conf_int(&ksk);
if (ksk_size != YP_NIL && !dnssec_algorithm_key_size_check(algorithm, ksk_size)) {
@@ -779,14 +792,6 @@ int check_policy(
return KNOT_EINVAL;
}
-#ifndef HAVE_GNUTLS_REPRODUCIBLE
- conf_val_t repro_sign = conf_rawid_get_txn(args->extra->conf, args->extra->txn, C_POLICY,
- C_REPRO_SIGNING, args->id, args->id_len);
- if (conf_bool(&repro_sign)) {
- CONF_LOG(LOG_WARNING, "reproducible signing not available, signing normally");
- }
-#endif
-
if (conf_bool(&nsec3)) {
uint16_t iters = conf_int(&nsec3_iters);
if (iters > 0) {
@@ -880,12 +885,18 @@ int check_remote(
return KNOT_EINVAL;
}
+ conf_val_t tls = conf_rawid_get_txn(args->extra->conf, args->extra->txn, C_RMT,
+ C_TLS, args->id, args->id_len);
conf_val_t quic = conf_rawid_get_txn(args->extra->conf, args->extra->txn, C_RMT,
C_QUIC, args->id, args->id_len);
if (quic.code == KNOT_EOK) {
#ifdef ENABLE_QUIC
- (void)0;
+ if (conf_bool(&quic) && conf_bool(&tls)) {
+ args->err_str = "remote can't use both QUIC and TLS";
+ return KNOT_EINVAL;
+ }
#else
+ (void)tls;
args->err_str = "QUIC not available";
return KNOT_EINVAL;
#endif
diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c
index c34709d..56e1d67 100644
--- a/src/knot/ctl/commands.c
+++ b/src/knot/ctl/commands.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,12 +17,14 @@
#include <string.h>
#include <unistd.h>
#include <sys/time.h>
+#include <time.h>
#include <urcu.h>
#include "knot/common/log.h"
#include "knot/common/stats.h"
#include "knot/conf/confio.h"
#include "knot/ctl/commands.h"
+#include "knot/ctl/process.h"
#include "knot/dnssec/key-events.h"
#include "knot/events/events.h"
#include "knot/events/handlers.h"
@@ -36,6 +38,7 @@
#include "knot/zone/zonefile.h"
#include "libknot/libknot.h"
#include "libknot/yparser/yptrafo.h"
+#include "contrib/atomic.h"
#include "contrib/files.h"
#include "contrib/string.h"
#include "contrib/strtonum.h"
@@ -68,7 +71,7 @@ static struct {
sizeof(((send_ctx_t *)0)->ttl) +
sizeof(((send_ctx_t *)0)->type) +
sizeof(((send_ctx_t *)0)->rdata)];
-} ctl_globals;
+} ctl_globals[CTL_MAX_CONCURRENT + 1];
static bool allow_blocking_while_ctl_txn(zone_event_type_t event)
{
@@ -645,47 +648,49 @@ static int zone_backup_cmd(zone_t *zone, ctl_args_t *args)
return KNOT_EOK;
}
+ int ret = KNOT_EOK;
+ pthread_mutex_lock(&zone->cu_lock);
if (zone->backup_ctx != NULL) {
log_zone_warning(zone->name, "backup or restore already in progress, skipping zone");
ctx->failed = true;
- return KNOT_EPROGRESS;
+ ret = KNOT_EPROGRESS;
}
- if (ctx->restore_mode && zone->control_update != NULL) {
+ if (ctx->restore_mode && zone->control_update != NULL && ret == KNOT_EOK) {
log_zone_warning(zone->name, "restoring backup not possible due to open control transaction");
ctx->failed = true;
- return KNOT_TXN_EEXISTS;
+ ret = KNOT_TXN_EEXISTS;
+ }
+
+ if (ret == KNOT_EOK) {
+ zone->backup_ctx = ctx;
}
+ pthread_mutex_unlock(&zone->cu_lock);
ctx->zone_count++;
- int ret;
- if (!ctx->backup_global) {
+ if (!ctx->backup_global && ret == KNOT_EOK) {
ret = global_backup(ctx, zone_catalog(zone), zone->name);
- if (ret != KNOT_EOK) {
- return ret;
- }
}
- if (ctx->backup_params & BACKUP_PARAM_KEYSONLY) {
+ bool finish = false;
+ if ((ctx->backup_params & BACKUP_PARAM_KEYSONLY) && ret == KNOT_EOK) {
ret = zone_backup_keysonly(ctx, conf(), zone);
- if (ret != KNOT_EOK) {
- return ret;
- }
- if (ctx->restore_mode) {
+ if (ctx->restore_mode && ret == KNOT_EOK) {
ret = zone_keys_load(zone, args);
- if (ret != KNOT_EOK) {
- return ret;
- }
}
if (!(ctx->backup_params & BACKUP_PARAM_EVENT)) {
- return ret;
+ finish = true;
}
}
- zone->backup_ctx = ctx;
+ if (ret != KNOT_EOK || finish) {
+ zone->backup_ctx = NULL;
+ return ret;
+ }
+
pthread_mutex_lock(&ctx->readers_mutex);
ctx->readers++;
pthread_mutex_unlock(&ctx->readers_mutex);
@@ -720,7 +725,7 @@ static int zones_apply_backup(ctl_args_t *args, bool restore_mode)
zone_backup_ctx_t *ctx = latest_backup_ctx(args);
/* QUIC - server key and cert backup. */
- ret = backup_quic(ctx, args->server->quic_active);
+ ret = backup_quic(ctx, args->server->quic_active || args->server->tls_active);
if (ret != KNOT_EOK) {
log_ctl_error("control, QUIC %s error (%s)",
restore_mode ? "restore" : "backup",
@@ -761,6 +766,11 @@ static int zone_sign(zone_t *zone, _unused_ ctl_args_t *args)
return schedule_trigger(zone, args, ZONE_EVENT_DNSSEC, true);
}
+static int zone_validate(zone_t *zone, _unused_ ctl_args_t *args)
+{
+ return schedule_trigger(zone, args, ZONE_EVENT_VALIDATE, true);
+}
+
static int zone_keys_load(zone_t *zone, _unused_ ctl_args_t *args)
{
conf_val_t val = conf_zone_get(conf(), C_DNSSEC_SIGNING, zone->name);
@@ -811,8 +821,8 @@ static int zone_ksk_sbm_confirm(zone_t *zone, _unused_ ctl_args_t *args)
conf_val_t val = conf_zone_get(conf(), C_DNSSEC_SIGNING, zone->name);
if (ret == KNOT_EOK && conf_bool(&val)) {
- // NOT zone_events_schedule_user(), intentionally!
- ret = schedule_trigger(zone, args, ZONE_EVENT_DNSSEC, false);
+ // NOT zone_events_schedule_user() or schedule_trigger(), intentionally!
+ zone_events_schedule_now(zone, ZONE_EVENT_DNSSEC);
}
return ret;
@@ -846,17 +856,23 @@ static int zone_xfr_thaw(zone_t *zone, _unused_ ctl_args_t *args)
return KNOT_EOK;
}
-static int zone_txn_begin(zone_t *zone, _unused_ ctl_args_t *args)
+static int zone_txn_begin_l(zone_t *zone, _unused_ ctl_args_t *args)
{
- if (zone->control_update != NULL) {
+ if (zone->control_update != NULL || conf()->io.txn != NULL) {
return KNOT_TXN_EEXISTS;
}
- if (zone->backup_ctx != NULL && zone->backup_ctx->restore_mode) {
+ struct zone_backup_ctx *backup_ctx = zone->backup_ctx;
+ if (backup_ctx != NULL && backup_ctx->restore_mode) {
log_zone_warning(zone->name, "zone restore pending, try opening control transaction later");
return KNOT_EAGAIN;
}
+ if (zone->events.running && zone->events.type >= 0 && zone->events.blocking[zone->events.type] != NULL) {
+ log_zone_warning(zone->name, "some blocking event running, try opening control transaction later");
+ return KNOT_EAGAIN;
+ }
+
zone->control_update = malloc(sizeof(zone_update_t));
if (zone->control_update == NULL) {
return KNOT_ENOMEM;
@@ -872,7 +888,15 @@ static int zone_txn_begin(zone_t *zone, _unused_ ctl_args_t *args)
return ret;
}
-static int zone_txn_commit(zone_t *zone, _unused_ ctl_args_t *args)
+static int zone_txn_begin(zone_t *zone, ctl_args_t *args)
+{
+ pthread_mutex_lock(&zone->cu_lock);
+ int ret = zone_txn_begin_l(zone, args);
+ pthread_mutex_unlock(&zone->cu_lock);
+ return ret;
+}
+
+static int zone_txn_commit_l(zone_t *zone, _unused_ ctl_args_t *args)
{
if (zone->control_update == NULL) {
args->suppress = true;
@@ -934,15 +958,26 @@ static int zone_txn_commit(zone_t *zone, _unused_ ctl_args_t *args)
return KNOT_EOK;
}
+static int zone_txn_commit(zone_t *zone, ctl_args_t *args)
+{
+ pthread_mutex_lock(&zone->cu_lock);
+ int ret = zone_txn_commit_l(zone, args);
+ pthread_mutex_unlock(&zone->cu_lock);
+ return ret;
+}
+
static int zone_txn_abort(zone_t *zone, _unused_ ctl_args_t *args)
{
+ pthread_mutex_lock(&zone->cu_lock);
if (zone->control_update == NULL) {
args->suppress = true;
+ pthread_mutex_unlock(&zone->cu_lock);
return KNOT_TXN_ENOTEXISTS;
}
zone_control_clear(zone);
+ pthread_mutex_unlock(&zone->cu_lock);
return KNOT_EOK;
}
@@ -1089,7 +1124,7 @@ static int get_owner(uint8_t *out, size_t out_len, knot_dname_t *origin,
static int zone_read(zone_t *zone, ctl_args_t *args)
{
- send_ctx_t *ctx = &ctl_globals.send_ctx;
+ send_ctx_t *ctx = &ctl_globals[args->thread_idx].send_ctx;
int ret = init_send_ctx(ctx, zone->name, args);
if (ret != KNOT_EOK) {
return ret;
@@ -1131,7 +1166,7 @@ static int zone_flag_txn_get(zone_t *zone, ctl_args_t *args, const char *flag)
return KNOT_TXN_ENOTEXISTS;
}
- send_ctx_t *ctx = &ctl_globals.send_ctx;
+ send_ctx_t *ctx = &ctl_globals[args->thread_idx].send_ctx;
int ret = init_send_ctx(ctx, zone->name, args);
if (ret != KNOT_EOK) {
return ret;
@@ -1170,7 +1205,10 @@ static int zone_flag_txn_get(zone_t *zone, ctl_args_t *args, const char *flag)
static int zone_txn_get(zone_t *zone, ctl_args_t *args)
{
- return zone_flag_txn_get(zone, args, NULL);
+ pthread_mutex_lock(&zone->cu_lock);
+ int ret = zone_flag_txn_get(zone, args, NULL);
+ pthread_mutex_unlock(&zone->cu_lock);
+ return ret;
}
static int send_changeset_part(changeset_t *ch, send_ctx_t *ctx, bool from)
@@ -1233,7 +1271,7 @@ static int send_changeset(changeset_t *ch, send_ctx_t *ctx)
return send_changeset_part(ch, ctx, false);
}
-static int zone_txn_diff(zone_t *zone, ctl_args_t *args)
+static int zone_txn_diff_l(zone_t *zone, ctl_args_t *args)
{
if (zone->control_update == NULL) {
args->suppress = true;
@@ -1245,7 +1283,7 @@ static int zone_txn_diff(zone_t *zone, ctl_args_t *args)
return zone_flag_txn_get(zone, args, CTL_FLAG_DIFF_ADD);
}
- send_ctx_t *ctx = &ctl_globals.send_ctx;
+ send_ctx_t *ctx = &ctl_globals[args->thread_idx].send_ctx;
int ret = init_send_ctx(ctx, zone->name, args);
if (ret != KNOT_EOK) {
return ret;
@@ -1254,6 +1292,14 @@ static int zone_txn_diff(zone_t *zone, ctl_args_t *args)
return send_changeset(&zone->control_update->change, ctx);
}
+static int zone_txn_diff(zone_t *zone, ctl_args_t *args)
+{
+ pthread_mutex_lock(&zone->cu_lock);
+ int ret = zone_txn_diff_l(zone, args);
+ pthread_mutex_unlock(&zone->cu_lock);
+ return ret;
+}
+
static int get_ttl(zone_t *zone, ctl_args_t *args, uint32_t *ttl)
{
knot_dname_storage_t owner;
@@ -1297,14 +1343,15 @@ static int create_rrset(knot_rrset_t **rrset, zone_t *zone, ctl_args_t *args,
const char *ttl = need_ttl ? args->data[KNOT_CTL_IDX_TTL] : NULL;
// Prepare a buffer for a reconstructed record.
- const size_t buff_len = sizeof(ctl_globals.txt_rr);
- char *buff = ctl_globals.txt_rr;
+ const size_t buff_len = sizeof(ctl_globals[args->thread_idx].txt_rr);
+ char *buff = ctl_globals[args->thread_idx].txt_rr;
+ // Choose default TTL if none was specified.
uint32_t default_ttl = 0;
- if (ttl == NULL) {
- int ret = get_ttl(zone, args, &default_ttl);
- if (need_ttl && ret != KNOT_EOK) {
- return ret;
+ if (ttl == NULL && need_ttl) {
+ if (get_ttl(zone, args, &default_ttl) != KNOT_EOK) {
+ conf_val_t val = conf_zone_get(conf(), C_DEFAULT_TTL, zone->name);
+ default_ttl = conf_int(&val);
}
}
@@ -1320,7 +1367,7 @@ static int create_rrset(knot_rrset_t **rrset, zone_t *zone, ctl_args_t *args,
size_t rdata_len = ret;
// Parse the record.
- zs_scanner_t *scanner = &ctl_globals.scanner;
+ zs_scanner_t *scanner = &ctl_globals[args->thread_idx].scanner;
if (zs_init(scanner, origin, KNOT_CLASS_IN, default_ttl) != 0 ||
zs_set_input_string(scanner, buff, rdata_len) != 0 ||
zs_parse_record(scanner) != 0 ||
@@ -1346,7 +1393,7 @@ parser_failed:
return ret;
}
-static int zone_txn_set(zone_t *zone, ctl_args_t *args)
+static int zone_txn_set_l(zone_t *zone, ctl_args_t *args)
{
if (zone->control_update == NULL) {
args->suppress = true;
@@ -1370,7 +1417,15 @@ static int zone_txn_set(zone_t *zone, ctl_args_t *args)
return ret;
}
-static int zone_txn_unset(zone_t *zone, ctl_args_t *args)
+static int zone_txn_set(zone_t *zone, ctl_args_t *args)
+{
+ pthread_mutex_lock(&zone->cu_lock);
+ int ret = zone_txn_set_l(zone, args);
+ pthread_mutex_unlock(&zone->cu_lock);
+ return ret;
+}
+
+static int zone_txn_unset_l(zone_t *zone, ctl_args_t *args)
{
if (zone->control_update == NULL) {
args->suppress = true;
@@ -1420,6 +1475,14 @@ static int zone_txn_unset(zone_t *zone, ctl_args_t *args)
}
}
+static int zone_txn_unset(zone_t *zone, ctl_args_t *args)
+{
+ pthread_mutex_lock(&zone->cu_lock);
+ int ret = zone_txn_unset_l(zone, args);
+ pthread_mutex_unlock(&zone->cu_lock);
+ return ret;
+}
+
static bool zone_exists(const knot_dname_t *zone, void *data)
{
assert(zone);
@@ -1486,7 +1549,7 @@ static int purge_orphan_member_cb(const knot_dname_t *member, const knot_dname_t
orphan->name = (knot_dname_t *)member;
orphan->server = server;
- purge_flag_t params =
+ const purge_flag_t params =
PURGE_ZONE_TIMERS | PURGE_ZONE_JOURNAL | PURGE_ZONE_KASPDB |
PURGE_ZONE_BEST | PURGE_ZONE_LOG;
@@ -1529,7 +1592,7 @@ static int catalog_orphans_sweep(server_t *server)
knot_strerror(ret));
}
} else {
- log_error("can't open catalog for purging (%s)",
+ log_error("can not open catalog for purging (%s)",
knot_strerror(ret));
}
@@ -1682,7 +1745,7 @@ static int zone_purge(zone_t *zone, ctl_args_t *args)
(void)zone_events_schedule_blocking(zone, ZONE_EVENT_EXPIRE, true);
}
- purge_flag_t params =
+ const purge_flag_t params =
MATCH_OR_FILTER(args, CTL_FILTER_PURGE_TIMERS) * PURGE_ZONE_TIMERS |
MATCH_OR_FILTER(args, CTL_FILTER_PURGE_ZONEFILE) * PURGE_ZONE_ZONEFILE |
MATCH_OR_FILTER(args, CTL_FILTER_PURGE_JOURNAL) * PURGE_ZONE_JOURNAL |
@@ -1694,213 +1757,82 @@ static int zone_purge(zone_t *zone, ctl_args_t *args)
return selective_zone_purge(conf(), zone, params);
}
-static int send_stats_ctr(mod_ctr_t *ctr, uint64_t **stats_vals, unsigned threads,
- ctl_args_t *args, knot_ctl_data_t *data)
+int ctl_dump_ctr(stats_dump_params_t *params, stats_dump_ctx_t *ctx)
{
- char index[128];
- char value[32];
+ ctl_args_t *args = ctx->ctx;
- if (ctr->count == 1) {
- uint64_t counter = stats_get_counter(stats_vals, ctr->offset, threads);
- int ret = snprintf(value, sizeof(value), "%"PRIu64, counter);
- if (ret <= 0 || ret >= sizeof(value)) {
- return KNOT_ESPACE;
- }
-
- (*data)[KNOT_CTL_IDX_ID] = NULL;
- (*data)[KNOT_CTL_IDX_DATA] = value;
-
- ret = knot_ctl_send(args->ctl, KNOT_CTL_TYPE_DATA, data);
- if (ret != KNOT_EOK) {
- return ret;
- }
- } else {
- bool force = ctl_has_flag(args->data[KNOT_CTL_IDX_FLAGS],
- CTL_FLAG_FORCE);
-
- for (uint32_t i = 0; i < ctr->count; i++) {
- uint64_t counter = stats_get_counter(stats_vals, ctr->offset + i, threads);
-
- // Skip empty counters.
- if (counter == 0 && !force) {
- continue;
- }
-
- int ret;
- if (ctr->idx_to_str) {
- char *str = ctr->idx_to_str(i, ctr->count);
- if (str == NULL) {
- continue;
- }
- ret = snprintf(index, sizeof(index), "%s", str);
- free(str);
- } else {
- ret = snprintf(index, sizeof(index), "%u", i);
- }
- if (ret <= 0 || ret >= sizeof(index)) {
- return KNOT_ESPACE;
- }
-
- ret = snprintf(value, sizeof(value), "%"PRIu64, counter);
- if (ret <= 0 || ret >= sizeof(value)) {
- return KNOT_ESPACE;
- }
-
- (*data)[KNOT_CTL_IDX_ID] = index;
- (*data)[KNOT_CTL_IDX_DATA] = value;
-
- knot_ctl_type_t type = (i == 0) ? KNOT_CTL_TYPE_DATA :
- KNOT_CTL_TYPE_EXTRA;
- ret = knot_ctl_send(args->ctl, type, data);
- if (ret != KNOT_EOK) {
- return ret;
- }
- }
+ if (ctx->item != NULL && strcasecmp(ctx->item, params->item) != 0) {
+ return KNOT_EOK;
}
+ ctx->match = true;
- return KNOT_EOK;
-}
-
-static int modules_stats(list_t *query_modules, ctl_args_t *args, knot_ctl_data_t *data)
-{
- if (query_modules == NULL) {
+ if (params->value == 0 &&
+ !ctl_has_flag(args->data[KNOT_CTL_IDX_FLAGS], CTL_FLAG_FORCE)) {
return KNOT_EOK;
}
- const char *section = args->data[KNOT_CTL_IDX_SECTION];
- const char *item = args->data[KNOT_CTL_IDX_ITEM];
-
- bool section_found = (section == NULL) ? true : false;
- bool item_found = (item == NULL) ? true : false;
-
- knotd_mod_t *mod;
- WALK_LIST(mod, *query_modules) {
- // Skip modules without statistics.
- if (mod->stats_count == 0) {
- continue;
- }
-
- // Check for specific module.
- if (section != NULL) {
- if (section_found) {
- break;
- } else if (strcasecmp(mod->id->name + 1, section) == 0) {
- section_found = true;
- } else {
- continue;
- }
- }
-
- (*data)[KNOT_CTL_IDX_SECTION] = mod->id->name + 1;
-
- unsigned threads = knotd_mod_threads(mod);
-
- for (int i = 0; i < mod->stats_count; i++) {
- mod_ctr_t *ctr = mod->stats_info + i;
-
- // Skip empty counter.
- if (ctr->name == NULL) {
- continue;
- }
-
- // Check for specific counter.
- if (item != NULL) {
- if (item_found) {
- break;
- } else if (strcasecmp(ctr->name, item) == 0) {
- item_found = true;
- } else {
- continue;
- }
- }
+ char value[32];
+ int ret = snprintf(value, sizeof(value), "%"PRIu64, params->value);
+ if (ret <= 0 || ret >= sizeof(value)) {
+ return KNOT_ESPACE;
+ }
- (*data)[KNOT_CTL_IDX_ITEM] = ctr->name;
+ knot_ctl_data_t data = {
+ [KNOT_CTL_IDX_SECTION] = params->section,
+ [KNOT_CTL_IDX_ITEM] = params->item,
+ [KNOT_CTL_IDX_ID] = params->id,
+ [KNOT_CTL_IDX_ZONE] = params->zone,
+ [KNOT_CTL_IDX_DATA] = value,
+ };
- // Send the counters.
- int ret = send_stats_ctr(ctr, mod->stats_vals, threads, args, data);
- if (ret != KNOT_EOK) {
- return ret;
- }
- }
- }
+ knot_ctl_type_t type = (params->value_pos == 0) ?
+ KNOT_CTL_TYPE_DATA : KNOT_CTL_TYPE_EXTRA;
- return (section_found && item_found) ? KNOT_EOK : KNOT_ENOENT;
+ return knot_ctl_send(args->ctl, type, &data);
}
static int common_stats(ctl_args_t *args, zone_t *zone)
{
- const char *section = args->data[KNOT_CTL_IDX_SECTION];
- const char *item = args->data[KNOT_CTL_IDX_ITEM];
-
- char value[32];
- knot_ctl_data_t data = {
- [KNOT_CTL_IDX_DATA] = value
+ stats_dump_ctx_t dump_ctx = {
+ .server = args->server,
+ .zone = zone,
+ .section = args->data[KNOT_CTL_IDX_SECTION],
+ .item = args->data[KNOT_CTL_IDX_ITEM],
+ .ctx = args,
};
- knot_dname_txt_storage_t name = "";
- if (zone != NULL) {
- if (knot_dname_to_str(name, zone->name, sizeof(name)) == NULL) {
- return KNOT_EINVAL;
- }
- data[KNOT_CTL_IDX_ZONE] = name;
- }
+#define STATS_CHECK(ret, send) { \
+ if (ret != KNOT_EOK) { \
+ if ((send)) { /* Prevents duplicit zone error logs. */ \
+ send_error(args, knot_strerror(ret)); \
+ } \
+ return ret; \
+ } \
+}
- bool found = (section == NULL) ? true : false;
+ if (zone == NULL) {
+ int ret = stats_server(ctl_dump_ctr, &dump_ctx);
+ STATS_CHECK(ret, true);
- // Process zone metrics.
- const char *section_name = (zone != NULL) ? "zone" : "server";
- if (section == NULL || strcasecmp(section, section_name) == 0) {
- data[KNOT_CTL_IDX_SECTION] = section_name;
+ ret = stats_xdp(ctl_dump_ctr, &dump_ctx);
+ STATS_CHECK(ret, true);
- const stats_item_t *items = (zone != NULL) ? zone_contents_stats :
- server_stats;
- for (const stats_item_t *i = items; i->name != NULL; i++) {
- if (item != NULL) {
- if (found) {
- break;
- } else if (strcmp(i->name, item) == 0) {
- found = true;
- } else {
- continue;
- }
- } else {
- found = true;
- }
-
- data[KNOT_CTL_IDX_ITEM] = i->name;
- int ret = snprintf(value, sizeof(value), "%"PRIu64,
- (zone != NULL) ? i->zone_val(zone) :
- i->server_val(args->server));
- if (ret <= 0 || ret >= sizeof(value)) {
- ret = KNOT_ESPACE;
- send_error(args, knot_strerror(ret));
- return ret;
- }
-
- ret = knot_ctl_send(args->ctl, KNOT_CTL_TYPE_DATA, &data);
- if (ret != KNOT_EOK) {
- send_error(args, knot_strerror(ret));
- return ret;
- }
- }
- }
-
- if (section == NULL || strncasecmp(section, "mod-", strlen("mod-")) == 0) {
- list_t *query_modules = (zone != NULL) ? &zone->query_modules :
- conf()->query_modules;
- int ret = modules_stats(query_modules, args, &data);
- if (ret != KNOT_EOK) {
- send_error(args, knot_strerror(ret));
- return ret;
- }
+ dump_ctx.query_modules = conf()->query_modules;
+ ret = stats_modules(ctl_dump_ctr, &dump_ctx);
+ STATS_CHECK(ret, true);
+ } else {
+ int ret = stats_zone(ctl_dump_ctr, &dump_ctx);
+ STATS_CHECK(ret, false);
- found = true;
+ dump_ctx.query_modules = &zone->query_modules;
+ ret = stats_modules(ctl_dump_ctr, &dump_ctx);
+ STATS_CHECK(ret, false);
}
- if (!found) {
- send_error(args, knot_strerror(KNOT_EINVAL));
- return KNOT_EINVAL;
+ if (!dump_ctx.match) {
+ STATS_CHECK(KNOT_EINVAL, zone == NULL);
}
+#undef STATS_CHECK
return KNOT_EOK;
}
@@ -1931,6 +1863,8 @@ static int ctl_zone(ctl_args_t *args, ctl_cmd_t cmd)
return zones_apply_backup(args, true);
case CTL_ZONE_SIGN:
return zones_apply(args, zone_sign);
+ case CTL_ZONE_VALIDATE:
+ return zones_apply(args, zone_validate);
case CTL_ZONE_KEYS_LOAD:
return zones_apply(args, zone_keys_load);
case CTL_ZONE_KEY_ROLL:
@@ -1975,6 +1909,27 @@ static int ctl_zone(ctl_args_t *args, ctl_cmd_t cmd)
}
}
+static void check_zone_txn(zone_t *zone, const knot_dname_t **exists)
+{
+ if (zone->control_update != NULL) {
+ *exists = zone->name;
+ }
+}
+
+static int check_no_zone_txn(server_t *server, const char *action)
+{
+ const knot_dname_t *zone_txn_exists = NULL;
+ knot_zonedb_foreach(server->zone_db, check_zone_txn, &zone_txn_exists);
+ if (zone_txn_exists != NULL) {
+ knot_dname_txt_storage_t zone_str;
+ knot_dname_to_str(zone_str, zone_txn_exists, sizeof(zone_str));
+ log_warning("%s rejected due to existing transaction for zone %s",
+ action, zone_str);
+ return KNOT_TXN_EEXISTS;
+ }
+ return KNOT_EOK;
+}
+
static int server_status(ctl_args_t *args)
{
const char *type = args->data[KNOT_CTL_IDX_TYPE];
@@ -1997,7 +1952,7 @@ static int server_status(ctl_args_t *args)
conf()->cache.srv_xdp_threads, conf()->cache.srv_bg_threads,
running_bkg_wrk, wrk_queue);
} else if (strcasecmp(type, "configure") == 0) {
- ret = snprintf(buff, sizeof(buff), "%s", CONFIGURE_SUMMARY);
+ ret = snprintf(buff, sizeof(buff), "%s", configure_summary);
} else if (strcasecmp(type, "cert-key") == 0) {
uint8_t pin[128];
size_t pin_len = server_cert_pin(args->server, pin, sizeof(pin));
@@ -2033,7 +1988,10 @@ static int ctl_server(ctl_args_t *args, ctl_cmd_t cmd)
ret = KNOT_CTL_ESTOP;
break;
case CTL_RELOAD:
- ret = server_reload(args->server, RELOAD_FULL);
+ ret = check_no_zone_txn(args->server, "server reload");
+ if (ret == KNOT_EOK) {
+ ret = server_reload(args->server, RELOAD_FULL);
+ }
if (ret != KNOT_EOK) {
send_error(args, knot_strerror(ret));
}
@@ -2170,7 +2128,10 @@ static int ctl_conf_txn(ctl_args_t *args, ctl_cmd_t cmd)
switch (cmd) {
case CTL_CONF_BEGIN:
- ret = conf_io_begin(false);
+ ret = check_no_zone_txn(args->server, "config, transaction");
+ if (ret == KNOT_EOK) {
+ ret = conf_io_begin(false);
+ }
break;
case CTL_CONF_ABORT:
conf_io_abort(false);
@@ -2367,56 +2328,64 @@ static int ctl_conf_modify(ctl_args_t *args, ctl_cmd_t cmd)
return ret;
}
+typedef enum {
+ CTL_LOCK_NONE = 0x00,
+ CTL_LOCK_SRV_R = 0x01, // Can run in parallel with other R commands.
+ CTL_LOCK_SRV_W = 0x02, // Cannot run in parallel with other commands.
+} ctl_lock_flag_t;
+
typedef struct {
const char *name;
int (*fcn)(ctl_args_t *, ctl_cmd_t);
+ ctl_lock_flag_t locks;
} desc_t;
static const desc_t cmd_table[] = {
[CTL_NONE] = { "" },
- [CTL_STATUS] = { "status", ctl_server },
- [CTL_STOP] = { "stop", ctl_server },
- [CTL_RELOAD] = { "reload", ctl_server },
- [CTL_STATS] = { "stats", ctl_stats },
-
- [CTL_ZONE_STATUS] = { "zone-status", ctl_zone },
- [CTL_ZONE_RELOAD] = { "zone-reload", ctl_zone },
- [CTL_ZONE_REFRESH] = { "zone-refresh", ctl_zone },
- [CTL_ZONE_RETRANSFER] = { "zone-retransfer", ctl_zone },
- [CTL_ZONE_NOTIFY] = { "zone-notify", ctl_zone },
- [CTL_ZONE_FLUSH] = { "zone-flush", ctl_zone },
- [CTL_ZONE_BACKUP] = { "zone-backup", ctl_zone },
- [CTL_ZONE_RESTORE] = { "zone-restore", ctl_zone },
- [CTL_ZONE_SIGN] = { "zone-sign", ctl_zone },
- [CTL_ZONE_KEYS_LOAD] = { "zone-keys-load", ctl_zone },
- [CTL_ZONE_KEY_ROLL] = { "zone-key-rollover", ctl_zone },
- [CTL_ZONE_KSK_SBM] = { "zone-ksk-submitted", ctl_zone },
- [CTL_ZONE_FREEZE] = { "zone-freeze", ctl_zone },
- [CTL_ZONE_THAW] = { "zone-thaw", ctl_zone },
- [CTL_ZONE_XFR_FREEZE] = { "zone-xfr-freeze", ctl_zone },
- [CTL_ZONE_XFR_THAW] = { "zone-xfr-thaw", ctl_zone },
-
- [CTL_ZONE_READ] = { "zone-read", ctl_zone },
- [CTL_ZONE_BEGIN] = { "zone-begin", ctl_zone },
- [CTL_ZONE_COMMIT] = { "zone-commit", ctl_zone },
- [CTL_ZONE_ABORT] = { "zone-abort", ctl_zone },
- [CTL_ZONE_DIFF] = { "zone-diff", ctl_zone },
- [CTL_ZONE_GET] = { "zone-get", ctl_zone },
- [CTL_ZONE_SET] = { "zone-set", ctl_zone },
- [CTL_ZONE_UNSET] = { "zone-unset", ctl_zone },
- [CTL_ZONE_PURGE] = { "zone-purge", ctl_zone },
- [CTL_ZONE_STATS] = { "zone-stats", ctl_zone },
-
- [CTL_CONF_LIST] = { "conf-list", ctl_conf_list },
- [CTL_CONF_READ] = { "conf-read", ctl_conf_read },
- [CTL_CONF_BEGIN] = { "conf-begin", ctl_conf_txn },
- [CTL_CONF_COMMIT] = { "conf-commit", ctl_conf_txn },
- [CTL_CONF_ABORT] = { "conf-abort", ctl_conf_txn },
- [CTL_CONF_DIFF] = { "conf-diff", ctl_conf_read },
- [CTL_CONF_GET] = { "conf-get", ctl_conf_read },
- [CTL_CONF_SET] = { "conf-set", ctl_conf_modify },
- [CTL_CONF_UNSET] = { "conf-unset", ctl_conf_modify },
+ [CTL_STATUS] = { "status", ctl_server, CTL_LOCK_SRV_R },
+ [CTL_STOP] = { "stop", ctl_server, CTL_LOCK_SRV_R },
+ [CTL_RELOAD] = { "reload", ctl_server, CTL_LOCK_SRV_W },
+ [CTL_STATS] = { "stats", ctl_stats, CTL_LOCK_SRV_R },
+
+ [CTL_ZONE_STATUS] = { "zone-status", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_RELOAD] = { "zone-reload", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_REFRESH] = { "zone-refresh", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_RETRANSFER] = { "zone-retransfer", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_NOTIFY] = { "zone-notify", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_FLUSH] = { "zone-flush", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_BACKUP] = { "zone-backup", ctl_zone, CTL_LOCK_SRV_W }, // Backup and restore must be exclusive as the global backup ctx is accessed.
+ [CTL_ZONE_RESTORE] = { "zone-restore", ctl_zone, CTL_LOCK_SRV_W },
+ [CTL_ZONE_SIGN] = { "zone-sign", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_VALIDATE] = { "zone-validate", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_KEYS_LOAD] = { "zone-keys-load", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_KEY_ROLL] = { "zone-key-rollover", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_KSK_SBM] = { "zone-ksk-submitted", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_FREEZE] = { "zone-freeze", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_THAW] = { "zone-thaw", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_XFR_FREEZE] = { "zone-xfr-freeze", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_XFR_THAW] = { "zone-xfr-thaw", ctl_zone, CTL_LOCK_SRV_R },
+
+ [CTL_ZONE_READ] = { "zone-read", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_BEGIN] = { "zone-begin", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_COMMIT] = { "zone-commit", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_ABORT] = { "zone-abort", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_DIFF] = { "zone-diff", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_GET] = { "zone-get", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_SET] = { "zone-set", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_UNSET] = { "zone-unset", ctl_zone, CTL_LOCK_SRV_R },
+ [CTL_ZONE_PURGE] = { "zone-purge", ctl_zone, CTL_LOCK_SRV_W },
+ [CTL_ZONE_STATS] = { "zone-stats", ctl_zone, CTL_LOCK_SRV_R },
+
+ [CTL_CONF_LIST] = { "conf-list", ctl_conf_list, CTL_LOCK_SRV_R }, // Can either read live conf or conf txn. The latter would deserve CTL_LOCK_SRV_W, but when conf txn exists, all cmds are done by single thread anyway.
+ [CTL_CONF_READ] = { "conf-read", ctl_conf_read, CTL_LOCK_SRV_R },
+ [CTL_CONF_BEGIN] = { "conf-begin", ctl_conf_txn, CTL_LOCK_SRV_W }, // It's locked only during conf-begin, not for the whole duration of the transaction.
+ [CTL_CONF_COMMIT] = { "conf-commit", ctl_conf_txn, CTL_LOCK_SRV_W },
+ [CTL_CONF_ABORT] = { "conf-abort", ctl_conf_txn, CTL_LOCK_SRV_W },
+ [CTL_CONF_DIFF] = { "conf-diff", ctl_conf_read, CTL_LOCK_SRV_W },
+ [CTL_CONF_GET] = { "conf-get", ctl_conf_read, CTL_LOCK_SRV_W },
+ [CTL_CONF_SET] = { "conf-set", ctl_conf_modify, CTL_LOCK_SRV_W },
+ [CTL_CONF_UNSET] = { "conf-unset", ctl_conf_modify, CTL_LOCK_SRV_W },
};
#define MAX_CTL_CODE (sizeof(cmd_table) / sizeof(desc_t) - 1)
@@ -2445,13 +2414,52 @@ ctl_cmd_t ctl_str_to_cmd(const char *cmd_str)
return CTL_NONE;
}
+static int ctl_lock(server_t *server, ctl_lock_flag_t flags, uint64_t timeout_ms)
+{
+ struct timespec ts;
+ int ret = clock_gettime(CLOCK_REALTIME, &ts);
+ if (ret != 0) {
+ return KNOT_ERROR;
+ }
+ ts.tv_sec += timeout_ms / 1000;
+ ts.tv_nsec += (timeout_ms % 1000) * 1000000LU;
+
+ if ((flags & CTL_LOCK_SRV_W)) {
+ assert(!(flags & CTL_LOCK_SRV_R));
+#if !defined(__APPLE__)
+ ret = pthread_rwlock_timedwrlock(&server->ctl_lock, &ts);
+#else
+ ret = pthread_rwlock_wrlock(&server->ctl_lock);
+#endif
+ }
+ if ((flags & CTL_LOCK_SRV_R)) {
+#if !defined(__APPLE__)
+ ret = pthread_rwlock_timedrdlock(&server->ctl_lock, &ts);
+#else
+ ret = pthread_rwlock_rdlock(&server->ctl_lock);
+#endif
+ }
+ return (ret != 0 ? KNOT_EBUSY : KNOT_EOK);
+}
+
+static void ctl_unlock(server_t *server)
+{
+ pthread_rwlock_unlock(&server->ctl_lock);
+}
+
int ctl_exec(ctl_cmd_t cmd, ctl_args_t *args)
{
if (args == NULL) {
return KNOT_EINVAL;
}
- return cmd_table[cmd].fcn(args, cmd);
+ int ret = ctl_lock(args->server, cmd_table[cmd].locks, conf()->cache.ctl_timeout);
+ if (ret == KNOT_EOK) {
+ ret = cmd_table[cmd].fcn(args, cmd);
+ ctl_unlock(args->server);
+ }
+
+ return ret;
}
bool ctl_has_flag(const char *flags, const char *flag)
diff --git a/src/knot/ctl/commands.h b/src/knot/ctl/commands.h
index ed7e75c..b0f33d8 100644
--- a/src/knot/ctl/commands.h
+++ b/src/knot/ctl/commands.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -87,6 +87,7 @@ typedef enum {
CTL_ZONE_BACKUP,
CTL_ZONE_RESTORE,
CTL_ZONE_SIGN,
+ CTL_ZONE_VALIDATE,
CTL_ZONE_KEYS_LOAD,
CTL_ZONE_KEY_ROLL,
CTL_ZONE_KSK_SBM,
@@ -124,6 +125,7 @@ typedef struct {
knot_ctl_data_t data;
server_t *server;
bool suppress; // Suppress error reporting in the "all zones" ctl commands.
+ unsigned thread_idx;
} ctl_args_t;
/*!
diff --git a/src/knot/ctl/process.c b/src/knot/ctl/process.c
index 50fde21..9e6e0df 100644
--- a/src/knot/ctl/process.c
+++ b/src/knot/ctl/process.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@
#include "libknot/error.h"
#include "contrib/string.h"
-int ctl_process(knot_ctl_t *ctl, server_t *server)
+int ctl_process(knot_ctl_t *ctl, server_t *server, int thread_idx, bool *exclusive)
{
if (ctl == NULL || server == NULL) {
return KNOT_EINVAL;
@@ -29,7 +29,8 @@ int ctl_process(knot_ctl_t *ctl, server_t *server)
ctl_args_t args = {
.ctl = ctl,
.type = KNOT_CTL_TYPE_END,
- .server = server
+ .server = server,
+ .thread_idx = thread_idx,
};
// Strip redundant/unprocessed data units in the current block.
@@ -90,11 +91,21 @@ int ctl_process(knot_ctl_t *ctl, server_t *server)
continue;
}
+ if ((cmd == CTL_CONF_COMMIT || cmd == CTL_CONF_ABORT) && !*exclusive) {
+ log_ctl_warning("control, invalid reception of '%s'", cmd_name);
+ continue;
+ }
+
// Execute the command.
int cmd_ret = ctl_exec(cmd, &args);
switch (cmd_ret) {
case KNOT_EOK:
strip = false;
+ if (cmd == CTL_CONF_BEGIN) {
+ *exclusive = true;
+ } else if (cmd == CTL_CONF_COMMIT || cmd == CTL_CONF_ABORT) {
+ *exclusive = false;
+ }
case KNOT_CTL_ESTOP:
case KNOT_CTL_EZONE:
// KNOT_CTL_EZONE - don't change strip, but don't be reported
diff --git a/src/knot/ctl/process.h b/src/knot/ctl/process.h
index ab0f75f..2ae6ea0 100644
--- a/src/knot/ctl/process.h
+++ b/src/knot/ctl/process.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,12 +19,16 @@
#include "libknot/libknot.h"
#include "knot/server/server.h"
+#define CTL_MAX_CONCURRENT 8 // Number of CTL threads EXCLUDING the main thread which can also process CTL.
+
/*!
* Processes incoming control commands.
*
- * \param[in] ctl Control context.
- * \param[in] server Server instance.
+ * \param[in] ctl Control context.
+ * \param[in] server Server instance.
+ * \param[in] thread_idx Index of a thread which performs the operation.
+ * \param[out] exclusive All following CTLs shall (not) be processed exclusively by this thread.
*
* \return Error code, KNOT_EOK if successful.
*/
-int ctl_process(knot_ctl_t *ctl, server_t *server);
+int ctl_process(knot_ctl_t *ctl, server_t *server, int thread_idx, bool *exclusive);
diff --git a/src/knot/dnssec/context.c b/src/knot/dnssec/context.c
index c10e5c6..24b41f7 100644
--- a/src/knot/dnssec/context.c
+++ b/src/knot/dnssec/context.c
@@ -213,11 +213,13 @@ int kdnssec_ctx_init(conf_t *conf, kdnssec_ctx_t *ctx, const knot_dname_t *zone_
goto init_error;
}
- ctx->policy = calloc(1, sizeof(*ctx->policy));
+ ctx->policy = calloc(1, sizeof(*ctx->policy) + sizeof(*ctx->stats));
if (ctx->policy == NULL) {
ret = KNOT_ENOMEM;
goto init_error;
}
+ ctx->stats = (void *)ctx->policy + sizeof(*ctx->policy);
+ knot_spin_init(&ctx->stats->lock);
ret = kasp_db_get_saved_ttls(ctx->kasp_db, zone_name,
&ctx->policy->saved_max_ttl,
@@ -235,7 +237,7 @@ int kdnssec_ctx_init(conf_t *conf, kdnssec_ctx_t *ctx, const knot_dname_t *zone_
conf_id_fix_default(&policy_id);
policy_load(ctx->policy, conf, &policy_id, ctx->zone->dname);
- ret = zone_init_keystore(conf, &policy_id, &ctx->keystore,
+ ret = zone_init_keystore(conf, &policy_id, NULL, &ctx->keystore,
&ctx->keystore_type, &ctx->policy->key_label);
if (ret != KNOT_EOK) {
goto init_error;
@@ -287,6 +289,7 @@ void kdnssec_ctx_deinit(kdnssec_ctx_t *ctx)
}
if (ctx->policy != NULL) {
+ knot_spin_destroy(&ctx->stats->lock);
free(ctx->policy->string);
knot_dynarray_foreach(parent, knot_kasp_parent_t, i, ctx->policy->parents) {
free(i->addr);
@@ -331,18 +334,22 @@ int kdnssec_validation_ctx(conf_t *conf, kdnssec_ctx_t *ctx, const zone_contents
return KNOT_ENOMEM;
}
- ctx->policy = calloc(1, sizeof(*ctx->policy));
+ ctx->policy = calloc(1, sizeof(*ctx->policy) + sizeof(*ctx->stats));
if (ctx->policy == NULL) {
free(ctx->zone);
return KNOT_ENOMEM;
}
+ ctx->stats = (void *)ctx->policy + sizeof(*ctx->policy);
+ knot_spin_init(&ctx->stats->lock);
policy_from_zone(ctx->policy, zone);
if (conf != NULL) {
conf_val_t policy_id = conf_zone_get(conf, C_DNSSEC_POLICY, zone->apex->owner);
conf_id_fix_default(&policy_id);
- conf_val_t num_threads = conf_id_get(conf, C_POLICY, C_SIGNING_THREADS, &policy_id);
- ctx->policy->signing_threads = conf_int(&num_threads);
+ conf_val_t val = conf_id_get(conf, C_POLICY, C_SIGNING_THREADS, &policy_id);
+ ctx->policy->signing_threads = conf_int(&val);
+ val = conf_id_get(conf, C_POLICY, C_RRSIG_REFRESH, &policy_id);
+ ctx->policy->rrsig_refresh_before = conf_int_alt(&val, true);
} else {
ctx->policy->signing_threads = MAX(dt_optimal_size(), 1);
}
diff --git a/src/knot/dnssec/context.h b/src/knot/dnssec/context.h
index 756bc56..2d126db 100644
--- a/src/knot/dnssec/context.h
+++ b/src/knot/dnssec/context.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -16,14 +16,20 @@
#pragma once
-#include <time.h>
-
#include "libdnssec/keystore.h"
-
+#include "contrib/spinlock.h"
+#include "contrib/time.h"
#include "knot/conf/conf.h"
#include "knot/dnssec/kasp/kasp_zone.h"
#include "knot/dnssec/kasp/policy.h"
+typedef struct {
+ size_t rrsig_count;
+ knot_time_t expire;
+
+ knot_spin_t lock;
+} zone_sign_stats_t;
+
/*!
* \brief DNSSEC signing context.
*/
@@ -38,6 +44,8 @@ typedef struct {
char *kasp_zone_path;
+ zone_sign_stats_t *stats;
+
bool rrsig_drop_existing;
bool keep_deleted_keys;
bool keytag_conflict;
diff --git a/src/knot/dnssec/ds_query.c b/src/knot/dnssec/ds_query.c
index 2ac91cc..0b85247 100644
--- a/src/knot/dnssec/ds_query.c
+++ b/src/knot/dnssec/ds_query.c
@@ -28,8 +28,8 @@
#define DS_CHECK_LOG(priority, zone, remote, flags, fmt, ...) \
ns_log(priority, zone, LOG_OPERATION_DS_CHECK, LOG_DIRECTION_OUT, &(remote)->addr, \
- ((flags) & KNOT_REQUESTOR_QUIC) ? KNOTD_QUERY_PROTO_QUIC : KNOTD_QUERY_PROTO_TCP, \
- ((flags) & KNOT_REQUESTOR_REUSED), (remote)->key.name, fmt, ## __VA_ARGS__)
+ flags2proto(flags), ((flags) & KNOT_REQUESTOR_REUSED), (remote)->key.name, \
+ fmt, ## __VA_ARGS__)
static bool match_key_ds(knot_kasp_key_t *key, knot_rdata_t *ds)
{
diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c
index e70f21d..08655df 100644
--- a/src/knot/dnssec/kasp/kasp_zone.c
+++ b/src/knot/dnssec/kasp/kasp_zone.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -314,7 +314,7 @@ void free_key_params(key_params_t *parm)
}
}
-int zone_init_keystore(conf_t *conf, conf_val_t *policy_id,
+int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore_id,
dnssec_keystore_t **keystore, unsigned *backend, bool *key_label)
{
char *zone_path = conf_db(conf, C_KASP_DB);
@@ -322,19 +322,25 @@ int zone_init_keystore(conf_t *conf, conf_val_t *policy_id,
return KNOT_ENOMEM;
}
- conf_id_fix_default(policy_id);
+ conf_val_t keystore_val;
+ if (keystore_id == NULL) {
+ conf_id_fix_default(policy_id);
- conf_val_t keystore_id = conf_id_get(conf, C_POLICY, C_KEYSTORE, policy_id);
- conf_id_fix_default(&keystore_id);
+ keystore_val = conf_id_get(conf, C_POLICY, C_KEYSTORE, policy_id);
+ conf_id_fix_default(&keystore_val);
+ keystore_id = &keystore_val;
+ } else {
+ conf_id_fix_default(keystore_id);
+ }
- conf_val_t val = conf_id_get(conf, C_KEYSTORE, C_BACKEND, &keystore_id);
+ conf_val_t val = conf_id_get(conf, C_KEYSTORE, C_BACKEND, keystore_id);
unsigned _backend = conf_opt(&val);
- val = conf_id_get(conf, C_KEYSTORE, C_CONFIG, &keystore_id);
+ val = conf_id_get(conf, C_KEYSTORE, C_CONFIG, keystore_id);
const char *config = conf_str(&val);
if (key_label != NULL) {
- val = conf_id_get(conf, C_KEYSTORE, C_KEY_LABEL, &keystore_id);
+ val = conf_id_get(conf, C_KEYSTORE, C_KEY_LABEL, keystore_id);
*key_label = conf_bool(&val);
}
diff --git a/src/knot/dnssec/kasp/kasp_zone.h b/src/knot/dnssec/kasp/kasp_zone.h
index c4df282..836fe7d 100644
--- a/src/knot/dnssec/kasp/kasp_zone.h
+++ b/src/knot/dnssec/kasp/kasp_zone.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -47,7 +47,7 @@ void kasp_zone_free(knot_kasp_zone_t **zone);
void free_key_params(key_params_t *parm);
-int zone_init_keystore(conf_t *conf, conf_val_t *policy_id,
+int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore_id,
dnssec_keystore_t **keystore, unsigned *backend, bool *key_label);
int kasp_zone_keys_from_rr(knot_kasp_zone_t *zone,
diff --git a/src/knot/dnssec/key-events.c b/src/knot/dnssec/key-events.c
index ace48d5..db762b6 100644
--- a/src/knot/dnssec/key-events.c
+++ b/src/knot/dnssec/key-events.c
@@ -17,8 +17,8 @@
#include <assert.h>
#include "contrib/macros.h"
+#include "knot/common/dbus.h"
#include "knot/common/log.h"
-#include "knot/common/systemd.h"
#include "knot/dnssec/kasp/keystate.h"
#include "knot/dnssec/key-events.h"
#include "knot/dnssec/policy.h"
@@ -429,7 +429,9 @@ static roll_action_t next_action(kdnssec_ctx_t *ctx, zone_sign_roll_flags_t flag
(key->is_zsk && !(flags & KEY_ROLL_ALLOW_ZSK_ROLL))) {
continue;
}
- clear_future_timers(key, ctx);
+ if (!(flags & KEY_ROLL_PRESERVE_FUTURE)) {
+ clear_future_timers(key, ctx);
+ }
if (key->is_ksk) {
switch (get_key_state(key, ctx->now)) {
case DNSSEC_KEY_STATE_PRE_ACTIVE:
@@ -879,7 +881,7 @@ int knot_dnssec_key_rollover(kdnssec_ctx_t *ctx, zone_sign_roll_flags_t flags,
if (ret == KNOT_EOK && reschedule->keys_changed) {
ret = kdnssec_ctx_commit(ctx);
if (ret == KNOT_EOK && (ctx->dbus_event & DBUS_EVENT_KEYS_UPDATED)) {
- systemd_emit_keys_updated(ctx->zone->dname);
+ dbus_emit_keys_updated(ctx->zone->dname);
}
}
@@ -889,7 +891,7 @@ int knot_dnssec_key_rollover(kdnssec_ctx_t *ctx, zone_sign_roll_flags_t flags,
log_fmt_zone(LOG_NOTICE, LOG_SOURCE_ZONE, ctx->zone->dname, param,
"DNSSEC, KSK submission, waiting for confirmation");
if (ctx->dbus_event & DBUS_EVENT_ZONE_SUBMISSION) {
- systemd_emit_zone_submission(ctx->zone->dname, ready_keytag, ready_keyid);
+ dbus_emit_zone_submission(ctx->zone->dname, ready_keytag, ready_keyid);
}
}
diff --git a/src/knot/dnssec/key_records.c b/src/knot/dnssec/key_records.c
index 9b22f7a..366ab4a 100644
--- a/src/knot/dnssec/key_records.c
+++ b/src/knot/dnssec/key_records.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -189,7 +189,7 @@ int key_records_dump(char **buf, size_t *buf_size, const key_records_t *r, bool
return ret >= 0 ? KNOT_EOK : ret;
}
-int key_records_sign(const zone_key_t *key, key_records_t *r, const kdnssec_ctx_t *kctx, knot_time_t *expires)
+int key_records_sign(const zone_key_t *key, key_records_t *r, const kdnssec_ctx_t *kctx)
{
dnssec_sign_ctx_t *sign_ctx;
int ret = dnssec_sign_new(&sign_ctx, key->key);
@@ -198,20 +198,20 @@ int key_records_sign(const zone_key_t *key, key_records_t *r, const kdnssec_ctx_
}
if (!knot_rrset_empty(&r->dnskey) && knot_zone_sign_use_key(key, &r->dnskey)) {
- ret = knot_sign_rrset(&r->rrsig, &r->dnskey, key->key, sign_ctx, kctx, NULL, expires);
+ ret = knot_sign_rrset(&r->rrsig, &r->dnskey, key->key, sign_ctx, kctx, NULL);
}
if (ret == KNOT_EOK && !knot_rrset_empty(&r->cdnskey) && knot_zone_sign_use_key(key, &r->cdnskey)) {
- ret = knot_sign_rrset(&r->rrsig, &r->cdnskey, key->key, sign_ctx, kctx, NULL, expires);
+ ret = knot_sign_rrset(&r->rrsig, &r->cdnskey, key->key, sign_ctx, kctx, NULL);
}
if (ret == KNOT_EOK && !knot_rrset_empty(&r->cds) && knot_zone_sign_use_key(key, &r->cds)) {
- ret = knot_sign_rrset(&r->rrsig, &r->cds, key->key, sign_ctx, kctx, NULL, expires);
+ ret = knot_sign_rrset(&r->rrsig, &r->cds, key->key, sign_ctx, kctx, NULL);
}
dnssec_sign_free(sign_ctx);
return ret;
}
-int key_records_verify(key_records_t *r, kdnssec_ctx_t *kctx, knot_time_t timestamp)
+int key_records_verify(key_records_t *r, kdnssec_ctx_t *kctx, knot_time_t timestamp, knot_time_t min_valid)
{
kctx->now = timestamp;
int ret = kasp_zone_keys_from_rr(kctx->zone, &r->dnskey.rrs, false, &kctx->keytag_conflict);
@@ -224,12 +224,17 @@ int key_records_verify(key_records_t *r, kdnssec_ctx_t *kctx, knot_time_t timest
return KNOT_ENOMEM;
}
- ret = knot_validate_rrsigs(&r->dnskey, &r->rrsig, sign_ctx, false);
+ knot_time_t until = 0;
+ ret = knot_validate_rrsigs(&r->dnskey, &r->rrsig, sign_ctx, false, &until);
if (ret == KNOT_EOK && !knot_rrset_empty(&r->cdnskey)) {
- ret = knot_validate_rrsigs(&r->cdnskey, &r->rrsig, sign_ctx, false);
+ ret = knot_validate_rrsigs(&r->cdnskey, &r->rrsig, sign_ctx, false, &until);
}
if (ret == KNOT_EOK && !knot_rrset_empty(&r->cds)) {
- ret = knot_validate_rrsigs(&r->cds, &r->rrsig, sign_ctx, false);
+ ret = knot_validate_rrsigs(&r->cds, &r->rrsig, sign_ctx, false, &until);
+ }
+
+ if (ret == KNOT_EOK && knot_time_lt(until, min_valid)) {
+ ret = KNOT_ESOON_EXPIRE;
}
zone_sign_ctx_free(sign_ctx);
diff --git a/src/knot/dnssec/key_records.h b/src/knot/dnssec/key_records.h
index b53ed86..dd28b4f 100644
--- a/src/knot/dnssec/key_records.h
+++ b/src/knot/dnssec/key_records.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -39,10 +39,10 @@ int key_records_intersect(key_records_t *r, const key_records_t *against);
int key_records_dump(char **buf, size_t *buf_size, const key_records_t *r, bool verbose);
-int key_records_sign(const zone_key_t *key, key_records_t *r, const kdnssec_ctx_t *kctx, knot_time_t *expires);
+int key_records_sign(const zone_key_t *key, key_records_t *r, const kdnssec_ctx_t *kctx);
// WARNING this modifies 'kctx' with updated timestamp and with zone_keys from r->dnskey
-int key_records_verify(key_records_t *r, kdnssec_ctx_t *kctx, knot_time_t timestamp);
+int key_records_verify(key_records_t *r, kdnssec_ctx_t *kctx, knot_time_t timestamp, knot_time_t min_valid);
size_t key_records_serialized_size(const key_records_t *r);
diff --git a/src/knot/dnssec/nsec-chain.c b/src/knot/dnssec/nsec-chain.c
index dc35097..123020a 100644
--- a/src/knot/dnssec/nsec-chain.c
+++ b/src/knot/dnssec/nsec-chain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -123,18 +123,15 @@ static int connect_nsec_nodes(zone_node_t *a, zone_node_t *b,
assert(b);
assert(data);
- if (b->rrset_count == 0 || b->flags & NODE_FLAGS_NONAUTH) {
- return NSEC_NODE_SKIP;
- }
-
int ret = KNOT_EOK;
/*!
* If the node has no other RRSets than NSEC (and possibly RRSIGs),
+ * or the node is not authoritative,
* just remove the NSEC and its RRSIG, they are redundant
*/
- if (node_rrtype_exists(b, KNOT_RRTYPE_NSEC)
- && knot_nsec_empty_nsec_and_rrsigs_in_node(b)) {
+ if (node_rrtype_exists(b, KNOT_RRTYPE_NSEC) &&
+ (b->flags & NODE_FLAGS_NONAUTH || knot_nsec_empty_nsec_and_rrsigs_in_node(b))) {
ret = knot_nsec_changeset_remove(b, data->update);
if (ret != KNOT_EOK) {
return ret;
@@ -143,6 +140,10 @@ static int connect_nsec_nodes(zone_node_t *a, zone_node_t *b,
return NSEC_NODE_SKIP;
}
+ if (b->rrset_count == 0 || b->flags & NODE_FLAGS_NONAUTH) {
+ return NSEC_NODE_SKIP;
+ }
+
// create new NSEC
knot_rrset_t new_nsec;
ret = create_nsec_rrset(&new_nsec, a, b->owner, data->ttl);
@@ -447,7 +448,7 @@ static int check_nsec_bitmap(zone_node_t *node, void *ctx)
if (shall_no_nsec && nsec != NULL && nsec->count > 0) {
data->update->validation_hint.node = nsec_node->owner;
data->update->validation_hint.rrtype = data->nsec_type;
- return KNOT_DNSSEC_ENSEC_BITMAP;
+ return KNOT_DNSSEC_EXTRA_NSEC;
}
if (shall_no_nsec) {
return KNOT_EOK;
@@ -764,7 +765,7 @@ int knot_nsec_check_chain(zone_update_t *update)
if (!zone_tree_is_empty(update->new_cont->nsec3_nodes)) {
update->validation_hint.node = update->zone->name;
update->validation_hint.rrtype = KNOT_RRTYPE_NSEC3;
- return KNOT_DNSSEC_ENSEC_BITMAP;
+ return KNOT_DNSSEC_EXTRA_NSEC;
}
nsec_chain_iterate_data_t data = { 0, update, KNOT_RRTYPE_NSEC };
@@ -783,7 +784,7 @@ int knot_nsec_check_chain_fix(zone_update_t *update)
if (!zone_tree_is_empty(update->new_cont->nsec3_nodes)) {
update->validation_hint.node = update->zone->name;
update->validation_hint.rrtype = KNOT_RRTYPE_NSEC3;
- return KNOT_DNSSEC_ENSEC_BITMAP;
+ return KNOT_DNSSEC_EXTRA_NSEC;
}
nsec_chain_iterate_data_t data = { 0, update, KNOT_RRTYPE_NSEC };
diff --git a/src/knot/dnssec/rrset-sign.c b/src/knot/dnssec/rrset-sign.c
index 4c9e904..1dc9edc 100644
--- a/src/knot/dnssec/rrset-sign.c
+++ b/src/knot/dnssec/rrset-sign.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -157,13 +157,13 @@ static int sign_ctx_add_self(dnssec_sign_ctx_t *ctx, const uint8_t *rdata)
*/
static int sign_ctx_add_records(dnssec_sign_ctx_t *ctx, const knot_rrset_t *covered)
{
- size_t rrwl = knot_rrset_size(covered);
+ size_t rrwl = knot_rrset_size_estimate(covered);
uint8_t *rrwf = malloc(rrwl);
if (!rrwf) {
return KNOT_ENOMEM;
}
- int written = knot_rrset_to_wire_extra(covered, rrwf, rrwl, 0, NULL, KNOT_PF_BUFENOUGH);
+ int written = knot_rrset_to_wire_extra(covered, rrwf, rrwl, 0, NULL, 0);
if (written < 0) {
free(rrwf);
return written;
@@ -263,7 +263,7 @@ static int rrsigs_create_rdata(knot_rrset_t *rrsigs, dnssec_sign_ctx_t *ctx,
int knot_sign_rrset(knot_rrset_t *rrsigs, const knot_rrset_t *covered,
const dnssec_key_t *key, dnssec_sign_ctx_t *sign_ctx,
- const kdnssec_ctx_t *dnssec_ctx, knot_mm_t *mm, knot_time_t *expires)
+ const kdnssec_ctx_t *dnssec_ctx, knot_mm_t *mm)
{
if (knot_rrset_empty(covered) || !key || !sign_ctx || !dnssec_ctx ||
rrsigs->type != KNOT_RRTYPE_RRSIG ||
@@ -279,8 +279,11 @@ int knot_sign_rrset(knot_rrset_t *rrsigs, const knot_rrset_t *covered,
int ret = rrsigs_create_rdata(rrsigs, sign_ctx, covered, key, (uint32_t)sig_incept,
(uint32_t)sig_expire, sign_flags, mm);
- if (ret == KNOT_EOK && expires != NULL) {
- *expires = knot_time_min(*expires, sig_expire);
+ if (ret == KNOT_EOK) {
+ knot_spin_lock(&dnssec_ctx->stats->lock);
+ dnssec_ctx->stats->rrsig_count++;
+ dnssec_ctx->stats->expire = knot_time_min(dnssec_ctx->stats->expire, sig_expire);
+ knot_spin_unlock(&dnssec_ctx->stats->lock);
}
return ret;
}
@@ -300,7 +303,7 @@ int knot_sign_rrset2(knot_rrset_t *rrsigs, const knot_rrset_t *rrset,
}
int ret = knot_sign_rrset(rrsigs, rrset, key->key, sign_ctx->sign_ctxs[i],
- sign_ctx->dnssec_ctx, mm, NULL);
+ sign_ctx->dnssec_ctx, mm);
if (ret != KNOT_EOK) {
return ret;
}
diff --git a/src/knot/dnssec/rrset-sign.h b/src/knot/dnssec/rrset-sign.h
index 8e00402..ba0f027 100644
--- a/src/knot/dnssec/rrset-sign.h
+++ b/src/knot/dnssec/rrset-sign.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -31,7 +31,6 @@
* \param sign_ctx Signing context.
* \param dnssec_ctx DNSSEC context.
* \param mm Memory context.
- * \param expires Out: When will the new RRSIG expire.
*
* \return Error code, KNOT_EOK if successful.
*/
@@ -40,8 +39,7 @@ int knot_sign_rrset(knot_rrset_t *rrsigs,
const dnssec_key_t *key,
dnssec_sign_ctx_t *sign_ctx,
const kdnssec_ctx_t *dnssec_ctx,
- knot_mm_t *mm,
- knot_time_t *expires);
+ knot_mm_t *mm);
/*!
* \brief Create RRSIG RR for given RR set, choose which key to use.
diff --git a/src/knot/dnssec/zone-events.c b/src/knot/dnssec/zone-events.c
index faf093d..2ca35ac 100644
--- a/src/knot/dnssec/zone-events.c
+++ b/src/knot/dnssec/zone-events.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,6 +20,7 @@
#include "libdnssec/random.h"
#include "libknot/libknot.h"
#include "knot/conf/conf.h"
+#include "knot/common/dbus.h"
#include "knot/common/log.h"
#include "knot/dnssec/key-events.h"
#include "knot/dnssec/key_records.h"
@@ -157,7 +158,6 @@ int knot_dnssec_zone_sign(zone_update_t *update,
const knot_dname_t *zone_name = update->new_cont->apex->owner;
kdnssec_ctx_t ctx = { 0 };
zone_keyset_t keyset = { 0 };
- knot_time_t zone_expire = 0;
int result = kdnssec_ctx_init(conf, &ctx, zone_name, zone_kaspdb(update->zone), NULL);
if (result != KNOT_EOK) {
@@ -259,7 +259,7 @@ int knot_dnssec_zone_sign(zone_update_t *update,
goto done;
}
- result = knot_zone_sign(update, &keyset, &ctx, &zone_expire);
+ result = knot_zone_sign(update, &keyset, &ctx);
if (result != KNOT_EOK) {
log_zone_error(zone_name, "DNSSEC, failed to sign zone content (%s)",
knot_strerror(result));
@@ -302,13 +302,14 @@ int knot_dnssec_zone_sign(zone_update_t *update,
}
}
- log_zone_info(zone_name, "DNSSEC, successfully signed, serial %u",
- zone_contents_serial(update->new_cont));
+ log_zone_info(zone_name, "DNSSEC, successfully signed, serial %u, new RRSIGs %zu",
+ zone_contents_serial(update->new_cont), ctx.stats->rrsig_count);
done:
if (result == KNOT_EOK) {
- reschedule->next_sign = schedule_next(&ctx, &keyset, ctx.offline_next_time, zone_expire);
+ reschedule->next_sign = schedule_next(&ctx, &keyset, ctx.offline_next_time, ctx.stats->expire);
reschedule->plan_dnskey_sync = ctx.policy->has_dnskey_sync;
+ update->new_cont->dnssec_expire = ctx.stats->expire;
} else {
reschedule->next_sign = knot_dnssec_failover_delay(&ctx);
reschedule->next_rollover = 0;
@@ -329,7 +330,6 @@ int knot_dnssec_sign_update(zone_update_t *update, conf_t *conf)
const knot_dname_t *zone_name = update->new_cont->apex->owner;
kdnssec_ctx_t ctx = { 0 };
zone_keyset_t keyset = { 0 };
- knot_time_t zone_expire = 0;
int result = kdnssec_ctx_init(conf, &ctx, zone_name, zone_kaspdb(update->zone), NULL);
if (result != KNOT_EOK) {
@@ -381,7 +381,7 @@ int knot_dnssec_sign_update(zone_update_t *update, conf_t *conf)
goto done;
}
- result = knot_zone_sign_update(update, &keyset, &ctx, &zone_expire);
+ result = knot_zone_sign_update(update, &keyset, &ctx);
if (result != KNOT_EOK) {
log_zone_error(zone_name, "DNSSEC, failed to sign changeset (%s)",
knot_strerror(result));
@@ -434,17 +434,18 @@ int knot_dnssec_sign_update(zone_update_t *update, conf_t *conf)
}
}
- log_zone_info(zone_name, "DNSSEC, incrementally signed, serial %u",
- zone_contents_serial(update->new_cont));
+ log_zone_info(zone_name, "DNSSEC, incrementally signed, serial %u, new RRSIGs %zu",
+ zone_contents_serial(update->new_cont), ctx.stats->rrsig_count);
done:
if (result == KNOT_EOK) {
- knot_time_t next = knot_time_min(ctx.offline_next_time, zone_expire);
+ knot_time_t next = knot_time_min(ctx.offline_next_time, ctx.stats->expire);
// NOTE: this is usually NOOP since signing planned earlier
zone_events_schedule_at(update->zone, ZONE_EVENT_DNSSEC, (time_t)(next ? next : -1));
if (ctx.policy->has_dnskey_sync) {
zone_events_schedule_now(update->zone, ZONE_EVENT_DNSKEY_SYNC);
}
+ update->new_cont->dnssec_expire = knot_time_min(update->zone->contents->dnssec_expire, ctx.stats->expire);
}
free_zone_keys(&keyset);
@@ -462,25 +463,83 @@ knot_time_t knot_dnssec_failover_delay(const kdnssec_ctx_t *ctx)
}
}
-int knot_dnssec_validate_zone(zone_update_t *update, conf_t *conf, knot_time_t now, bool incremental)
+static void log_validation_error(zone_update_t *update, const char *msg_valid,
+ int ret, bool warning)
+{
+ unsigned level = warning ? LOG_WARNING : LOG_ERR;
+
+ log_fmt_zone(level, LOG_SOURCE_ZONE, update->zone->name, NULL,
+ "DNSSEC, %svalidation failed (%s)", msg_valid, knot_strerror(ret));
+
+ char type_str[16];
+ knot_dname_txt_storage_t name_str;
+ if (knot_dname_to_str(name_str, update->validation_hint.node, sizeof(name_str)) != NULL &&
+ knot_rrtype_to_string(update->validation_hint.rrtype, type_str, sizeof(type_str)) >= 0) {
+ log_fmt_zone(level, LOG_SOURCE_ZONE, update->zone->name, NULL,
+ "DNSSEC, validation hint: %s %s", name_str, type_str);
+ }
+}
+
+int knot_dnssec_validate_zone(zone_update_t *update, conf_t *conf,
+ knot_time_t now, bool incremental, bool log_plan)
{
kdnssec_ctx_t ctx = { 0 };
int ret = kdnssec_validation_ctx(conf, &ctx, update->new_cont);
+ if (ret != KNOT_EOK) {
+ goto end;
+ }
if (now != 0) {
ctx.now = now;
}
+
+ ret = knot_zone_check_nsec_chain(update, &ctx, incremental);
if (ret == KNOT_EOK) {
- ret = knot_zone_check_nsec_chain(update, &ctx, incremental);
- }
- if (ret == KNOT_EOK) {
- knot_time_t unused = 0;
assert(ctx.validation_mode);
if (incremental) {
- ret = knot_zone_sign_update(update, NULL, &ctx, &unused);
+ ret = knot_zone_sign_update(update, NULL, &ctx);
} else {
- ret = knot_zone_sign(update, NULL, &ctx, &unused);
+ ret = knot_zone_sign(update, NULL, &ctx);
}
}
+end:
+ if (log_plan) {
+ const char *msg_valid = incremental ? "incremental " : "";
+ if (ret != KNOT_EOK) {
+ log_validation_error(update, msg_valid, ret, false);
+ if (conf->cache.srv_dbus_event & DBUS_EVENT_ZONE_INVALID) {
+ dbus_emit_zone_invalid(update->zone->name, 0);
+ }
+ } else if (update->validation_hint.warning != KNOT_EOK) {
+ log_validation_error(update, msg_valid, update->validation_hint.warning, true);
+ if (conf->cache.srv_dbus_event & DBUS_EVENT_ZONE_INVALID) {
+ dbus_emit_zone_invalid(update->zone->name, update->validation_hint.remaining_secs);
+ }
+ } else {
+ log_zone_info(update->zone->name, "DNSSEC, %svalidation successful, checked RRSIGs %zu",
+ msg_valid, ctx.stats->rrsig_count);
+ }
+
+ conf_val_t val = conf_zone_get(conf, C_DNSSEC_VALIDATION, update->zone->name);
+ bool configured = conf_bool(&val);
+ bool bogus = (ret != KNOT_EOK);
+ bool running = (update->zone->contents == update->new_cont);
+ bool may_expire = zone_is_slave(conf, update->zone);
+ knot_time_t expire = (ctx.stats != NULL ? ctx.stats->expire : 0);
+ assert(bogus || knot_time_geq(expire, ctx.now));
+
+ if (running && bogus && may_expire) {
+ zone_events_schedule_now(update->zone, ZONE_EVENT_EXPIRE);
+ }
+ if (configured && !bogus) {
+ if (!incremental) {
+ zone_events_schedule_at(update->zone, ZONE_EVENT_VALIDATE, 0); // cancel previously planned re-check when fully re-checked
+ }
+ zone_events_schedule_at(update->zone, ZONE_EVENT_VALIDATE, // this works for incremental verify as well, re-planning on later
+ knot_time_add(expire, 1)); // is a NOOP, sooner is proper
+ }
+ }
+
kdnssec_ctx_deinit(&ctx);
+
return ret;
}
diff --git a/src/knot/dnssec/zone-events.h b/src/knot/dnssec/zone-events.h
index ef5f6f8..2f75614 100644
--- a/src/knot/dnssec/zone-events.h
+++ b/src/knot/dnssec/zone-events.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -16,10 +16,7 @@
#pragma once
-#include <time.h>
-
-#include "knot/zone/zone.h"
-#include "knot/updates/changesets.h"
+#include "contrib/time.h"
#include "knot/updates/zone-update.h"
#include "knot/dnssec/context.h"
@@ -39,7 +36,8 @@ typedef enum {
KEY_ROLL_ALLOW_NSEC3RESALT = (1 << 4),
KEY_ROLL_ALLOW_ALL = KEY_ROLL_ALLOW_KSK_ROLL |
KEY_ROLL_ALLOW_ZSK_ROLL |
- KEY_ROLL_ALLOW_NSEC3RESALT
+ KEY_ROLL_ALLOW_NSEC3RESALT,
+ KEY_ROLL_PRESERVE_FUTURE = (1 << 5),
} zone_sign_roll_flags_t;
typedef struct {
@@ -53,17 +51,6 @@ typedef struct {
} zone_sign_reschedule_t;
/*!
- * \brief Generate/rollover keys in keystore as needed.
- *
- * \param kctx Pointers to the keytore, policy, etc.
- * \param zone_name Zone name.
- *
- * \return Error code, KNOT_EOK if successful.
- */
-int knot_dnssec_sign_process_events(const kdnssec_ctx_t *kctx,
- const knot_dname_t *zone_name);
-
-/*!
* \brief DNSSEC re-sign zone, store new records into changeset. Valid signatures
* and NSEC(3) records will not be changed.
*
@@ -129,7 +116,9 @@ knot_time_t knot_dnssec_failover_delay(const kdnssec_ctx_t *ctx);
* \param conf Knot configuration.
* \param now If not zero: adjust "now" to this timestamp.
* \param incremental Try to validate incrementally.
+ * \param log_plan Log the result and plan subsequent validation event.
*
* \return KNOT_E*
*/
-int knot_dnssec_validate_zone(zone_update_t *update, conf_t *conf, knot_time_t now, bool incremental);
+int knot_dnssec_validate_zone(zone_update_t *update, conf_t *conf,
+ knot_time_t now, bool incremental, bool log_plan);
diff --git a/src/knot/dnssec/zone-sign.c b/src/knot/dnssec/zone-sign.c
index 62f809e..3cd2420 100644
--- a/src/knot/dnssec/zone-sign.c
+++ b/src/knot/dnssec/zone-sign.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -209,7 +209,6 @@ bool rrsig_covers_type(const knot_rrset_t *rrsig, uint16_t type)
* \param skip_crypto All RRSIGs in this node have been verified, just check validity.
* \param changeset Changeset to be updated.
* \param update Zone update to be updated. Exactly one of "changeset" and "update" must be NULL!
- * \param expires_at Earliest RRSIG expiration.
*
* \return Error code, KNOT_EOK if successful.
*/
@@ -218,8 +217,7 @@ static int add_missing_rrsigs(const knot_rrset_t *covered,
zone_sign_ctx_t *sign_ctx,
bool skip_crypto,
changeset_t *changeset,
- zone_update_t *update,
- knot_time_t *expires_at)
+ zone_update_t *update)
{
assert(!knot_rrset_empty(covered));
assert(sign_ctx);
@@ -258,11 +256,14 @@ static int add_missing_rrsigs(const knot_rrset_t *covered,
sign_ctx->dnssec_ctx, refresh, skip_crypto, NULL, &valid_at)) {
knot_rdata_t *valid_rr = knot_rdataset_at(&rrsigs->rrs, valid_at);
result = knot_rdataset_remove(&to_remove.rrs, valid_rr, NULL);
- note_earliest_expiration(valid_rr, sign_ctx->dnssec_ctx->now, expires_at);
+ knot_spin_lock(&sign_ctx->dnssec_ctx->stats->lock);
+ note_earliest_expiration(valid_rr, sign_ctx->dnssec_ctx->now,
+ &sign_ctx->dnssec_ctx->stats->expire);
+ knot_spin_unlock(&sign_ctx->dnssec_ctx->stats->lock);
continue;
}
result = knot_sign_rrset(&to_add, covered, key->key, sign_ctx->sign_ctxs[i],
- sign_ctx->dnssec_ctx, NULL, expires_at);
+ sign_ctx->dnssec_ctx, NULL);
}
if (!knot_rrset_empty(&to_remove) && result == KNOT_EOK) {
@@ -306,9 +307,10 @@ static bool key_used(bool ksk, bool zsk, uint16_t type,
int knot_validate_rrsigs(const knot_rrset_t *covered,
const knot_rrset_t *rrsigs,
zone_sign_ctx_t *sign_ctx,
- bool skip_crypto)
+ bool skip_crypto,
+ knot_time_t *valid_until)
{
- if (covered == NULL || rrsigs == NULL || sign_ctx == NULL) {
+ if (covered == NULL || rrsigs == NULL || sign_ctx == NULL || valid_until == NULL) {
return KNOT_EINVAL;
}
@@ -327,7 +329,14 @@ int knot_validate_rrsigs(const knot_rrset_t *covered,
if (valid_signature_exists(covered, rrsigs, key->key, sign_ctx->sign_ctxs[i],
sign_ctx->dnssec_ctx, 0, skip_crypto, val_inval_map, &valid_at)) {
valid_exists = true;
+ knot_rdata_t *valid_rr = knot_rdataset_at(&rrsigs->rrs, valid_at);
+ note_earliest_expiration(valid_rr, sign_ctx->dnssec_ctx->now, valid_until);
}
+
+ knot_spin_lock(&sign_ctx->dnssec_ctx->stats->lock);
+ sign_ctx->dnssec_ctx->stats->rrsig_count++;
+ sign_ctx->dnssec_ctx->stats->expire = knot_time_min(sign_ctx->dnssec_ctx->stats->expire, *valid_until);
+ knot_spin_unlock(&sign_ctx->dnssec_ctx->stats->lock);
}
for (int i = 0; i < rrsigs->rrs.count; i++) {
@@ -398,7 +407,7 @@ static int force_resign_rrset(const knot_rrset_t *covered,
}
}
- return add_missing_rrsigs(covered, NULL, sign_ctx, false, changeset, NULL, NULL);
+ return add_missing_rrsigs(covered, NULL, sign_ctx, false, changeset, NULL);
}
/*!
@@ -409,7 +418,6 @@ static int force_resign_rrset(const knot_rrset_t *covered,
* \param sign_ctx Local zone signing context.
* \param skip_crypto All RRSIGs in this node have been verified, just check validity.
* \param changeset Changeset to be updated.
- * \param expires_at Current earliest expiration, will be updated.
*
* \return Error code, KNOT_EOK if successful.
*/
@@ -417,12 +425,11 @@ static int resign_rrset(const knot_rrset_t *covered,
const knot_rrset_t *rrsigs,
zone_sign_ctx_t *sign_ctx,
bool skip_crypto,
- changeset_t *changeset,
- knot_time_t *expires_at)
+ changeset_t *changeset)
{
assert(!knot_rrset_empty(covered));
- return add_missing_rrsigs(covered, rrsigs, sign_ctx, skip_crypto, changeset, NULL, expires_at);
+ return add_missing_rrsigs(covered, rrsigs, sign_ctx, skip_crypto, changeset, NULL);
}
static int remove_standalone_rrsigs(const zone_node_t *node,
@@ -463,14 +470,13 @@ static int remove_standalone_rrsigs(const zone_node_t *node,
* \param node Node to be signed.
* \param sign_ctx Local zone signing context.
* \param changeset Changeset to be updated.
- * \param expires_at Current earliest expiration, will be updated.
+ * \param hint Out: if DNSSEC validation failed, hint why and where.
*
* \return Error code, KNOT_EOK if successful.
*/
static int sign_node_rrsets(const zone_node_t *node,
zone_sign_ctx_t *sign_ctx,
changeset_t *changeset,
- knot_time_t *expires_at,
dnssec_validation_hint_t *hint)
{
assert(node);
@@ -499,17 +505,25 @@ static int sign_node_rrsets(const zone_node_t *node,
}
if (sign_ctx->dnssec_ctx->validation_mode) {
- result = knot_validate_rrsigs(&rrset, &rrsigs, sign_ctx, skip_crypto);
+ knot_time_t until = 0;
+ result = knot_validate_rrsigs(&rrset, &rrsigs, sign_ctx, skip_crypto, &until);
+ knot_time_t diff = knot_time_diff(until, sign_ctx->dnssec_ctx->now);
if (result != KNOT_EOK) {
hint->node = node->owner;
hint->rrtype = rrset.type;
+ } else if (diff < sign_ctx->dnssec_ctx->policy->rrsig_refresh_before) {
+ hint->node = node->owner;
+ hint->rrtype = rrset.type;
+ hint->warning = KNOT_ESOON_EXPIRE;
+ assert(until > 0);
+ hint->remaining_secs = MAX(0, diff);
}
} else if (sign_ctx->dnssec_ctx->rrsig_drop_existing) {
result = force_resign_rrset(&rrset, &rrsigs,
sign_ctx, changeset);
} else {
result = resign_rrset(&rrset, &rrsigs, sign_ctx, skip_crypto,
- changeset, expires_at);
+ changeset);
}
}
@@ -526,7 +540,6 @@ typedef struct {
zone_tree_t *tree;
zone_sign_ctx_t *sign_ctx;
changeset_t changeset;
- knot_time_t expires_at;
dnssec_validation_hint_t *hint;
size_t num_threads;
size_t thread_index;
@@ -557,11 +570,7 @@ static int sign_node(zone_node_t *node, void *data)
return KNOT_EOK;
}
- int result = sign_node_rrsets(node, args->sign_ctx,
- &args->changeset, &args->expires_at,
- args->hint);
-
- return result;
+ return sign_node_rrsets(node, args->sign_ctx, &args->changeset, args->hint);
}
static void *tree_sign_thread(void *_arg)
@@ -585,7 +594,6 @@ static int set_signed(zone_node_t *node, _unused_ void *data)
* \param zone_keys Zone keys.
* \param policy DNSSEC policy.
* \param update Zone update structure to be updated.
- * \param expires_at Expiration time of the oldest signature in zone.
*
* \return Error code, KNOT_EOK if successful.
*/
@@ -593,8 +601,7 @@ static int zone_tree_sign(zone_tree_t *tree,
size_t num_threads,
zone_keyset_t *zone_keys,
const kdnssec_ctx_t *dnssec_ctx,
- zone_update_t *update,
- knot_time_t *expires_at)
+ zone_update_t *update)
{
assert(zone_keys || dnssec_ctx->validation_mode);
assert(dnssec_ctx);
@@ -603,7 +610,6 @@ static int zone_tree_sign(zone_tree_t *tree,
int ret = KNOT_EOK;
node_sign_args_t args[num_threads];
memset(args, 0, sizeof(args));
- *expires_at = knot_time_plus(dnssec_ctx->now, dnssec_ctx->policy->rrsig_lifetime);
// init context structures
for (size_t i = 0; i < num_threads; i++) {
@@ -619,7 +625,6 @@ static int zone_tree_sign(zone_tree_t *tree,
if (ret != KNOT_EOK) {
break;
}
- args[i].expires_at = 0;
args[i].hint = &update->validation_hint;
args[i].num_threads = num_threads;
args[i].thread_index = i;
@@ -662,7 +667,6 @@ static int zone_tree_sign(zone_tree_t *tree,
ret = args[i].errcode;
if (ret == KNOT_EOK && !dnssec_ctx->validation_mode) {
ret = zone_update_apply_changeset(update, &args[i].changeset); // _fix not needed
- *expires_at = knot_time_min(*expires_at, args[i].expires_at);
}
}
}
@@ -701,10 +705,9 @@ static int rrset_add_zone_ds(knot_rrset_t *rrset, zone_key_t *zone_key, dnssec_k
int knot_zone_sign(zone_update_t *update,
zone_keyset_t *zone_keys,
- const kdnssec_ctx_t *dnssec_ctx,
- knot_time_t *expire_at)
+ const kdnssec_ctx_t *dnssec_ctx)
{
- if (!update || !dnssec_ctx || !expire_at ||
+ if (!update || !dnssec_ctx ||
dnssec_ctx->policy->signing_threads < 1 ||
(zone_keys == NULL && !dnssec_ctx->validation_mode)) {
return KNOT_EINVAL;
@@ -712,16 +715,14 @@ int knot_zone_sign(zone_update_t *update,
int result;
- knot_time_t normal_expire = 0;
result = zone_tree_sign(update->new_cont->nodes, dnssec_ctx->policy->signing_threads,
- zone_keys, dnssec_ctx, update, &normal_expire);
+ zone_keys, dnssec_ctx, update);
if (result != KNOT_EOK) {
return result;
}
- knot_time_t nsec3_expire = 0;
result = zone_tree_sign(update->new_cont->nsec3_nodes, dnssec_ctx->policy->signing_threads,
- zone_keys, dnssec_ctx, update, &nsec3_expire);
+ zone_keys, dnssec_ctx, update);
if (result != KNOT_EOK) {
return result;
}
@@ -732,8 +733,6 @@ int knot_zone_sign(zone_update_t *update,
result = zone_tree_apply(whole ? update->new_cont->nsec3_nodes : update->a_ctx->nsec3_ptrs, set_signed, NULL);
}
- *expire_at = knot_time_min(normal_expire, nsec3_expire);
-
return result;
}
@@ -948,7 +947,7 @@ bool knot_zone_sign_use_key(const zone_key_t *key, const knot_rrset_t *covered)
}
}
-static int sign_in_changeset(zone_node_t *node, uint16_t rrtype, knot_rrset_t *rrsigs,
+static int sign_in_changeset(zone_node_t *node, uint16_t rrtype,
zone_sign_ctx_t *sign_ctx, int ret_prev,
bool skip_crypto, zone_update_t *up)
{
@@ -959,7 +958,8 @@ static int sign_in_changeset(zone_node_t *node, uint16_t rrtype, knot_rrset_t *r
if (knot_rrset_empty(&rr)) {
return KNOT_EOK;
}
- return add_missing_rrsigs(&rr, rrsigs, sign_ctx, skip_crypto, NULL, up, NULL);
+ knot_rrset_t rrsigs = node_rrset(node, KNOT_RRTYPE_RRSIG);
+ return add_missing_rrsigs(&rr, &rrsigs, sign_ctx, skip_crypto, NULL, up);
}
int knot_zone_sign_nsecs_in_changeset(const zone_keyset_t *zone_keys,
@@ -982,10 +982,9 @@ int knot_zone_sign_nsecs_in_changeset(const zone_keyset_t *zone_keys,
zone_node_t *n = zone_tree_it_val(&it);
bool skip_crypto = (n->flags & NODE_FLAGS_RRSIGS_VALID) && !dnssec_ctx->keytag_conflict;
- knot_rrset_t rrsigs = node_rrset(n, KNOT_RRTYPE_RRSIG);
- ret = sign_in_changeset(n, KNOT_RRTYPE_NSEC, &rrsigs, sign_ctx, ret, skip_crypto, update);
- ret = sign_in_changeset(n, KNOT_RRTYPE_NSEC3, &rrsigs, sign_ctx, ret, skip_crypto, update);
- ret = sign_in_changeset(n, KNOT_RRTYPE_NSEC3PARAM, &rrsigs, sign_ctx, ret, skip_crypto, update);
+ ret = sign_in_changeset(n, KNOT_RRTYPE_NSEC, sign_ctx, ret, skip_crypto, update);
+ ret = sign_in_changeset(n, KNOT_RRTYPE_NSEC3, sign_ctx, ret, skip_crypto, update);
+ ret = sign_in_changeset(n, KNOT_RRTYPE_NSEC3PARAM, sign_ctx, ret, skip_crypto, update);
if (ret == KNOT_EOK) {
n->flags |= NODE_FLAGS_RRSIGS_VALID; // non-NSEC RRSIGs had been validated in knot_dnssec_sign_update()
@@ -1023,10 +1022,9 @@ bool knot_zone_sign_rr_should_be_signed(const zone_node_t *node,
int knot_zone_sign_update(zone_update_t *update,
zone_keyset_t *zone_keys,
- const kdnssec_ctx_t *dnssec_ctx,
- knot_time_t *expire_at)
+ const kdnssec_ctx_t *dnssec_ctx)
{
- if (update == NULL || dnssec_ctx == NULL || expire_at == NULL ||
+ if (update == NULL || dnssec_ctx == NULL ||
dnssec_ctx->policy->signing_threads < 1 ||
(zone_keys == NULL && !dnssec_ctx->validation_mode)) {
return KNOT_EINVAL;
@@ -1038,16 +1036,16 @@ int knot_zone_sign_update(zone_update_t *update,
* If so, we have to sign the whole zone. */
const bool full_sign = apex_dnssec_changed(update);
if (full_sign) {
- ret = knot_zone_sign(update, zone_keys, dnssec_ctx, expire_at);
+ ret = knot_zone_sign(update, zone_keys, dnssec_ctx);
} else {
ret = zone_tree_sign(update->a_ctx->node_ptrs, dnssec_ctx->policy->signing_threads,
- zone_keys, dnssec_ctx, update, expire_at);
+ zone_keys, dnssec_ctx, update);
if (ret == KNOT_EOK) {
ret = zone_tree_apply(update->a_ctx->node_ptrs, set_signed, NULL);
}
if (ret == KNOT_EOK && dnssec_ctx->validation_mode) {
ret = zone_tree_sign(update->a_ctx->nsec3_ptrs, dnssec_ctx->policy->signing_threads,
- zone_keys, dnssec_ctx, update, expire_at);
+ zone_keys, dnssec_ctx, update);
}
if (ret == KNOT_EOK && dnssec_ctx->validation_mode) {
ret = zone_tree_apply(update->a_ctx->nsec3_ptrs, set_signed, NULL);
diff --git a/src/knot/dnssec/zone-sign.h b/src/knot/dnssec/zone-sign.h
index ba6e2b2..480bcf9 100644
--- a/src/knot/dnssec/zone-sign.h
+++ b/src/knot/dnssec/zone-sign.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -81,13 +81,15 @@ keyptr_dynarray_t knot_zone_sign_get_cdnskeys(const kdnssec_ctx_t *ctx,
* \param rrsigs RRSIG with signatures.
* \param sign_ctx Signing context (with keys == NULL)
* \param skip_crypto Crypto operations might be skipped as they had been successful earlier.
+ * \param valid_until End of soonest RRSIG validity.
*
* \return KNOT_E*
*/
int knot_validate_rrsigs(const knot_rrset_t *covered,
const knot_rrset_t *rrsigs,
zone_sign_ctx_t *sign_ctx,
- bool skip_crypto);
+ bool skip_crypto,
+ knot_time_t *valid_until);
/*!
* \brief Update zone signatures and store performed changes in update.
@@ -97,14 +99,12 @@ int knot_validate_rrsigs(const knot_rrset_t *covered,
* \param update Zone Update containing the zone and to be updated with new DNSKEYs and RRSIGs.
* \param zone_keys Zone keys.
* \param dnssec_ctx DNSSEC context.
- * \param expire_at Time, when the oldest signature in the zone expires.
*
* \return Error code, KNOT_EOK if successful.
*/
int knot_zone_sign(zone_update_t *update,
zone_keyset_t *zone_keys,
- const kdnssec_ctx_t *dnssec_ctx,
- knot_time_t *expire_at);
+ const kdnssec_ctx_t *dnssec_ctx);
/*!
* \brief Sign NSEC/NSEC3 nodes in changeset and update the changeset.
@@ -138,14 +138,12 @@ bool knot_zone_sign_rr_should_be_signed(const zone_node_t *node,
* \param update Zone Update structure.
* \param zone_keys Zone keys.
* \param dnssec_ctx DNSSEC context.
- * \param expire_at Time, when the oldest signature in the update expires.
*
* \return Error code, KNOT_EOK if successful.
*/
int knot_zone_sign_update(zone_update_t *update,
zone_keyset_t *zone_keys,
- const kdnssec_ctx_t *dnssec_ctx,
- knot_time_t *expire_at);
+ const kdnssec_ctx_t *dnssec_ctx);
/*!
* \brief Force re-sign of a RRSet in zone apex.
diff --git a/src/knot/events/events.c b/src/knot/events/events.c
index f0de68e..6224006 100644
--- a/src/knot/events/events.c
+++ b/src/knot/events/events.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -46,6 +46,7 @@ static const event_info_t EVENT_INFO[] = {
{ ZONE_EVENT_BACKUP, event_backup, "backup/restore" },
{ ZONE_EVENT_NOTIFY, event_notify, "notify" },
{ ZONE_EVENT_DNSSEC, event_dnssec, "re-sign" },
+ { ZONE_EVENT_VALIDATE, event_validate, "DNSSEC-validate" },
{ ZONE_EVENT_UFREEZE, event_ufreeze, "update-freeze" },
{ ZONE_EVENT_UTHAW, event_uthaw, "update-thaw" },
{ ZONE_EVENT_DS_CHECK, event_ds_check, "DS-check" },
diff --git a/src/knot/events/events.h b/src/knot/events/events.h
index a32d195..cf1b362 100644
--- a/src/knot/events/events.h
+++ b/src/knot/events/events.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -38,6 +38,7 @@ typedef enum zone_event_type {
ZONE_EVENT_BACKUP,
ZONE_EVENT_NOTIFY,
ZONE_EVENT_DNSSEC,
+ ZONE_EVENT_VALIDATE,
ZONE_EVENT_UFREEZE,
ZONE_EVENT_UTHAW,
ZONE_EVENT_DS_CHECK,
diff --git a/src/knot/events/handlers.h b/src/knot/events/handlers.h
index d74fd8a..45b7b45 100644
--- a/src/knot/events/handlers.h
+++ b/src/knot/events/handlers.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -39,6 +39,8 @@ int event_dnssec(conf_t *conf, zone_t *zone);
/*! \brief NOT A HANDLER, just a helper function to reschedule based on reschedule_t */
void event_dnssec_reschedule(conf_t *conf, zone_t *zone,
const zone_sign_reschedule_t *refresh, bool zone_changed);
+/*! \brief Validate the wole zone's DNSSEC. */
+int event_validate(conf_t *conf, zone_t *zone);
/*! \brief Freeze those events causing zone contents change. */
int event_ufreeze(conf_t *conf, zone_t *zone);
/*! \brief Unfreeze zone updates. */
diff --git a/src/knot/events/handlers/dnskey_sync.c b/src/knot/events/handlers/dnskey_sync.c
index c6d80ff..018f66b 100644
--- a/src/knot/events/handlers/dnskey_sync.c
+++ b/src/knot/events/handlers/dnskey_sync.c
@@ -26,8 +26,8 @@
#define DNSKEY_SYNC_LOG(priority, zone, remote, flags, fmt, ...) \
ns_log(priority, zone, LOG_OPERATION_DNSKEY_SYNC, LOG_DIRECTION_OUT, &(remote)->addr, \
- ((flags) & KNOT_REQUESTOR_QUIC) ? KNOTD_QUERY_PROTO_QUIC : KNOTD_QUERY_PROTO_TCP, \
- ((flags) & KNOT_REQUESTOR_REUSED), (remote)->key.name, fmt, ## __VA_ARGS__)
+ flags2proto(flags), ((flags) & KNOT_REQUESTOR_REUSED), (remote)->key.name, \
+ fmt, ## __VA_ARGS__)
static const unsigned remote_rrs[] = { KNOT_RRTYPE_DNSKEY, KNOT_RRTYPE_CDNSKEY, KNOT_RRTYPE_CDS };
#define REMOTE_NTYPES (sizeof(remote_rrs) / sizeof(remote_rrs[0]))
diff --git a/src/knot/events/handlers/ds_push.c b/src/knot/events/handlers/ds_push.c
index be7621f..761b800 100644
--- a/src/knot/events/handlers/ds_push.c
+++ b/src/knot/events/handlers/ds_push.c
@@ -38,8 +38,8 @@ struct ds_push_data {
#define DS_PUSH_LOG(priority, zone, remote, flags, fmt, ...) \
ns_log(priority, zone, LOG_OPERATION_DS_PUSH, LOG_DIRECTION_OUT, &(remote)->addr, \
- ((flags) & KNOT_REQUESTOR_QUIC) ? KNOTD_QUERY_PROTO_QUIC : KNOTD_QUERY_PROTO_TCP, \
- ((flags) & KNOT_REQUESTOR_REUSED), (remote)->key.name, fmt, ## __VA_ARGS__)
+ flags2proto(flags), ((flags) & KNOT_REQUESTOR_REUSED), (remote)->key.name, \
+ fmt, ## __VA_ARGS__)
static const knot_rdata_t remove_cds = { 5, { 0, 0, 0, 0, 0 } };
@@ -53,7 +53,7 @@ static int ds_push_begin(knot_layer_t *layer, void *params)
static int parent_soa_produce(struct ds_push_data *data, knot_pkt_t *pkt)
{
assert(data->parent_query[0] != '\0');
- data->parent_query = knot_wire_next_label(data->parent_query, NULL);
+ data->parent_query = knot_dname_next_label(data->parent_query);
int ret = knot_pkt_put_question(pkt, data->parent_query, KNOT_CLASS_IN, KNOT_RRTYPE_SOA);
if (ret != KNOT_EOK) {
diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c
index 5d44788..ce01ca8 100644
--- a/src/knot/events/handlers/load.c
+++ b/src/knot/events/handlers/load.c
@@ -221,9 +221,10 @@ int event_load(conf_t *conf, zone_t *zone)
ret = zone_update_increment_soa(&up, conf);
}
} else if (zf_conts == NULL) {
- // nothing to be re-loaded
- ret = KNOT_EOK;
- goto cleanup;
+ // nothing to be re-loaded. We could nicely end here...
+ // BUT in case of conf change, it's proper to re-ZONEMD and re-DNSSEC
+ // ALSO replan_load_updated() relies on that DNSSEC event planning cascades from here
+ ret = zone_update_init(&up, zone, UPDATE_INCREMENTAL);
} else if (zf_from == ZONEFILE_LOAD_WHOLE) {
// throw old zone contents and load new from ZF
ret = zone_update_from_contents(&up, zone, zf_conts,
diff --git a/src/knot/events/handlers/notify.c b/src/knot/events/handlers/notify.c
index 9dae70a..9a8b8df 100644
--- a/src/knot/events/handlers/notify.c
+++ b/src/knot/events/handlers/notify.c
@@ -84,8 +84,8 @@ static const knot_layer_api_t NOTIFY_API = {
#define NOTIFY_OUT_LOG(priority, zone, remote, flags, fmt, ...) \
ns_log(priority, zone, LOG_OPERATION_NOTIFY, LOG_DIRECTION_OUT, &(remote)->addr, \
- ((flags) & KNOT_REQUESTOR_QUIC) ? KNOTD_QUERY_PROTO_QUIC : KNOTD_QUERY_PROTO_TCP, \
- ((flags) & KNOT_REQUESTOR_REUSED), (remote)->key.name, fmt, ## __VA_ARGS__)
+ flags2proto(flags), ((flags) & KNOT_REQUESTOR_REUSED), (remote)->key.name, \
+ fmt, ## __VA_ARGS__)
static int send_notify(conf_t *conf, zone_t *zone, const knot_rrset_t *soa,
const conf_remote_t *slave, int timeout, bool retry)
diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c
index 1a23f42..6c22707 100644
--- a/src/knot/events/handlers/refresh.c
+++ b/src/knot/events/handlers/refresh.c
@@ -68,20 +68,24 @@
* \endverbatim
*/
-#define PROTO(data) \
- ((data)->layer->flags & KNOT_REQUESTOR_QUIC) ? KNOTD_QUERY_PROTO_QUIC : KNOTD_QUERY_PROTO_TCP
-
#define REFRESH_LOG(priority, data, msg...) \
ns_log(priority, (data)->zone->name, LOG_OPERATION_REFRESH, LOG_DIRECTION_NONE, \
&(data)->remote->addr, 0, false, (data)->remote->key.name, msg)
+#define REFRESH_LOG_PROTO(priority, data, msg...) \
+ ns_log(priority, (data)->zone->name, LOG_OPERATION_REFRESH, LOG_DIRECTION_NONE, \
+ &(data)->remote->addr, flags2proto((data)->layer->flags), \
+ (data)->layer->flags & KNOT_REQUESTOR_REUSED, (data)->remote->key.name, msg)
+
#define AXFRIN_LOG(priority, data, msg...) \
ns_log(priority, (data)->zone->name, LOG_OPERATION_AXFR, LOG_DIRECTION_IN, \
- &(data)->remote->addr, PROTO(data), (data)->layer->flags & KNOT_REQUESTOR_REUSED, (data)->remote->key.name, msg)
+ &(data)->remote->addr, flags2proto((data)->layer->flags), \
+ (data)->layer->flags & KNOT_REQUESTOR_REUSED, (data)->remote->key.name, msg)
#define IXFRIN_LOG(priority, data, msg...) \
ns_log(priority, (data)->zone->name, LOG_OPERATION_IXFR, LOG_DIRECTION_IN, \
- &(data)->remote->addr, PROTO(data), (data)->layer->flags & KNOT_REQUESTOR_REUSED, (data)->remote->key.name, msg)
+ &(data)->remote->addr, flags2proto((data)->layer->flags), \
+ (data)->layer->flags & KNOT_REQUESTOR_REUSED, (data)->remote->key.name, msg)
enum state {
REFRESH_STATE_INVALID = 0,
@@ -119,7 +123,7 @@ struct refresh_data {
int ret; //!< Error code.
enum state state; //!< Event processing state.
- enum xfr_type xfr_type; //!< Transer type (mostly IXFR versus AXFR).
+ enum xfr_type xfr_type; //!< Transfer type (mostly IXFR versus AXFR).
bool axfr_style_ixfr; //!< Master responded with AXFR-style-IXFR.
knot_rrset_t *initial_soa_copy; //!< Copy of the received initial SOA.
struct xfr_stats stats; //!< Transfer statistics.
@@ -1080,9 +1084,9 @@ static int soa_query_consume(knot_layer_t *layer, knot_pkt_t *pkt)
struct refresh_data *data = layer->data;
if (knot_pkt_ext_rcode(pkt) != KNOT_RCODE_NOERROR) {
- REFRESH_LOG(LOG_WARNING, data,
- "server responded with error '%s'",
- knot_pkt_ext_rcode_name(pkt));
+ REFRESH_LOG_PROTO(LOG_WARNING, data,
+ "server responded with error '%s'",
+ knot_pkt_ext_rcode_name(pkt));
data->ret = KNOT_EDENIED;
return KNOT_STATE_FAIL;
}
@@ -1090,8 +1094,7 @@ static int soa_query_consume(knot_layer_t *layer, knot_pkt_t *pkt)
const knot_pktsection_t *answer = knot_pkt_section(pkt, KNOT_ANSWER);
const knot_rrset_t *rr = answer->count == 1 ? knot_pkt_rr(answer, 0) : NULL;
if (!rr || rr->type != KNOT_RRTYPE_SOA || rr->rrs.count != 1) {
- REFRESH_LOG(LOG_WARNING, data,
- "malformed message");
+ REFRESH_LOG_PROTO(LOG_WARNING, data, "malformed message");
conf_val_t val = conf_zone_get(data->conf, C_SEM_CHECKS, data->zone->name);
if (conf_opt(&val) == SEMCHECKS_SOFT) {
data->xfr_type = XFR_TYPE_AXFR;
@@ -1116,9 +1119,9 @@ static int soa_query_consume(knot_layer_t *layer, knot_pkt_t *pkt)
if (!current) {
if (wait4pinned_master(data)) {
- REFRESH_LOG(LOG_INFO, data,
- "remote serial %u, zone is outdated, waiting for pinned master",
- remote_serial);
+ REFRESH_LOG_PROTO(LOG_INFO, data,
+ "remote serial %u, zone is outdated, waiting for pinned master",
+ remote_serial);
return KNOT_STATE_DONE;
}
REFRESH_LOG(LOG_INFO, data,
@@ -1130,14 +1133,14 @@ static int soa_query_consume(knot_layer_t *layer, knot_pkt_t *pkt)
finalize_timers(data);
char expires_in[32] = "";
fill_expires_in(expires_in, sizeof(expires_in), data);
- REFRESH_LOG(LOG_INFO, data,
- "remote serial %u, zone is up-to-date%s",
- remote_serial, expires_in);
+ REFRESH_LOG_PROTO(LOG_INFO, data,
+ "remote serial %u, zone is up-to-date%s",
+ remote_serial, expires_in);
return KNOT_STATE_DONE;
} else {
finalize_timers_noexpire(data);
- REFRESH_LOG(LOG_INFO, data,
- "remote serial %u, remote is outdated", remote_serial);
+ REFRESH_LOG_PROTO(LOG_INFO, data,
+ "remote serial %u, remote is outdated", remote_serial);
return KNOT_STATE_DONE;
}
}
@@ -1197,14 +1200,33 @@ static int transfer_consume(knot_layer_t *layer, knot_pkt_t *pkt)
// Transfer completed
if (next == KNOT_STATE_DONE) {
// Log transfer even if we still can fail
+ uint32_t serial;
+ switch (data->xfr_type) {
+ case XFR_TYPE_AXFR:
+ serial = zone_contents_serial(data->axfr.zone);
+ break;
+ case XFR_TYPE_IXFR:
+ serial = knot_soa_serial(data->ixfr.final_soa->rrs.rdata);
+ break;
+ case XFR_TYPE_UPTODATE:
+ if (slave_zone_serial(data->zone, data->conf, &serial) == KNOT_EOK) {
+ break;
+ }
+ // FALLTHROUGH
+ default:
+ serial = 0;
+ }
+ char serial_log[32];
+ (void)snprintf(serial_log, sizeof(serial_log),
+ " remote serial %u,", serial);
xfr_log_finished(data->zone->name,
data->xfr_type == XFR_TYPE_IXFR ||
data->xfr_type == XFR_TYPE_UPTODATE ?
LOG_OPERATION_IXFR : LOG_OPERATION_AXFR,
LOG_DIRECTION_IN, &data->remote->addr,
- (layer->flags & KNOT_REQUESTOR_QUIC ?
- KNOTD_QUERY_PROTO_QUIC : KNOTD_QUERY_PROTO_TCP),
- data->remote->key.name, &data->stats);
+ flags2proto(layer->flags),
+ data->remote->key.name,
+ serial_log, &data->stats);
/*
* TODO: Move finialization into finish
diff --git a/src/knot/events/handlers/update.c b/src/knot/events/handlers/update.c
index b4092a3..2c6758c 100644
--- a/src/knot/events/handlers/update.c
+++ b/src/knot/events/handlers/update.c
@@ -28,6 +28,9 @@
#include "knot/zone/zone.h"
#include "libdnssec/random.h"
#include "libknot/libknot.h"
+#include "libknot/quic/quic_conn.h"
+#include "libknot/quic/quic.h"
+#include "libknot/quic/tls.h"
#include "contrib/net.h"
#include "contrib/time.h"
@@ -51,6 +54,33 @@ static void init_qdata_from_request(knotd_qdata_t *qdata,
qdata->extra->zone = zone;
}
+#ifdef ENABLE_QUIC
+static int ddnsq_alloc_reply(knot_quic_reply_t *r)
+{
+ r->out_payload->iov_len = KNOT_WIRE_MAX_PKTSIZE;
+
+ return KNOT_EOK;
+}
+
+static int ddnsq_send_reply(knot_quic_reply_t *r)
+{
+ int fd = *(int *)r->sock;
+ int ret = net_dgram_send(fd, r->out_payload->iov_base, r->out_payload->iov_len, r->ip_rem);
+ if (ret < 0) {
+ return knot_map_errno();
+ } else if (ret == r->out_payload->iov_len) {
+ return KNOT_EOK;
+ } else {
+ return KNOT_EAGAIN;
+ }
+}
+
+static void ddnsq_free_reply(knot_quic_reply_t *r)
+{
+ r->out_payload->iov_len = 0;
+}
+#endif // ENABLE_QUIC
+
static int check_prereqs(knot_request_t *request,
zone_update_t *update,
knotd_qdata_t *qdata)
@@ -65,6 +95,15 @@ static int check_prereqs(knot_request_t *request,
return ret;
}
+ ret = ddns_precheck_update(request->query, update, &rcode);
+ if (ret != KNOT_EOK) {
+ UPDATE_LOG(LOG_WARNING, qdata, "broken update format (%s)",
+ knot_strerror(ret));
+ assert(rcode != KNOT_RCODE_NOERROR);
+ knot_wire_set_rcode(request->resp->wire, rcode);
+ return ret;
+ }
+
return KNOT_EOK;
}
@@ -104,6 +143,7 @@ static int process_bulk(zone_t *zone, list_t *requests, zone_update_t *up)
knot_request_t *req = node->d;
// Init qdata structure for logging (unique per-request).
knotd_qdata_params_t params = {
+ .proto = flags2proto(req->flags),
.remote = &req->remote
};
knotd_qdata_t qdata;
@@ -118,6 +158,8 @@ static int process_bulk(zone_t *zone, list_t *requests, zone_update_t *up)
ret = process_single_update(req, up, &qdata);
if (ret != KNOT_EOK) {
+ log_zone_error(zone->name, "DDNS, dropping %zu updates in a bulk",
+ list_size(requests));
return ret;
}
}
@@ -338,6 +380,39 @@ static void send_update_response(conf_t *conf, zone_t *zone, knot_request_t *req
(void)process_query_sign_response(req->resp, &qdata);
}
+ if (net_is_stream(req->fd) && req->tls_req_ctx.conn != NULL) {
+ (void)knot_tls_send_dns(req->tls_req_ctx.conn,
+ req->resp->wire, req->resp->size);
+ knot_tls_conn_block(req->tls_req_ctx.conn, false);
+ }
+#ifdef ENABLE_QUIC
+ else if (req->quic_conn != NULL) {
+ assert(!net_is_stream(req->fd));
+ uint8_t op_buf[KNOT_WIRE_MAX_PKTSIZE];
+ struct iovec out_payload = { .iov_base = op_buf, .iov_len = sizeof(op_buf) };
+ knot_quic_reply_t rpl = {
+ .ip_rem = &req->remote,
+ .ip_loc = &req->source,
+ .in_payload = NULL,
+ .out_payload = &out_payload,
+ .sock = &req->fd,
+ .alloc_reply = ddnsq_alloc_reply,
+ .send_reply = ddnsq_send_reply,
+ .free_reply = ddnsq_free_reply
+ };
+
+ void *succ = knot_quic_stream_add_data(req->quic_conn, req->quic_stream,
+ req->resp->wire, req->resp->size);
+ if (succ != NULL) { // else ENOMEM
+ (void)knot_quic_send(req->quic_conn->quic_table, req->quic_conn,
+ &rpl, 4, KNOT_QUIC_SEND_IGNORE_BLOCKED);
+ }
+ knot_quic_conn_block(req->quic_conn, false);
+ } else // NOTE ties to 'if' below
+#else
+ assert(req->quic_conn == NULL);
+#endif // ENABLE_QUIC
+
if (net_is_stream(req->fd)) {
net_dns_tcp_send(req->fd, req->resp->wire, req->resp->size,
conf->cache.srv_tcp_remote_io_timeout, NULL);
@@ -348,22 +423,13 @@ static void send_update_response(conf_t *conf, zone_t *zone, knot_request_t *req
}
}
-static void free_request(knot_request_t *req)
-{
- close(req->fd);
- knot_pkt_free(req->query);
- knot_pkt_free(req->resp);
- dnssec_binary_free(&req->sign.tsig_key.secret);
- free(req);
-}
-
static void send_update_responses(conf_t *conf, zone_t *zone, list_t *updates)
{
ptrnode_t *node, *nxt;
WALK_LIST_DELSAFE(node, nxt, *updates) {
knot_request_t *req = node->d;
send_update_response(conf, zone, req);
- free_request(req);
+ knot_request_free(req, NULL);
}
ptrlist_free(updates, NULL);
}
diff --git a/src/knot/events/handlers/validate.c b/src/knot/events/handlers/validate.c
new file mode 100644
index 0000000..e410b4f
--- /dev/null
+++ b/src/knot/events/handlers/validate.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#include "knot/common/log.h"
+#include "knot/conf/conf.h"
+#include "knot/dnssec/zone-events.h"
+#include "knot/zone/zone.h"
+
+int event_validate(conf_t *conf, zone_t *zone)
+{
+ knot_time_t now = knot_time();
+ zone_update_t fake_upd = {
+ .zone = zone,
+ .new_cont = zone->contents,
+ // .validation_hint is zeroed
+ };
+
+ log_zone_info(zone->name, "DNSSEC, re-validating zone fully");
+
+ return knot_dnssec_validate_zone(&fake_upd, conf, now, false, true);
+}
diff --git a/src/knot/events/replan.c b/src/knot/events/replan.c
index ed03fe1..29a07ea 100644
--- a/src/knot/events/replan.c
+++ b/src/knot/events/replan.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -108,6 +108,9 @@ void replan_from_timers(conf_t *conf, zone_t *zone)
if (zone->contents == NULL && zone->timers.last_refresh_ok) { // zone disappeared w/o expiry
refresh = now;
}
+ if (refresh == 0) { // sanitize in case of concurrent purge event
+ refresh = now;
+ }
assert(refresh > 0);
}
diff --git a/src/knot/include/module.h b/src/knot/include/module.h
index 15a9077..9998e48 100644
--- a/src/knot/include/module.h
+++ b/src/knot/include/module.h
@@ -36,7 +36,7 @@
/*** Query module API. ***/
/*! Current module ABI version. */
-#define KNOTD_MOD_ABI_VERSION 500
+#define KNOTD_MOD_ABI_VERSION 600
/*! Module configuration name prefix. */
#define KNOTD_MOD_NAME_PREFIX "mod-"
@@ -354,7 +354,7 @@ knotd_conf_t knotd_conf_check_item(knotd_conf_check_args_t *args,
const yp_name_t *item_name);
/*!
- * \brief Checks if address is in at least one of given ranges.
+ * Checks if address is in at least one of given ranges.
*
* \param[in] range
* \param[in] addr
@@ -393,11 +393,13 @@ typedef enum {
KNOTD_QUERY_PROTO_UDP = KNOT_PROBE_PROTO_UDP, /*!< Pure UDP. */
KNOTD_QUERY_PROTO_TCP = KNOT_PROBE_PROTO_TCP, /*!< Pure TCP. */
KNOTD_QUERY_PROTO_QUIC = KNOT_PROBE_PROTO_QUIC, /*!< QUIC/UDP. */
+ KNOTD_QUERY_PROTO_TLS = KNOT_PROBE_PROTO_TLS, /*!< TLS/TCP. */
} knotd_query_proto_t;
/*! Query processing specific flags. */
typedef enum {
- KNOTD_QUERY_FLAG_COOKIE = 1 << 0, /*!< Valid DNS Cookie indication. */
+ KNOTD_QUERY_FLAG_COOKIE = 1 << 0, /*!< Valid DNS Cookie indication. */
+ KNOTD_QUERY_FLAG_AUTHORIZED = 1 << 1, /*!< Successfully authorized operation. */
} knotd_query_flag_t;
/*! Query processing data context parameters. */
@@ -411,6 +413,7 @@ typedef struct {
void *server; /*!< Server object private item. */
const struct knot_xdp_msg *xdp_msg; /*!< Possible XDP message context. */
struct knot_quic_conn *quic_conn; /*!< QUIC connection context. */
+ struct knot_tls_conn *tls_conn; /*!< TLS connection context. */
int64_t quic_stream; /*!< QUIC stream ID inside quic_conn. */
uint32_t measured_rtt; /*!< Measured RTT in usecs: QUIC or TCP-XDP. */
} knotd_qdata_params_t;
@@ -493,6 +496,7 @@ knot_rrset_t knotd_qdata_zone_apex_rrset(const knotd_qdata_t *qdata, uint16_t ty
* \param[in] qdata Query data.
* \param[in] zone_name Optional zone name, the current one otherwise.
* \param[in] node_name Optional node name, apex otherwise.
+ * \param[in] type RRSet type.
* \param[out] out Destination rrset to store the output to.
*
* \return Error code (KNOT_ENOZONE, KNOT_EEMPTYZONE, KNOT_ENONODE), KNOT_EOK if success.
@@ -501,6 +505,12 @@ int knotd_qdata_zone_rrset(const knotd_qdata_t *qdata, const knot_dname_t *zone_
const knot_dname_t *node_name, uint16_t type,
knot_rrset_t *out);
+/*! Transport protocol processing states. */
+typedef enum {
+ KNOTD_PROTO_STATE_PASS = 0, /*!< Process normally. */
+ KNOTD_PROTO_STATE_BLOCK = 1, /*!< Block the packet/connection. */
+} knotd_proto_state_t;
+
/*! General query processing states. */
typedef enum {
KNOTD_STATE_NOOP = 0, /*!< No response. */
@@ -509,7 +519,7 @@ typedef enum {
KNOTD_STATE_FINAL = 6, /*!< Finished and finalized (QNAME, EDNS, TSIG). */
} knotd_state_t;
-/*! brief Internet query processing states. */
+/*! Internet query processing states. */
typedef enum {
KNOTD_IN_STATE_BEGIN, /*!< Begin name resolution. */
KNOTD_IN_STATE_NODATA, /*!< Positive result with NO data. */
@@ -523,15 +533,29 @@ typedef enum {
/*! Query module processing stages. */
typedef enum {
- KNOTD_STAGE_BEGIN = 0, /*!< Before query processing. */
- KNOTD_STAGE_PREANSWER, /*!< Before section processing. */
- KNOTD_STAGE_ANSWER, /*!< Answer section processing. */
- KNOTD_STAGE_AUTHORITY, /*!< Authority section processing. */
- KNOTD_STAGE_ADDITIONAL, /*!< Additional section processing. */
- KNOTD_STAGE_END, /*!< After query processing. */
+ KNOTD_STAGE_PROTO_BEGIN = 0, /*!< Start of transport protocol processing. */
+ KNOTD_STAGE_BEGIN, /*!< Before query processing. */
+ KNOTD_STAGE_PREANSWER, /*!< Before section processing. */
+ KNOTD_STAGE_ANSWER, /*!< Answer section processing. */
+ KNOTD_STAGE_AUTHORITY, /*!< Authority section processing. */
+ KNOTD_STAGE_ADDITIONAL, /*!< Additional section processing. */
+ KNOTD_STAGE_END, /*!< After query processing. */
+ KNOTD_STAGE_PROTO_END, /*!< End of transport protocol processing. */
} knotd_stage_t;
/*!
+ * Transport protocol processing hook.
+ *
+ * \param[in] state Current processing state.
+ * \param[in] params Processing parameters.
+ * \param[in] mod Module context.
+ *
+ * \return Next processing state.
+ */
+typedef knotd_proto_state_t (*knotd_mod_proto_hook_f)
+ (knotd_proto_state_t state, knotd_qdata_params_t *params, knotd_mod_t *mod);
+
+/*!
* General processing hook.
*
* \param[in] state Current processing state.
@@ -558,6 +582,17 @@ typedef knotd_in_state_t (*knotd_mod_in_hook_f)
(knotd_in_state_t state, knot_pkt_t *pkt, knotd_qdata_t *qdata, knotd_mod_t *mod);
/*!
+ * Registers transport protocol processing module hook.
+ *
+ * \param[in] mod Module context.
+ * \param[in] stage Processing stage (KNOTD_STAGE_PROTO_BEGIN or KNOTD_STAGE_PROTO_END).
+ * \param[in] hook Module hook.
+ *
+ * \return Error code, KNOT_EOK if success.
+ */
+int knotd_mod_proto_hook(knotd_mod_t *mod, knotd_stage_t stage, knotd_mod_proto_hook_f hook);
+
+/*!
* Registers general processing module hook.
*
* \param[in] mod Module context.
diff --git a/src/knot/modules/authsignal/authsignal.rst b/src/knot/modules/authsignal/authsignal.rst
index d3a52ad..8d4c9a0 100644
--- a/src/knot/modules/authsignal/authsignal.rst
+++ b/src/knot/modules/authsignal/authsignal.rst
@@ -4,12 +4,12 @@
=====================================================================
This module is able to synthesize records for automatic DNSSEC bootstrapping
-(draft-ietf-dnsop-dnssec-bootstrapping).
+(:rfc:`9615`).
Records are synthesized only if the query can't be satisfied from the zone.
-Synthesized records also need to be signed. Typically, this would be done
-using the :ref:`onlinesign<mod-onlinesign>` module.
+Synthesized records also need to be signed. Typically, this can be done
+using the :ref:`onlinesign<mod-onlinesign>` module, as shown below.
Example
-------
diff --git a/src/knot/modules/cookies/cookies.c b/src/knot/modules/cookies/cookies.c
index 34c4b22..48eca7d 100644
--- a/src/knot/modules/cookies/cookies.c
+++ b/src/knot/modules/cookies/cookies.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,19 +20,10 @@
#include "knot/include/module.h"
#include "libknot/libknot.h"
+#include "contrib/atomic.h"
#include "contrib/string.h"
#include "libdnssec/random.h"
-#ifdef HAVE_ATOMIC
-#define ATOMIC_SET(dst, val) __atomic_store_n(&(dst), (val), __ATOMIC_RELAXED)
-#define ATOMIC_GET(src) __atomic_load_n(&(src), __ATOMIC_RELAXED)
-#define ATOMIC_ADD(dst, val) __atomic_add_fetch(&(dst), (val), __ATOMIC_RELAXED)
-#else
-#define ATOMIC_SET(dst, val) ((dst) = (val))
-#define ATOMIC_GET(src) (src)
-#define ATOMIC_ADD(dst, val) ((dst) += (val))
-#endif
-
#define BADCOOKIE_CTR_INIT 1
#define MOD_SECRET_LIFETIME "\x0F""secret-lifetime"
@@ -59,13 +50,13 @@ int cookies_conf_check(knotd_conf_check_args_t *args)
typedef struct {
struct {
- uint64_t variable;
+ knot_atomic_uint64_t variable;
uint64_t constant;
} secret;
pthread_t update_secret;
uint32_t secret_lifetime;
uint32_t badcookie_slip;
- uint16_t badcookie_ctr; // Counter for BADCOOKIE answers.
+ knot_atomic_uint16_t badcookie_ctr; // Counter for BADCOOKIE answers.
} cookies_ctx_t;
static void update_ctr(cookies_ctx_t *ctx)
@@ -285,7 +276,7 @@ int cookies_load(knotd_mod_t *mod)
}
}
-#ifndef HAVE_ATOMIC
+#ifndef KNOT_HAVE_ATOMIC
knotd_mod_log(mod, LOG_WARNING, "the module might work slightly wrong on this platform");
ctx->badcookie_slip = 1;
#endif
diff --git a/src/knot/modules/dnsproxy/dnsproxy.c b/src/knot/modules/dnsproxy/dnsproxy.c
index d51db53..77c60c4 100644
--- a/src/knot/modules/dnsproxy/dnsproxy.c
+++ b/src/knot/modules/dnsproxy/dnsproxy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,6 +19,7 @@
#include "knot/conf/schema.h"
#include "knot/query/capture.h" // Forces static module!
#include "knot/query/requestor.h" // Forces static module!
+#include "libknot/xdp.h"
#define MOD_REMOTE "\x06""remote"
#define MOD_ADDRESS "\x07""address"
@@ -61,6 +62,14 @@ typedef struct {
static int fwd(dnsproxy_t *proxy, knot_pkt_t *pkt, knotd_qdata_t *qdata, int addr_pos)
{
+ /* Copy the query as the requestor modifies and frees it. */
+ knot_pkt_t *query = knot_pkt_new(NULL, KNOT_WIRE_MAX_PKTSIZE, NULL);
+ int ret = knot_pkt_copy(query, qdata->query);
+ if (ret != KNOT_EOK) {
+ knot_pkt_free(query);
+ return ret;
+ }
+
/* Capture layer context. */
const knot_layer_api_t *capture = query_capture_api();
struct capture_param capture_param = {
@@ -69,33 +78,57 @@ static int fwd(dnsproxy_t *proxy, knot_pkt_t *pkt, knotd_qdata_t *qdata, int add
/* Create a forwarding request. */
knot_requestor_t re;
- int ret = knot_requestor_init(&re, capture, &capture_param, qdata->mm);
+ ret = knot_requestor_init(&re, capture, &capture_param, qdata->mm);
if (ret != KNOT_EOK) {
+ knot_pkt_free(query);
return ret;
}
+ bool udp = false;
+ if (qdata->params->xdp_msg == NULL) {
+ if (!net_is_stream(qdata->params->socket)) {
+ udp = true;
+ }
+ }
+#if ENABLE_XDP
+ else {
+ if (!(qdata->params->xdp_msg->flags & KNOT_XDP_MSG_TCP)) {
+ udp = true;
+ }
+ }
+#endif
+
knot_request_flag_t flags = KNOT_REQUEST_NONE;
- if (!net_is_stream(qdata->params->socket)) {
+ if (udp) {
flags = KNOT_REQUEST_UDP;
} else if (proxy->tfo) {
flags = KNOT_REQUEST_TFO;
}
+ if (query->tsig_rr != NULL) {
+ knot_tsig_append(query->wire, &query->size, query->max_size, query->tsig_rr);
+ }
+
const struct sockaddr_storage *dst = &proxy->remote.multi[addr_pos].addr;
const struct sockaddr_storage *src = NULL;
if (addr_pos < proxy->via.count) { // Simplified via address selection!
src = &proxy->via.multi[addr_pos].addr;
}
- knot_request_t *req = knot_request_make_generic(re.mm, dst, src, qdata->query,
+ knot_request_t *req = knot_request_make_generic(re.mm, dst, src, query,
NULL, NULL, NULL, NULL, 0, flags);
if (req == NULL) {
knot_requestor_clear(&re);
+ knot_pkt_free(query);
return KNOT_ENOMEM;
}
/* Forward request. */
ret = knot_requestor_exec(&re, req, proxy->timeout);
+ if (pkt->tsig_rr != NULL) {
+ knot_tsig_append(pkt->wire, &pkt->size, pkt->max_size, pkt->tsig_rr);
+ }
+
knot_request_free(req, re.mm);
knot_requestor_clear(&re);
@@ -123,12 +156,6 @@ static knotd_state_t dnsproxy_fwd(knotd_state_t state, knot_pkt_t *pkt,
}
}
- /* Forward also original TSIG. */
- if (qdata->query->tsig_rr != NULL && !proxy->fallback) {
- knot_tsig_append(qdata->query->wire, &qdata->query->size,
- qdata->query->max_size, qdata->query->tsig_rr);
- }
-
int ret = KNOT_EOK;
/* Try to forward the packet. */
@@ -147,11 +174,6 @@ static knotd_state_t dnsproxy_fwd(knotd_state_t state, knot_pkt_t *pkt,
qdata->rcode = knot_pkt_ext_rcode(pkt);
}
- /* Respond also with TSIG. */
- if (pkt->tsig_rr != NULL && !proxy->fallback) {
- knot_tsig_append(pkt->wire, &pkt->size, pkt->max_size, pkt->tsig_rr);
- }
-
return (proxy->fallback ? KNOTD_STATE_DONE : KNOTD_STATE_FINAL);
}
diff --git a/src/knot/modules/probe/probe.c b/src/knot/modules/probe/probe.c
index 9207308..3e0a646 100644
--- a/src/knot/modules/probe/probe.c
+++ b/src/knot/modules/probe/probe.c
@@ -19,18 +19,11 @@
#include "knot/conf/schema.h"
#include "knot/include/module.h"
+#include "contrib/atomic.h"
#include "contrib/string.h"
#include "contrib/time.h"
#include "libknot/libknot.h"
-#ifdef HAVE_ATOMIC
-#define ATOMIC_SET(dst, val) __atomic_store_n(&(dst), (val), __ATOMIC_RELAXED)
-#define ATOMIC_GET(src) __atomic_load_n(&(src), __ATOMIC_RELAXED)
-#else
-#define ATOMIC_SET(dst, val) ((dst) = (val))
-#define ATOMIC_GET(src) (src)
-#endif
-
#define MOD_PATH "\x04""path"
#define MOD_CHANNELS "\x08""channels"
#define MOD_MAX_RATE "\x08""max-rate"
@@ -45,7 +38,7 @@ const yp_item_t probe_conf[] = {
typedef struct {
knot_probe_t **probes;
size_t probe_count;
- uint64_t *last_times;
+ knot_atomic_uint64_t *last_times;
uint64_t min_diff_ns;
char *path;
} probe_ctx_t;
@@ -139,7 +132,7 @@ int probe_load(knotd_mod_t *mod)
return KNOT_ENOMEM;
}
- ctx->last_times = calloc(ctx->probe_count, sizeof(uint64_t));
+ ctx->last_times = calloc(ctx->probe_count, sizeof(*ctx->last_times));
if (ctx->last_times == NULL) {
free_probe_ctx(ctx);
return KNOT_ENOMEM;
diff --git a/src/knot/modules/rrl/Makefile.inc b/src/knot/modules/rrl/Makefile.inc
index d82edf9..fbb9eb0 100644
--- a/src/knot/modules/rrl/Makefile.inc
+++ b/src/knot/modules/rrl/Makefile.inc
@@ -1,15 +1,20 @@
knot_modules_rrl_la_SOURCES = knot/modules/rrl/rrl.c \
knot/modules/rrl/functions.c \
- knot/modules/rrl/functions.h
+ knot/modules/rrl/functions.h \
+ knot/modules/rrl/kru-generic.c \
+ knot/modules/rrl/kru-avx2.c \
+ knot/modules/rrl/kru.h
+noinst_HEADERS = knot/modules/rrl/kru.inc.c
EXTRA_DIST += knot/modules/rrl/rrl.rst
if STATIC_MODULE_rrl
libknotd_la_SOURCES += $(knot_modules_rrl_la_SOURCES)
+libknotd_la_LIBADD += $(math_LIBS)
endif
if SHARED_MODULE_rrl
knot_modules_rrl_la_LDFLAGS = $(KNOTD_MOD_LDFLAGS)
knot_modules_rrl_la_CPPFLAGS = $(KNOTD_MOD_CPPFLAGS)
-knot_modules_rrl_la_LIBADD = $(libcontrib_LIBS)
+knot_modules_rrl_la_LIBADD = $(libcontrib_LIBS) $(math_LIBS)
pkglib_LTLIBRARIES += knot/modules/rrl.la
endif
diff --git a/src/knot/modules/rrl/functions.c b/src/knot/modules/rrl/functions.c
index df35394..01d89cb 100644
--- a/src/knot/modules/rrl/functions.c
+++ b/src/knot/modules/rrl/functions.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -14,516 +14,223 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-#include <assert.h>
+#include <stdatomic.h>
#include <time.h>
#include "knot/modules/rrl/functions.h"
+#include "knot/modules/rrl/kru.h"
+#include "contrib/macros.h"
#include "contrib/musl/inet_ntop.h"
-#include "contrib/openbsd/strlcat.h"
#include "contrib/sockaddr.h"
#include "contrib/time.h"
-#include "libdnssec/error.h"
#include "libdnssec/random.h"
-/* Hopscotch defines. */
-#define HOP_LEN (sizeof(unsigned)*8)
-/* Limits (class, ipv6 remote, dname) */
-#define RRL_CLSBLK_MAXLEN (1 + 8 + 255)
-/* CIDR block prefix lengths for v4/v6 */
-#define RRL_V4_PREFIX_LEN 3 /* /24 */
-#define RRL_V6_PREFIX_LEN 7 /* /56 */
-/* Defaults */
-#define RRL_SSTART 2 /* 1/Nth of the rate for slow start */
-#define RRL_PSIZE_LARGE 1024
-#define RRL_CAPACITY 4 /* Window size in seconds */
-#define RRL_LOCK_GRANULARITY 32 /* Last digit granularity */
-
-/* Classification */
-enum {
- CLS_NULL = 0 << 0, /* Empty bucket. */
- CLS_NORMAL = 1 << 0, /* Normal response. */
- CLS_ERROR = 1 << 1, /* Error response. */
- CLS_NXDOMAIN = 1 << 2, /* NXDOMAIN (special case of error). */
- CLS_EMPTY = 1 << 3, /* Empty response. */
- CLS_LARGE = 1 << 4, /* Response size over threshold (1024k). */
- CLS_WILDCARD = 1 << 5, /* Wildcard query. */
- CLS_ANY = 1 << 6, /* ANY query (spec. class). */
- CLS_DNSSEC = 1 << 7 /* DNSSEC related RR query (spec. class) */
-};
+// CIDR block prefix lengths for v4/v6 (hardcoded also in unit tests).
+#define RRL_V4_PREFIXES (uint8_t[]) { 18, 20, 24, 32 }
+#define RRL_V4_RATE_MULT (kru_price_t[]) { 768, 256, 32, 1 }
-/* Classification string. */
-struct cls_name {
- int code;
- const char *name;
-};
+#define RRL_V6_PREFIXES (uint8_t[]) { 32, 48, 56, 64, 128 }
+#define RRL_V6_RATE_MULT (kru_price_t[]) { 64, 4, 3, 2, 1 }
-static const struct cls_name rrl_cls_names[] = {
- { CLS_NORMAL, "POSITIVE" },
- { CLS_ERROR, "ERROR" },
- { CLS_NXDOMAIN, "NXDOMAIN"},
- { CLS_EMPTY, "EMPTY"},
- { CLS_LARGE, "LARGE"},
- { CLS_WILDCARD, "WILDCARD"},
- { CLS_ANY, "ANY"},
- { CLS_DNSSEC, "DNSSEC"},
- { CLS_NULL, "NULL"},
- { CLS_NULL, NULL}
-};
+#define RRL_V4_PREFIXES_CNT (sizeof(RRL_V4_PREFIXES) / sizeof(*RRL_V4_PREFIXES))
+#define RRL_V6_PREFIXES_CNT (sizeof(RRL_V6_PREFIXES) / sizeof(*RRL_V6_PREFIXES))
+#define RRL_MAX_PREFIXES_CNT ((RRL_V4_PREFIXES_CNT > RRL_V6_PREFIXES_CNT) ? RRL_V4_PREFIXES_CNT : RRL_V6_PREFIXES_CNT)
-static inline const char *rrl_clsstr(int code)
-{
- for (const struct cls_name *c = rrl_cls_names; c->name; c++) {
- if (c->code == code) {
- return c->name;
- }
- }
+#ifndef CLOCK_MONOTONIC_COARSE
+#define CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC
+#endif
- return "unknown class";
-}
+#define RRL_LIMIT_KOEF 1/2 // Avoid probabilistic rounding wherever possible.
-/* Bucket flags. */
-enum {
- RRL_BF_NULL = 0 << 0, /* No flags. */
- RRL_BF_SSTART = 1 << 0, /* Bucket in slow-start after collision. */
- RRL_BF_ELIMIT = 1 << 1 /* Bucket is rate-limited. */
+struct rrl_table {
+ kru_price_t v4_prices[RRL_V4_PREFIXES_CNT];
+ kru_price_t v6_prices[RRL_V6_PREFIXES_CNT];
+ uint32_t log_period;
+ bool rw_mode;
+ _Atomic uint32_t log_time;
+ _Alignas(64) uint8_t kru[];
};
-static uint8_t rrl_clsid(rrl_req_t *p)
-{
- /* Check error code */
- int ret = CLS_NULL;
- switch (knot_wire_get_rcode(p->wire)) {
- case KNOT_RCODE_NOERROR: ret = CLS_NORMAL; break;
- case KNOT_RCODE_NXDOMAIN: return CLS_NXDOMAIN; break;
- default: return CLS_ERROR; break;
- }
-
- /* Check if answered from a qname */
- if (ret == CLS_NORMAL && p->flags & RRL_REQ_WILDCARD) {
- return CLS_WILDCARD;
- }
-
- /* Check query type for spec. classes. */
- if (p->query) {
- switch(knot_pkt_qtype(p->query)) {
- case KNOT_RRTYPE_ANY: /* ANY spec. class */
- return CLS_ANY;
- break;
- case KNOT_RRTYPE_DNSKEY:
- case KNOT_RRTYPE_RRSIG:
- case KNOT_RRTYPE_DS: /* DNSSEC-related RR class. */
- return CLS_DNSSEC;
- break;
- default:
- break;
- }
- }
-
- /* Check packet size for threshold. */
- if (p->len >= RRL_PSIZE_LARGE) {
- return CLS_LARGE;
- }
-
- /* Check ancount */
- if (knot_wire_get_ancount(p->wire) == 0) {
- return CLS_EMPTY;
- }
-
- return ret;
-}
-
-static int rrl_clsname(uint8_t *dst, size_t maxlen, uint8_t cls, rrl_req_t *req,
- const knot_dname_t *name)
+static void addr_tostr(char *dst, size_t maxlen, const struct sockaddr_storage *ss)
{
- if (name == NULL) {
- /* Fallback for errors etc. */
- name = (const knot_dname_t *)"\x00";
- }
-
- switch (cls) {
- case CLS_ERROR: /* Could be a non-existent zone or garbage. */
- case CLS_NXDOMAIN: /* Queries to non-existent names in zone. */
- case CLS_WILDCARD: /* Queries to names covered by a wildcard. */
- break;
- default:
- /* Use QNAME */
- if (req->query) {
- name = knot_pkt_qname(req->query);
- }
- break;
- }
+ assert(ss);
- /* Write to wire */
- return knot_dname_to_wire(dst, name, maxlen);
-}
-
-static int rrl_classify(uint8_t *dst, size_t maxlen, const struct sockaddr_storage *remote,
- rrl_req_t *req, const knot_dname_t *name)
-{
- /* Class */
- uint8_t cls = rrl_clsid(req);
- *dst = cls;
- int blklen = sizeof(cls);
-
- /* Address (in network byteorder, adjust masks). */
- uint64_t netblk = 0;
- if (remote->ss_family == AF_INET6) {
- struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)remote;
- memcpy(&netblk, &ipv6->sin6_addr, RRL_V6_PREFIX_LEN);
- } else {
- struct sockaddr_in *ipv4 = (struct sockaddr_in *)remote;
- memcpy(&netblk, &ipv4->sin_addr, RRL_V4_PREFIX_LEN);
- }
- memcpy(dst + blklen, &netblk, sizeof(netblk));
- blklen += sizeof(netblk);
-
- /* Name */
- int ret = rrl_clsname(dst + blklen, maxlen - blklen, cls, req, name);
- if (ret < 0) {
- return ret;
- }
- uint8_t len = ret;
- blklen += len;
-
- return blklen;
-}
-
-static int bucket_free(rrl_item_t *bucket, uint32_t now)
-{
- return bucket->cls == CLS_NULL || (bucket->time + 1 < now);
-}
-
-static int bucket_match(rrl_item_t *bucket, rrl_item_t *match)
-{
- return bucket->cls == match->cls &&
- bucket->netblk == match->netblk &&
- bucket->qname == match->qname;
-}
-
-static int find_free(rrl_table_t *tbl, unsigned id, uint32_t now)
-{
- for (int i = id; i < tbl->size; i++) {
- if (bucket_free(&tbl->arr[i], now)) {
- return i - id;
- }
- }
- for (int i = 0; i < id; i++) {
- if (bucket_free(&tbl->arr[i], now)) {
- return i + (tbl->size - id);
- }
- }
-
- /* this happens if table is full... force vacate current elm */
- return id;
-}
-
-static inline unsigned find_match(rrl_table_t *tbl, uint32_t id, rrl_item_t *m)
-{
- unsigned new_id = 0;
- unsigned hop = 0;
- unsigned match_bitmap = tbl->arr[id].hop;
- while (match_bitmap != 0) {
- hop = __builtin_ctz(match_bitmap); /* offset of next potential match */
- new_id = (id + hop) % tbl->size;
- if (bucket_match(&tbl->arr[new_id], m)) {
- return hop;
- } else {
- match_bitmap &= ~(1 << hop); /* clear potential match */
- }
- }
-
- return HOP_LEN + 1;
-}
-
-static inline unsigned reduce_dist(rrl_table_t *tbl, unsigned id, unsigned dist, unsigned *free_id)
-{
- unsigned rd = HOP_LEN - 1;
- while (rd > 0) {
- unsigned vacate_id = (tbl->size + *free_id - rd) % tbl->size; /* bucket to be vacated */
- if (tbl->arr[vacate_id].hop != 0) {
- unsigned hop = __builtin_ctz(tbl->arr[vacate_id].hop); /* offset of first valid bucket */
- if (hop < rd) { /* only offsets in <vacate_id, free_id> are interesting */
- unsigned new_id = (vacate_id + hop) % tbl->size; /* this item will be displaced to [free_id] */
- unsigned keep_hop = tbl->arr[*free_id].hop; /* unpredictable padding */
- memcpy(tbl->arr + *free_id, tbl->arr + new_id, sizeof(rrl_item_t));
- tbl->arr[*free_id].hop = keep_hop;
- tbl->arr[new_id].cls = CLS_NULL;
- tbl->arr[vacate_id].hop &= ~(1 << hop);
- tbl->arr[vacate_id].hop |= 1 << rd;
- *free_id = new_id;
- return dist - (rd - hop);
- }
- }
- --rd;
- }
-
- assert(rd == 0); /* this happens with p=1/fact(HOP_LEN) */
- *free_id = id;
- dist = 0; /* force vacate initial element */
- return dist;
-}
-
-static void subnet_tostr(char *dst, size_t maxlen, const struct sockaddr_storage *ss)
-{
const void *addr;
- const char *suffix;
if (ss->ss_family == AF_INET6) {
addr = &((struct sockaddr_in6 *)ss)->sin6_addr;
- suffix = "/56";
} else {
addr = &((struct sockaddr_in *)ss)->sin_addr;
- suffix = "/24";
}
- if (knot_inet_ntop(ss->ss_family, addr, dst, maxlen) != NULL) {
- strlcat(dst, suffix, maxlen);
- } else {
+ if (knot_inet_ntop(ss->ss_family, addr, dst, maxlen) == NULL) {
dst[0] = '\0';
}
}
-static void rrl_log_state(knotd_mod_t *mod, const struct sockaddr_storage *ss,
- uint16_t flags, uint8_t cls, const knot_dname_t *qname)
+static void rrl_log_limited(knotd_mod_t *mod, const struct sockaddr_storage *ss,
+ const uint8_t prefix, bool rate)
{
- if (mod == NULL || ss == NULL) {
+ if (mod == NULL) {
return;
}
char addr_str[SOCKADDR_STRLEN];
- subnet_tostr(addr_str, sizeof(addr_str), ss);
-
- const char *what = "leaves";
- if (flags & RRL_BF_ELIMIT) {
- what = "enters";
- }
+ addr_tostr(addr_str, sizeof(addr_str), ss);
- knot_dname_txt_storage_t buf;
- char *qname_str = knot_dname_to_str(buf, qname, sizeof(buf));
- if (qname_str == NULL) {
- qname_str = "?";
- }
-
- knotd_mod_log(mod, LOG_NOTICE, "address/subnet %s, class %s, qname %s, %s limiting",
- addr_str, rrl_clsstr(cls), qname_str, what);
+ knotd_mod_log(mod, LOG_NOTICE, "address %s limited on /%d by %s",
+ addr_str, prefix, rate ? "rate" : "time");
}
-static void rrl_lock(rrl_table_t *tbl, int lk_id)
+rrl_table_t *rrl_create(size_t size, uint32_t instant_limit, uint32_t rate_limit,
+ bool rw_mode, uint32_t log_period)
{
- assert(lk_id > -1);
- pthread_mutex_lock(tbl->lk + lk_id);
-}
-
-static void rrl_unlock(rrl_table_t *tbl, int lk_id)
-{
- assert(lk_id > -1);
- pthread_mutex_unlock(tbl->lk + lk_id);
-}
-
-static int rrl_setlocks(rrl_table_t *tbl, uint32_t granularity)
-{
- assert(!tbl->lk); /* Cannot change while locks are used. */
- assert(granularity <= tbl->size / 10); /* Due to int. division err. */
-
- if (pthread_mutex_init(&tbl->ll, NULL) < 0) {
- return KNOT_ENOMEM;
+ if (size == 0 || instant_limit == 0 || rate_limit == 0) {
+ return NULL;
}
- /* Alloc new locks. */
- tbl->lk = malloc(granularity * sizeof(pthread_mutex_t));
- if (!tbl->lk) {
- return KNOT_ENOMEM;
- }
- memset(tbl->lk, 0, granularity * sizeof(pthread_mutex_t));
+ size--;
+ size_t capacity_log = 1;
+ while (size >>= 1) capacity_log++;
- /* Initialize. */
- for (size_t i = 0; i < granularity; ++i) {
- if (pthread_mutex_init(tbl->lk + i, NULL) < 0) {
- break;
- }
- ++tbl->lk_count;
+ rrl_table_t *rrl;
+ size_t rrl_size = offsetof(struct rrl_table, kru) + KRU.get_size(capacity_log);
+ if (posix_memalign((void **)&rrl, 64, rrl_size) != 0) {
+ return NULL;
}
+ memset(rrl, 0, rrl_size);
- /* Incomplete initialization */
- if (tbl->lk_count != granularity) {
- for (size_t i = 0; i < tbl->lk_count; ++i) {
- pthread_mutex_destroy(tbl->lk + i);
- }
- free(tbl->lk);
- tbl->lk_count = 0;
- return KNOT_ERROR;
+ assert(rate_limit <= 1000ll * instant_limit); // Ensured by config check.
+ kru_price_t base_price = KRU_LIMIT / instant_limit;
+ const kru_price_t max_decay = (uint64_t)base_price * rate_limit / 1000;
+ if (!rw_mode) {
+ base_price = base_price * RRL_LIMIT_KOEF;
}
- return KNOT_EOK;
-}
-
-rrl_table_t *rrl_create(size_t size, uint32_t rate)
-{
- if (size == 0) {
+ if (!KRU.initialize((struct kru *)rrl->kru, capacity_log, max_decay)) {
+ free(rrl);
return NULL;
}
- const size_t tbl_len = sizeof(rrl_table_t) + size * sizeof(rrl_item_t);
- rrl_table_t *tbl = calloc(1, tbl_len);
- if (!tbl) {
- return NULL;
+ for (size_t i = 0; i < RRL_V4_PREFIXES_CNT; i++) {
+ rrl->v4_prices[i] = base_price / RRL_V4_RATE_MULT[i];
}
- tbl->size = size;
- tbl->rate = rate;
- if (dnssec_random_buffer((uint8_t *)&tbl->key, sizeof(tbl->key)) != DNSSEC_EOK) {
- free(tbl);
- return NULL;
+ for (size_t i = 0; i < RRL_V6_PREFIXES_CNT; i++) {
+ rrl->v6_prices[i] = base_price / RRL_V6_RATE_MULT[i];
}
- if (rrl_setlocks(tbl, RRL_LOCK_GRANULARITY) != KNOT_EOK) {
- free(tbl);
- return NULL;
- }
+ rrl->rw_mode = rw_mode;
+ rrl->log_period = log_period;
- return tbl;
-}
+ struct timespec now_ts;
+ clock_gettime(CLOCK_MONOTONIC_COARSE, &now_ts);
+ uint32_t now = now_ts.tv_sec * 1000 + now_ts.tv_nsec / 1000000;
+ rrl->log_time = now - log_period;
-static knot_dname_t *buf_qname(uint8_t *buf)
-{
- return buf + sizeof(uint8_t) + sizeof(uint64_t);
+ return rrl;
}
-/*! \brief Get bucket for current combination of parameters. */
-static rrl_item_t *rrl_hash(rrl_table_t *tbl, const struct sockaddr_storage *remote,
- rrl_req_t *req, const knot_dname_t *zone, uint32_t stamp,
- int *lock, uint8_t *buf, size_t buf_len)
+int rrl_query(rrl_table_t *rrl, const struct sockaddr_storage *remote, knotd_mod_t *mod)
{
- int len = rrl_classify(buf, buf_len, remote, req, zone);
- if (len < 0) {
- return NULL;
- }
+ assert(rrl);
+ assert(remote);
- uint32_t id = SipHash24(&tbl->key, buf, len) % tbl->size;
-
- /* Lock for lookup. */
- pthread_mutex_lock(&tbl->ll);
-
- /* Find an exact match in <id, id + HOP_LEN). */
- knot_dname_t *qname = buf_qname(buf);
- uint64_t netblk;
- memcpy(&netblk, buf + sizeof(uint8_t), sizeof(netblk));
- rrl_item_t match = {
- .hop = 0,
- .netblk = netblk,
- .ntok = tbl->rate * RRL_CAPACITY,
- .cls = buf[0],
- .flags = RRL_BF_NULL,
- .qname = SipHash24(&tbl->key, qname, knot_dname_size(qname)),
- .time = stamp
- };
-
- unsigned dist = find_match(tbl, id, &match);
- if (dist > HOP_LEN) { /* not an exact match, find free element [f] */
- dist = find_free(tbl, id, stamp);
- }
+ struct timespec now_ts;
+ clock_gettime(CLOCK_MONOTONIC_COARSE, &now_ts);
+ uint32_t now = now_ts.tv_sec * 1000 + now_ts.tv_nsec / 1000000;
- /* Reduce distance to fit <id, id + HOP_LEN) */
- unsigned free_id = (id + dist) % tbl->size;
- while (dist >= HOP_LEN) {
- dist = reduce_dist(tbl, id, dist, &free_id);
- }
+ uint16_t load = 0;
+ uint8_t prefix = 0;
+ _Alignas(16) uint8_t key[16] = { 0 };
+ if (remote->ss_family == AF_INET6) {
+ struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)remote;
+ memcpy(key, &ipv6->sin6_addr, 16);
- /* Assign granular lock and unlock lookup. */
- *lock = free_id % tbl->lk_count;
- rrl_lock(tbl, *lock);
- pthread_mutex_unlock(&tbl->ll);
-
- /* found free bucket which is in <id, id + HOP_LEN) */
- tbl->arr[id].hop |= (1 << dist);
- rrl_item_t *bucket = &tbl->arr[free_id];
- assert(free_id == (id + dist) % tbl->size);
-
- /* Inspect bucket state. */
- unsigned hop = bucket->hop;
- if (bucket->cls == CLS_NULL) {
- memcpy(bucket, &match, sizeof(rrl_item_t));
- bucket->hop = hop;
+ if (rrl->rw_mode) {
+ prefix = KRU.limited_multi_prefix_or(
+ (struct kru *)rrl->kru, now, 1, key, RRL_V6_PREFIXES,
+ rrl->v6_prices, RRL_V6_PREFIXES_CNT, NULL);
+ } else {
+ load = KRU.load_multi_prefix_max(
+ (struct kru *)rrl->kru, now, 1, key, RRL_V6_PREFIXES,
+ NULL, RRL_V6_PREFIXES_CNT, &prefix);
+ }
+ } else {
+ struct sockaddr_in *ipv4 = (struct sockaddr_in *)remote;
+ memcpy(key, &ipv4->sin_addr, 4);
+
+ if (rrl->rw_mode) {
+ prefix = KRU.limited_multi_prefix_or(
+ (struct kru *)rrl->kru, now, 0, key, RRL_V4_PREFIXES,
+ rrl->v4_prices, RRL_V4_PREFIXES_CNT, NULL);
+ } else {
+ load = KRU.load_multi_prefix_max(
+ (struct kru *)rrl->kru, now, 0, key, RRL_V4_PREFIXES,
+ NULL, RRL_V4_PREFIXES_CNT, &prefix);
+ }
}
- /* Check for collisions. */
- if (!bucket_match(bucket, &match)) {
- if (!(bucket->flags & RRL_BF_SSTART)) {
- memcpy(bucket, &match, sizeof(rrl_item_t));
- bucket->hop = hop;
- bucket->ntok = tbl->rate + tbl->rate / RRL_SSTART;
- bucket->flags |= RRL_BF_SSTART;
+
+ if (rrl->rw_mode) {
+ if (prefix == 0) {
+ return KNOT_EOK;
}
+ } else {
+ if (load <= (1 << 16) * RRL_LIMIT_KOEF) {
+ return KNOT_EOK;
+ }
+ }
+
+ uint32_t log_time_orig = atomic_load_explicit(&rrl->log_time, memory_order_relaxed);
+ if (rrl->log_period && (now - log_time_orig + 1024 >= rrl->log_period + 1024)) {
+ do {
+ if (atomic_compare_exchange_weak_explicit(&rrl->log_time, &log_time_orig, now,
+ memory_order_relaxed, memory_order_relaxed)) {
+ rrl_log_limited(mod, remote, prefix, rrl->rw_mode);
+ break;
+ }
+ } while (now - log_time_orig + 1024 >= rrl->log_period + 1024);
}
- return bucket;
+ return KNOT_ELIMIT;
}
-int rrl_query(rrl_table_t *rrl, const struct sockaddr_storage *remote,
- rrl_req_t *req, const knot_dname_t *zone, knotd_mod_t *mod)
+void rrl_update(rrl_table_t *rrl, const struct sockaddr_storage *remote, size_t value)
{
- if (!rrl || !req || !remote) {
- return KNOT_EINVAL;
- }
+ assert(rrl);
+ assert(remote);
+ assert(!rrl->rw_mode);
- uint8_t buf[RRL_CLSBLK_MAXLEN];
+ struct timespec now_ts;
+ clock_gettime(CLOCK_MONOTONIC_COARSE, &now_ts);
+ uint32_t now = now_ts.tv_sec * 1000 + now_ts.tv_nsec / 1000000;
- /* Calculate hash and fetch */
- int ret = KNOT_EOK;
- int lock = -1;
- uint32_t now = time_now().tv_sec;
- rrl_item_t *bucket = rrl_hash(rrl, remote, req, zone, now, &lock, buf, sizeof(buf));
- if (!bucket) {
- if (lock > -1) {
- rrl_unlock(rrl, lock);
- }
- return KNOT_ERROR;
- }
-
- /* Calculate rate for dT */
- uint32_t dt = now - bucket->time;
- if (dt > RRL_CAPACITY) {
- dt = RRL_CAPACITY;
- }
- /* Visit bucket. */
- bucket->time = now;
- if (dt > 0) { /* Window moved. */
-
- /* Check state change. */
- if ((bucket->ntok > 0 || dt > 1) && (bucket->flags & RRL_BF_ELIMIT)) {
- bucket->flags &= ~RRL_BF_ELIMIT;
- rrl_log_state(mod, remote, bucket->flags, bucket->cls,
- knot_pkt_qname(req->query));
- }
+ _Alignas(16) uint8_t key[16] = { 0 };
+ if (remote->ss_family == AF_INET6) {
+ struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)remote;
+ memcpy(key, &ipv6->sin6_addr, 16);
- /* Add new tokens. */
- uint32_t dn = rrl->rate * dt;
- if (bucket->flags & RRL_BF_SSTART) { /* Bucket in slow-start. */
- bucket->flags &= ~RRL_BF_SSTART;
- }
- bucket->ntok += dn;
- if (bucket->ntok > RRL_CAPACITY * rrl->rate) {
- bucket->ntok = RRL_CAPACITY * rrl->rate;
+ kru_price_t prices[RRL_V6_PREFIXES_CNT];
+ for (size_t i = 0; i < RRL_V6_PREFIXES_CNT; i++) {
+ prices[i] = MIN(value * rrl->v6_prices[i], (kru_price_t)-1LL);
}
- }
- /* Last item taken. */
- if (bucket->ntok == 1 && !(bucket->flags & RRL_BF_ELIMIT)) {
- bucket->flags |= RRL_BF_ELIMIT;
- rrl_log_state(mod, remote, bucket->flags, bucket->cls,
- knot_pkt_qname(req->query));
- }
+ (void)KRU.load_multi_prefix_max((struct kru *)rrl->kru, now,
+ 1, key, RRL_V6_PREFIXES, prices,
+ RRL_V6_PREFIXES_CNT, NULL);
+ } else {
+ struct sockaddr_in *ipv4 = (struct sockaddr_in *)remote;
+ memcpy(key, &ipv4->sin_addr, 4);
- /* Decay current bucket. */
- if (bucket->ntok > 0) {
- --bucket->ntok;
- } else if (bucket->ntok == 0) {
- ret = KNOT_ELIMIT;
- }
+ kru_price_t prices[RRL_V4_PREFIXES_CNT];
+ for (size_t i = 0; i < RRL_V4_PREFIXES_CNT; i++) {
+ prices[i] = MIN(value * rrl->v4_prices[i], (kru_price_t)-1LL);
+ }
- if (lock > -1) {
- rrl_unlock(rrl, lock);
+ (void)KRU.load_multi_prefix_max((struct kru *)rrl->kru, now,
+ 0, key, RRL_V4_PREFIXES, prices,
+ RRL_V4_PREFIXES_CNT, NULL);
}
- return ret;
}
bool rrl_slip_roll(int n_slip)
@@ -540,15 +247,5 @@ bool rrl_slip_roll(int n_slip)
void rrl_destroy(rrl_table_t *rrl)
{
- if (rrl) {
- if (rrl->lk_count > 0) {
- pthread_mutex_destroy(&rrl->ll);
- }
- for (size_t i = 0; i < rrl->lk_count; ++i) {
- pthread_mutex_destroy(rrl->lk + i);
- }
- free(rrl->lk);
- }
-
free(rrl);
}
diff --git a/src/knot/modules/rrl/functions.h b/src/knot/modules/rrl/functions.h
index 0f09234..0941c83 100644
--- a/src/knot/modules/rrl/functions.h
+++ b/src/knot/modules/rrl/functions.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,95 +17,63 @@
#pragma once
#include <stdint.h>
-#include <pthread.h>
#include <sys/socket.h>
-#include "libknot/libknot.h"
#include "knot/include/module.h"
-#include "contrib/openbsd/siphash.h"
-/*!
- * \brief RRL hash bucket.
- */
-typedef struct {
- unsigned hop; /* Hop bitmap. */
- uint64_t netblk; /* Prefix associated. */
- uint16_t ntok; /* Tokens available. */
- uint8_t cls; /* Bucket class. */
- uint8_t flags; /* Flags. */
- uint32_t qname; /* imputed(QNAME) hash. */
- uint32_t time; /* Timestamp. */
-} rrl_item_t;
+typedef struct rrl_table rrl_table_t;
/*!
- * \brief RRL hash bucket table.
+ * \brief Create a RRL table.
*
- * Table is fixed size, so collisions may occur and are dealt with
- * in a way, that hashbucket rate is reset and enters slow-start for 1 dt.
- * When a bucket is in a slow-start mode, it cannot reset again for the time
- * period.
+ * \param size Fixed table size.
+ * \param instant_limit Instant limit.
+ * \param rate_limit Rate limit.
+ * \param rw_mode If disabled, RW operation is divided into R and W operations.
+ * \param log_period If nonzero, maximum logging period (in milliseconds).
*
- * To avoid lock contention, N locks are created and distributed amongst buckets.
- * As of now lock K for bucket N is calculated as K = N % (num_buckets).
- */
-
-typedef struct {
- SIPHASH_KEY key; /* Siphash key. */
- uint32_t rate; /* Configured RRL limit. */
- pthread_mutex_t ll;
- pthread_mutex_t *lk; /* Table locks. */
- unsigned lk_count; /* Table lock count (granularity). */
- size_t size; /* Number of buckets. */
- rrl_item_t arr[]; /* Buckets. */
-} rrl_table_t;
-
-/*! \brief RRL request flags. */
-typedef enum {
- RRL_REQ_NOFLAG = 0 << 0, /*!< No flags. */
- RRL_REQ_WILDCARD = 1 << 1 /*!< Query to wildcard name. */
-} rrl_req_flag_t;
-
-/*!
- * \brief RRL request descriptor.
- */
-typedef struct {
- const uint8_t *wire;
- uint16_t len;
- rrl_req_flag_t flags;
- knot_pkt_t *query;
-} rrl_req_t;
-
-/*!
- * \brief Create a RRL table.
- * \param size Fixed hashtable size (reasonable large prime is recommended).
- * \param rate Rate (in pkts/sec).
* \return created table or NULL.
*/
-rrl_table_t *rrl_create(size_t size, uint32_t rate);
+rrl_table_t *rrl_create(size_t size, uint32_t instant_limit, uint32_t rate_limit,
+ bool rw_mode, uint32_t log_period);
/*!
* \brief Query the RRL table for accept or deny, when the rate limit is reached.
*
+ * \note This function is common to both RW and non-RW modes!
+ *
* \param rrl RRL table.
* \param remote Source address.
- * \param req RRL request (containing resp., flags and question).
- * \param zone Zone name related to the response (or NULL).
* \param mod Query module (needed for logging).
+ *
* \retval KNOT_EOK if passed.
* \retval KNOT_ELIMIT when the limit is reached.
*/
-int rrl_query(rrl_table_t *rrl, const struct sockaddr_storage *remote,
- rrl_req_t *req, const knot_dname_t *zone, knotd_mod_t *mod);
+int rrl_query(rrl_table_t *rrl, const struct sockaddr_storage *remote, knotd_mod_t *mod);
+
+/*!
+ * \brief Update the RRL table.
+ *
+ * \note This function is only for the non-RW mode!
+ *
+ * \param rrl RRL table.
+ * \param remote Source address.
+ * \param value Value with which the table is updated.
+ */
+void rrl_update(rrl_table_t *rrl, const struct sockaddr_storage *remote, size_t value);
/*!
* \brief Roll a dice whether answer slips or not.
+ *
* \param n_slip Number represents every Nth answer that is slipped.
+ *
* \return true or false
*/
bool rrl_slip_roll(int n_slip);
/*!
* \brief Destroy RRL table.
+ *
* \param rrl RRL table.
*/
void rrl_destroy(rrl_table_t *rrl);
diff --git a/src/knot/modules/rrl/kru-avx2.c b/src/knot/modules/rrl/kru-avx2.c
new file mode 100644
index 0000000..183ae44
--- /dev/null
+++ b/src/knot/modules/rrl/kru-avx2.c
@@ -0,0 +1,66 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+// Checked with clang 5 (2017) and gcc 6 (2016).
+// For other cases we'll rather keep just the generic implementation.
+#if defined(__x86_64__) && (__clang_major__ >= 5 || __GNUC__ >= 6)
+
+// This file has code for new-ish x86 (2015+ usually, Atom 2021+) - AES + AVX2
+#if __clang_major__ >= 12
+ #pragma clang attribute push (__attribute__((target("arch=x86-64-v3,aes"))), \
+ apply_to = function)
+#elif __clang__
+ #pragma clang attribute push (__attribute__((target("avx2,aes"))), \
+ apply_to = function)
+#else
+ #pragma GCC push_options
+ #if __GNUC__ >= 11
+ #pragma GCC target("arch=x86-64-v3,aes")
+ // try harder for auto-vectorization, etc.
+ #pragma GCC optimize("O3")
+ #else
+ #pragma GCC target("avx2,aes")
+ #endif
+#endif
+
+#define USE_AES 1
+#define USE_AVX2 1
+#define USE_SSE41 1
+
+#include "./kru.inc.c"
+const struct kru_api KRU_AVX2 = KRU_API_INITIALIZER;
+
+#ifdef __clang__
+ #pragma clang attribute pop
+#else
+ #pragma GCC pop_options
+#endif
+
+__attribute__((constructor))
+static void detect_CPU_avx2(void)
+{
+ // Checking just AES+AVX2 will most likely be OK even if we used arch=x86-64-v3
+ if (__builtin_cpu_supports("aes") && __builtin_cpu_supports("avx2")) {
+ KRU = KRU_AVX2;
+ }
+}
+
+#else
+
+#include "./kru.h"
+const struct kru_api KRU_AVX2 = {NULL};
+
+#endif
diff --git a/src/knot/modules/rrl/kru-generic.c b/src/knot/modules/rrl/kru-generic.c
new file mode 100644
index 0000000..71ffdd4
--- /dev/null
+++ b/src/knot/modules/rrl/kru-generic.c
@@ -0,0 +1,20 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#include "./kru.inc.c"
+
+const struct kru_api KRU_GENERIC = KRU_API_INITIALIZER;
+struct kru_api KRU = KRU_API_INITIALIZER; // generic version is the default
diff --git a/src/knot/modules/rrl/kru.h b/src/knot/modules/rrl/kru.h
new file mode 100644
index 0000000..7eef6c0
--- /dev/null
+++ b/src/knot/modules/rrl/kru.h
@@ -0,0 +1,90 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+
+#define ALIGNED_CPU_CACHE _Alignas(64)
+
+// An unsigned integral type used for prices, blocking occurs when sum of prices overflows.
+// Greater than 16-bit type enables randomized fractional incrementing as the internal counters are still 16-bit.
+// Exponential decay always uses randomized rounding on 32 bits.
+typedef uint32_t kru_price_t;
+
+#define KRU_PRICE_BITS (8 * sizeof(kru_price_t))
+
+// maximal allowed sum of prices without limiting
+#define KRU_LIMIT (((kru_price_t)-1ll) - (1ll << (KRU_PRICE_BITS - 16)) + 1)
+
+struct kru;
+
+/// Usage: KRU.limited(...)
+struct kru_api {
+ /// Initialize a new KRU structure that can track roughly 2^capacity_log limited keys.
+ ///
+ /// The kru parameter should point to a zeroed preallocated memory
+ /// of size returned by get_size aligned to 64-bytes;
+ /// deallocate the memory to destroy KRU.
+ /// RAM: the current parametrization will use roughly 8 bytes * 2^capacity_log.
+ ///
+ /// The number of non-limited keys is basically arbitrary,
+ /// but the total sum of prices per tick (for queries returning false)
+ /// should not get over roughly 2^(capacity_log + 15).
+ /// Note that the _multi variants increase these totals
+ /// by tracking multiple keys in a single query.
+ ///
+ /// Returns false if kru is NULL or other failure occurs.
+ bool (*initialize)(struct kru *kru, int capacity_log, kru_price_t max_decay);
+
+ /// Calculate size of the KRU structure.
+ size_t (*get_size)(int capacity_log);
+
+ /// Determine if a key should get limited (and update the KRU).
+ /// key needs to be aligned to a multiple of 16 bytes.
+ bool (*limited)(struct kru *kru, uint32_t time_now, uint8_t key[static const 16], kru_price_t price);
+
+ /// Multiple queries. Returns OR of answers. Updates KRU only if no query is blocked (and possibly on race).
+ bool (*limited_multi_or)(struct kru *kru, uint32_t time_now, uint8_t **keys, kru_price_t *prices, size_t queries_cnt);
+
+ /// Same as previous but without short-circuit evaluation; for time measurement purposes.
+ bool (*limited_multi_or_nobreak)(struct kru *kru, uint32_t time_now, uint8_t ** keys, kru_price_t *prices, size_t queries_cnt);
+
+ /// Multiple queries based on different prefixes of a single key.
+ /// Returns a prefix (value in prefixes) on which the key is blocked, or zero if all queries passed.
+ /// Updates KRU only if no query is blocked, unless a race condition occurs --
+ /// in such a case all longer prefixes might have been updated.
+ /// The key of i-th query consists of prefixes[i] bits of key, prefixes[i], and namespace.
+ /// If zero is returned, *max_load_out (unless NULL) is set to
+ /// the maximum of final values of the involved counters normalized to the limit 2^16.
+ uint8_t (*limited_multi_prefix_or)(struct kru *kru, uint32_t time_now,
+ uint8_t namespace, uint8_t key[static 16], uint8_t *prefixes, kru_price_t *prices, size_t queries_cnt, uint16_t *max_load_out);
+
+ /// Multiple queries based on different prefixes of a single key.
+ /// Returns the maximum of final values of the involved counters normalized to the limit 2^16
+ /// and stores the corresponding prefix (value in prefixes) to *prefix_out (unless NULL).
+ /// Set prices to NULL to skip updating; otherwise, KRU is always updated, using maximal allowed value on overflow.
+ /// The key of i-th query consists of prefixes[i] bits of key, prefixes[i], and namespace.
+ uint16_t (*load_multi_prefix_max)(struct kru *kru, uint32_t time_now,
+ uint8_t namespace, uint8_t key[static 16], uint8_t *prefixes, kru_price_t *prices, size_t queries_cnt, uint8_t *prefix_out);
+};
+
+// The functions are stored this way to make it easier to switch
+// implementation based on detected CPU.
+extern struct kru_api KRU;
+extern const struct kru_api KRU_GENERIC, KRU_AVX2;
diff --git a/src/knot/modules/rrl/kru.inc.c b/src/knot/modules/rrl/kru.inc.c
new file mode 100644
index 0000000..49e359e
--- /dev/null
+++ b/src/knot/modules/rrl/kru.inc.c
@@ -0,0 +1,615 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+/*
+KRU estimates recently pricey inputs
+
+Authors of the simple agorithm (without aging, multi-choice, etc.):
+ Metwally, D. Agrawal, and A. E. Abbadi.
+ Efficient computation of frequent and top-k elements in data streams.
+ In International Conference on Database Theory, 2005.
+
+With TABLE_COUNT > 1 we're improving reliability by utilizing the property that
+longest buckets (cache-lines) get very much shortened, already by providing two choices:
+ https://en.wikipedia.org/wiki/2-choice_hashing
+
+The point is to answer point-queries that estimate if the item has been heavily used recently.
+To give more weight to recent usage, we use aging via exponential decay (simple to compute).
+That has applications for garbage collection of cache and various limiting scenario
+(excessive rate, traffic, CPU, maybe RAM).
+
+### Choosing parameters
+
+Size (`loads_bits` = log2 length):
+ - The KRU takes 64 bytes * length * TABLE_COUNT + some small constants.
+ As TABLE_COUNT == 2 and loads_bits = capacity_log >> 4, we get capacity * 8 Bytes.
+ - The length should probably be at least something like the square of the number of utilized CPUs.
+ But this most likely won't be a limiting factor.
+*/
+
+#include <stdlib.h>
+#include <assert.h>
+#include <stdatomic.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <string.h>
+#include <math.h>
+
+#include "./kru.h"
+#include "contrib/macros.h"
+#include "libdnssec/error.h"
+#include "libdnssec/random.h"
+typedef uint64_t hash_t;
+#if USE_AES
+ /// 4-8 rounds should be an OK choice, most likely.
+ #define AES_ROUNDS 4
+#else
+ #include "contrib/openbsd/siphash.h"
+
+ /// 1,3 should be OK choice, probably.
+ enum {
+ SIPHASH_RC = 1,
+ SIPHASH_RF = 3,
+ };
+#endif
+
+#if USE_AVX2 || USE_SSE41 || USE_AES
+ #include <immintrin.h>
+ #include <x86intrin.h>
+#endif
+
+/// Block of loads sharing the same time, so that we're more space-efficient.
+/// It's exactly a single cache line.
+struct load_cl {
+ ALIGNED_CPU_CACHE
+ _Atomic uint32_t time;
+ #define LOADS_LEN 15
+ uint16_t ids[LOADS_LEN];
+ uint16_t loads[LOADS_LEN];
+};
+static_assert(64 == sizeof(struct load_cl), "bad size of struct load_cl");
+
+/// Parametrization for speed of decay.
+struct decay_config {
+ /// Bit shift per tick, fractional
+ double shift_bits;
+
+ /// Ticks to get zero loads
+ uint32_t max_ticks;
+
+ uint32_t mult_cache[32];
+};
+
+struct kru {
+#if USE_AES
+ /// Hashing secret. Random but shared by all users of the table.
+ /// Let's not make it too large, so that header fits into 64 Bytes.
+ _Alignas(32) char hash_key[48];
+#else
+ /// Hashing secret. Random but shared by all users of the table.
+ SIPHASH_KEY hash_key;
+#endif
+ struct decay_config decay;
+
+ /// Length of `loads_cls`, stored as binary logarithm.
+ uint32_t loads_bits;
+
+ #define TABLE_COUNT 2
+ /// These are read-write. Each struct has exactly one cache line.
+ struct load_cl load_cls[][TABLE_COUNT];
+};
+
+inline static uint64_t rand_bits(unsigned int bits)
+{
+ static _Thread_local uint64_t state = 3723796604792068981ull;
+ const uint64_t prime1 = 11737314301796036329ull;
+ const uint64_t prime2 = 3107264277052274849ull;
+ state = prime1 * state + prime2;
+ //return state & ((1 << bits) - 1);
+ return state >> (64 - bits);
+}
+
+static inline void decay_initialize(struct decay_config *decay, kru_price_t max_decay)
+{
+ decay->shift_bits = log2(KRU_LIMIT - 1) - log2(KRU_LIMIT - 1 - max_decay);
+ decay->max_ticks = 18 / decay->shift_bits;
+
+ decay->mult_cache[0] = 0; // not used
+ for (size_t ticks = 1; ticks < sizeof(decay->mult_cache) / sizeof(*decay->mult_cache); ticks++) {
+ decay->mult_cache[ticks] = exp2(32 - decay->shift_bits * ticks) + 0.5;
+ }
+}
+
+/// Catch up the time drift with configurably slower decay.
+static inline void update_time(struct load_cl *l, const uint32_t time_now,
+ const struct decay_config *decay)
+{
+ uint32_t ticks;
+ uint32_t time_last = atomic_load_explicit(&l->time, memory_order_relaxed);
+ do {
+ ticks = time_now - time_last;
+ if (__builtin_expect(!ticks, true)) // we optimize for time not advancing
+ return;
+ // We accept some desynchronization of time_now (e.g. from different threads).
+ if (ticks > (uint32_t)-1024)
+ return;
+ } while (!atomic_compare_exchange_weak_explicit(&l->time, &time_last, time_now, memory_order_relaxed, memory_order_relaxed));
+
+ // If we passed here, we have acquired a time difference we are responsibe for.
+
+ // Don't bother with complex computations if lots of ticks have passed. (little to no speed-up)
+ if (ticks > decay->max_ticks) {
+ memset(l->loads, 0, sizeof(l->loads));
+ return;
+ }
+
+ uint32_t mult;
+ if (__builtin_expect(ticks < sizeof(decay->mult_cache) / sizeof(*decay->mult_cache), 1)) {
+ mult = decay->mult_cache[ticks];
+ } else {
+ mult = exp2(32 - decay->shift_bits * ticks) + 0.5;
+ }
+
+ for (int i = 0; i < LOADS_LEN; ++i) {
+ // We perform decay for the acquired time difference; decays from different threads are commutative.
+ _Atomic uint16_t *load_at = (_Atomic uint16_t *)&l->loads[i];
+ uint16_t l1, load_orig = atomic_load_explicit(load_at, memory_order_relaxed);
+ const uint16_t rnd = rand_bits(16);
+ do {
+ uint64_t m = (((uint64_t)load_orig << 16)) * mult;
+ m = (m >> 32) + ((m >> 31) & 1);
+ l1 = (m >> 16) + (rnd < (uint16_t)m);
+ } while (!atomic_compare_exchange_weak_explicit(load_at, &load_orig, l1, memory_order_relaxed, memory_order_relaxed));
+ }
+}
+
+/// Convert capacity_log to loads_bits
+static inline int32_t capacity2loads(int capacity_log)
+{
+ static_assert(LOADS_LEN == 15 && TABLE_COUNT == 2, "");
+ // So, the pair of cache lines hold up to 2*15 elements.
+ // Let's say that we can reliably store 16 = 1 << (1+3).
+ // (probably more but certainly not 1 << 5)
+ const int shift = 1 + 3;
+ int loads_bits = capacity_log - shift;
+ // Let's behave reasonably for weird capacity_log values.
+ return loads_bits > 0 ? loads_bits : 1;
+}
+
+static size_t kru_get_size(int capacity_log)
+{
+ uint32_t loads_bits = capacity2loads(capacity_log);
+ if (8 * sizeof(hash_t) < TABLE_COUNT * loads_bits
+ + 8 * sizeof(((struct kru *)0)->load_cls[0]->ids[0])) {
+ assert(false);
+ return 0;
+ }
+
+ return offsetof(struct kru, load_cls)
+ + sizeof(struct load_cl) * TABLE_COUNT * (1 << loads_bits);
+}
+
+static bool kru_initialize(struct kru *kru, int capacity_log, kru_price_t max_decay)
+{
+ if (!kru) {
+ return false;
+ }
+
+ uint32_t loads_bits = capacity2loads(capacity_log);
+ if (8 * sizeof(hash_t) < TABLE_COUNT * loads_bits
+ + 8 * sizeof(((struct kru *)0)->load_cls[0]->ids[0])) {
+ assert(false);
+ return false;
+ }
+
+ kru->loads_bits = loads_bits;
+
+ if (dnssec_random_buffer((uint8_t *)&kru->hash_key, sizeof(kru->hash_key)) != DNSSEC_EOK) {
+ return false;
+ }
+
+ decay_initialize(&kru->decay, max_decay);
+
+ return true;
+}
+
+struct query_ctx {
+ struct load_cl *l[TABLE_COUNT];
+ uint32_t time_now;
+ kru_price_t price;
+ uint16_t price16, limit16;
+ uint16_t id;
+ uint16_t final_load_value; // set by kru_limited_update if not blocked
+ uint16_t *load;
+};
+
+/// Phase 1/3 of a query -- hash, prefetch, ctx init. Based on one 16-byte key.
+static inline void kru_limited_prefetch(struct kru *kru, uint32_t time_now, uint8_t key[static 16], kru_price_t price, struct query_ctx *ctx)
+{
+ // Obtain hash of *buf.
+ hash_t hash;
+#if !USE_AES
+ hash = SipHash(&kru->hash_key, SIPHASH_RC, SIPHASH_RF, key, 16);
+#else
+ {
+ __m128i h; /// hashing state
+ h = _mm_load_si128((__m128i *)key);
+ // Now do the the hashing itself.
+ __m128i *aes_key = (void*)kru->hash_key;
+ for (int i = 0; i < AES_ROUNDS; ++i) {
+ int key_id = i % (sizeof(kru->hash_key) / sizeof(__m128i));
+ h = _mm_aesenc_si128(h, _mm_load_si128(&aes_key[key_id]));
+ }
+ memcpy(&hash, &h, sizeof(hash));
+ }
+#endif
+
+ // Choose the cache-lines to operate on
+ const uint32_t loads_mask = (1 << kru->loads_bits) - 1;
+ // Fetch the two cache-lines in parallel before we really touch them.
+ for (int li = 0; li < TABLE_COUNT; ++li) {
+ struct load_cl * const l = &kru->load_cls[hash & loads_mask][li];
+ __builtin_prefetch(l, 0); // hope for read-only access
+ hash >>= kru->loads_bits;
+ ctx->l[li] = l;
+ }
+
+ ctx->time_now = time_now;
+ ctx->price = price;
+ ctx->id = hash;
+}
+
+/// Phase 1/3 of a query -- hash, prefetch, ctx init. Based on a bit prefix of one 16-byte key.
+static inline void kru_limited_prefetch_prefix(struct kru *kru, uint32_t time_now, uint8_t namespace, uint8_t key[static 16], uint8_t prefix, kru_price_t price, struct query_ctx *ctx)
+{
+ // Obtain hash of *buf.
+ hash_t hash;
+
+#if !USE_AES
+ {
+ const int rc = SIPHASH_RC, rf = SIPHASH_RF;
+
+ // Hash prefix of key, prefix size, and namespace together.
+ SIPHASH_CTX hctx;
+ SipHash_Init(&hctx, &kru->hash_key);
+ SipHash_Update(&hctx, rc, rf, &namespace, sizeof(namespace));
+ SipHash_Update(&hctx, rc, rf, &prefix, sizeof(prefix));
+ SipHash_Update(&hctx, rc, rf, key, prefix / 8);
+ if (prefix % 8) {
+ const uint8_t masked_byte = key[prefix / 8] & (0xFF00 >> (prefix % 8));
+ SipHash_Update(&hctx, rc, rf, &masked_byte, 1);
+ }
+ hash = SipHash_End(&hctx, rc, rf);
+ }
+#else
+ {
+
+ __m128i h; /// hashing state
+ h = _mm_load_si128((__m128i *)key);
+
+ { // Keep only the prefix.
+ const uint8_t p = prefix;
+
+ // Prefix mask (1...0) -> little endian byte array (0x00 ... 0x00 0xFF ... 0xFF).
+ __m128i mask = _mm_set_epi64x(
+ (p < 64 ? (p == 0 ? 0 : (uint64_t)-1 << (64 - p)) : (uint64_t)-1), // higher 64 bits (1...) -> second half of byte array (... 0xFF)
+ (p <= 64 ? 0 : (uint64_t)-1 << (128 - p))); // lower 64 bits (...0) -> first half of byte array (0x00 ...)
+
+ // Swap mask endianness (0x11 ... 0x11 0x00 ... 0x00).
+ mask = _mm_shuffle_epi8(mask,
+ _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15));
+
+ // Apply mask.
+ h = _mm_and_si128(h, mask);
+ }
+
+ // Now do the the hashing itself.
+ __m128i *aes_key = (void*)kru->hash_key;
+ {
+ // Mix namespace and prefix size into the first aes key.
+ __m128i aes_key1 = _mm_insert_epi16(_mm_load_si128(aes_key), (namespace << 8) | prefix, 0);
+ h = _mm_aesenc_si128(h, aes_key1);
+ }
+ for (int j = 1; j < AES_ROUNDS; ++j) {
+ int key_id = j % (sizeof(kru->hash_key) / sizeof(__m128i));
+ h = _mm_aesenc_si128(h, _mm_load_si128(&aes_key[key_id]));
+ }
+ memcpy(&hash, &h, sizeof(hash));
+ }
+#endif
+
+ // Choose the cache-lines to operate on
+ const uint32_t loads_mask = (1 << kru->loads_bits) - 1;
+ // Fetch the two cache-lines in parallel before we really touch them.
+ for (int li = 0; li < TABLE_COUNT; ++li) {
+ struct load_cl * const l = &kru->load_cls[hash & loads_mask][li];
+ __builtin_prefetch(l, 0); // hope for read-only access
+ hash >>= kru->loads_bits;
+ ctx->l[li] = l;
+ }
+
+ ctx->time_now = time_now;
+ ctx->price = price;
+ ctx->id = hash;
+}
+
+/// Phase 2/3 of a query -- returns answer with no state modification (except update_time).
+static inline bool kru_limited_fetch(struct kru *kru, struct query_ctx *ctx)
+{
+ // Compute 16-bit limit and price.
+ // For 32-bit prices we assume that a 16-bit load value corresponds
+ // to the 32-bit value extended by low-significant ones and the limit is 2^32 (without ones).
+ // The 16-bit price is thus rounded up for the comparison with limit,
+ // but rounded probabilistically for rising the load.
+ {
+ const int fract_bits = 8 * sizeof(ctx->price) - 16;
+ const kru_price_t price = ctx->price;
+ const kru_price_t fract = price & ((((kru_price_t)1) << fract_bits) - 1);
+
+ ctx->price16 = price >> fract_bits;
+ ctx->limit16 = -ctx->price16;
+
+ if ((fract_bits > 0) && (fract > 0)) {
+ ctx->price16 += (rand_bits(fract_bits) < fract);
+ ctx->limit16--;
+ }
+ }
+
+ for (int li = 0; li < TABLE_COUNT; ++li) {
+ update_time(ctx->l[li], ctx->time_now, &kru->decay);
+ }
+
+ const uint16_t id = ctx->id;
+
+ // Find matching element. Matching 16 bits in addition to loads_bits.
+ ctx->load = NULL;
+#if !USE_AVX2
+ for (int li = 0; li < TABLE_COUNT; ++li)
+ for (int i = 0; i < LOADS_LEN; ++i)
+ if (ctx->l[li]->ids[i] == id) {
+ ctx->load = &ctx->l[li]->loads[i];
+ goto load_found;
+ }
+#else
+ const __m256i id_v = _mm256_set1_epi16(id);
+ for (int li = 0; li < TABLE_COUNT; ++li) {
+ static_assert(LOADS_LEN == 15 && sizeof(ctx->l[li]->ids[0]) == 2, "");
+ // unfortunately we can't use aligned load here
+ __m256i ids_v = _mm256_loadu_si256((__m256i *)((uint16_t *)ctx->l[li]->ids - 1));
+ __m256i match_mask = _mm256_cmpeq_epi16(ids_v, id_v);
+ if (_mm256_testz_si256(match_mask, match_mask))
+ continue; // no match of id
+ int index = _bit_scan_reverse(_mm256_movemask_epi8(match_mask)) / 2 - 1;
+ // there's a small possibility that we hit equality only on the -1 index
+ if (index >= 0) {
+ ctx->load = &ctx->l[li]->loads[index];
+ goto load_found;
+ }
+ }
+#endif
+
+ ctx->final_load_value = 0;
+ return false;
+
+load_found:;
+ ctx->final_load_value = *ctx->load;
+ return (ctx->final_load_value >= ctx->limit16);
+}
+
+/// Phase 3/3 of a query -- state update, return value overrides previous answer in case of race.
+/// Not needed if blocked by fetch phase. If overflow_update is activated, false is always returned.
+static inline bool kru_limited_update(struct kru *kru, struct query_ctx *ctx, bool overflow_update)
+{
+ _Atomic uint16_t *load_at;
+ if (!ctx->load) {
+ // No match, so find position of the smallest load.
+ int min_li = 0;
+ int min_i = 0;
+#if !USE_SSE41
+ for (int li = 0; li < TABLE_COUNT; ++li)
+ for (int i = 0; i < LOADS_LEN; ++i)
+ if (ctx->l[li]->loads[i] < ctx->l[min_li]->loads[min_i]) {
+ min_li = li;
+ min_i = i;
+ }
+#else
+ int min_val = 0;
+ for (int li = 0; li < TABLE_COUNT; ++li) {
+ // BEWARE: we're relying on the exact memory layout of struct load_cl,
+ // where the .loads array take 15 16-bit values at the very end.
+ static_assert((offsetof(struct load_cl, loads) - 2) % 16 == 0,
+ "bad alignment of struct load_cl::loads");
+ static_assert(LOADS_LEN == 15 && sizeof(ctx->l[li]->loads[0]) == 2, "");
+ __m128i *l_v = (__m128i *)((uint16_t *)ctx->l[li]->loads - 1);
+ __m128i l0 = _mm_load_si128(l_v);
+ __m128i l1 = _mm_load_si128(l_v + 1);
+ // We want to avoid the first item in l0, so we maximize it.
+ // (but this function takes a signed integer, so -1 is the maximum)
+ l0 = _mm_insert_epi16(l0, -1, 0);
+
+ // Only one instruction can find minimum and its position,
+ // and it works on 8x uint16_t.
+ __m128i mp0 = _mm_minpos_epu16(l0);
+ __m128i mp1 = _mm_minpos_epu16(l1);
+ int min0 = _mm_extract_epi16(mp0, 0);
+ int min1 = _mm_extract_epi16(mp1, 0);
+ int min01, min_ix;
+ if (min0 < min1) {
+ min01 = min0;
+ min_ix = _mm_extract_epi16(mp0, 1);
+ } else {
+ min01 = min1;
+ min_ix = 8 + _mm_extract_epi16(mp1, 1);
+ }
+
+ if (li == 0 || min_val > min01) {
+ min_li = li;
+ min_i = min_ix;
+ min_val = min01;
+ }
+ }
+ // now, min_i (and min_ix) is offset by one due to alignment of .loads
+ if (min_i != 0) // zero is very unlikely
+ --min_i;
+#endif
+
+ ctx->l[min_li]->ids[min_i] = ctx->id;
+ load_at = (_Atomic uint16_t *)&ctx->l[min_li]->loads[min_i];
+ } else {
+ load_at = (_Atomic uint16_t *)ctx->load;
+ }
+
+ static_assert(ATOMIC_CHAR16_T_LOCK_FREE == 2, "insufficient atomics");
+ const uint16_t price = ctx->price16;
+ const uint16_t limit = ctx->limit16;
+ uint16_t load_orig = atomic_load_explicit(load_at, memory_order_relaxed);
+ uint16_t load_new;
+ do {
+ if (load_orig >= limit) {
+ if (overflow_update) {
+ load_new = -1;
+ } else {
+ return true;
+ }
+ } else {
+ load_new = load_orig + price;
+ }
+ } while (!atomic_compare_exchange_weak_explicit(load_at, &load_orig, load_new, memory_order_relaxed, memory_order_relaxed));
+
+ ctx->final_load_value = load_new;
+ return false;
+}
+
+static bool kru_limited_multi_or(struct kru *kru, uint32_t time_now, uint8_t **keys, kru_price_t *prices, size_t queries_cnt)
+{
+ struct query_ctx ctx[queries_cnt];
+
+ for (size_t i = 0; i < queries_cnt; i++) {
+ kru_limited_prefetch(kru, time_now, keys[i], prices[i], ctx + i);
+ }
+ for (size_t i = 0; i < queries_cnt; i++) {
+ if (kru_limited_fetch(kru, ctx + i))
+ return true;
+ }
+ bool ret = false;
+
+ for (size_t i = 0; i < queries_cnt; i++) {
+ ret |= kru_limited_update(kru, ctx + i, false);
+ }
+
+ return ret;
+}
+
+static bool kru_limited_multi_or_nobreak(struct kru *kru, uint32_t time_now, uint8_t **keys, kru_price_t *prices, size_t queries_cnt)
+{
+ struct query_ctx ctx[queries_cnt];
+ bool ret = false;
+
+ for (size_t i = 0; i < queries_cnt; i++) {
+ kru_limited_prefetch(kru, time_now, keys[i], prices[i], ctx + i);
+ }
+ for (size_t i = 0; i < queries_cnt; i++) {
+ if (kru_limited_fetch(kru, ctx + i))
+ ret = true;
+ }
+ if (ret) return true;
+
+ for (size_t i = 0; i < queries_cnt; i++) {
+ if (kru_limited_update(kru, ctx + i, false))
+ ret = true;
+ }
+
+ return ret;
+}
+
+static uint8_t kru_limited_multi_prefix_or(struct kru *kru, uint32_t time_now, uint8_t namespace,
+ uint8_t key[static 16], uint8_t *prefixes, kru_price_t *prices, size_t queries_cnt, uint16_t *max_load_out)
+{
+ struct query_ctx ctx[queries_cnt];
+
+ for (size_t i = 0; i < queries_cnt; i++) {
+ kru_limited_prefetch_prefix(kru, time_now, namespace, key, prefixes[i], prices[i], ctx + i);
+ }
+
+ for (size_t i = 0; i < queries_cnt; i++) {
+ if (kru_limited_fetch(kru, ctx + i))
+ return prefixes[i];
+ }
+
+ for (int i = queries_cnt - 1; i >= 0; i--) {
+ if (kru_limited_update(kru, ctx + i, false))
+ return prefixes[i];
+ }
+
+ if (max_load_out) {
+ *max_load_out = 0;
+ for (size_t i = 0; i < queries_cnt; i++) {
+ *max_load_out = MAX(*max_load_out, ctx[i].final_load_value);
+ }
+ }
+
+ return 0;
+}
+
+static uint16_t kru_load_multi_prefix_max(struct kru *kru, uint32_t time_now, uint8_t namespace,
+ uint8_t key[static 16], uint8_t *prefixes, kru_price_t *prices, size_t queries_cnt, uint8_t *prefix_out)
+{
+ struct query_ctx ctx[queries_cnt];
+
+ for (size_t i = 0; i < queries_cnt; i++) {
+ kru_limited_prefetch_prefix(kru, time_now, namespace, key, prefixes[i], (prices ? prices[i] : 0), ctx + i);
+ }
+
+ for (size_t i = 0; i < queries_cnt; i++) {
+ kru_limited_fetch(kru, ctx + i);
+ }
+
+ if (prices) {
+ for (int i = queries_cnt - 1; i >= 0; i--) {
+ kru_limited_update(kru, ctx + i, true);
+ }
+ }
+
+ uint8_t prefix = 0;
+ uint16_t max_load = 0;
+ for (size_t i = 0; i < queries_cnt; i++) {
+ if (max_load < ctx[i].final_load_value) {
+ max_load = ctx[i].final_load_value;
+ prefix = prefixes[i];
+ }
+ }
+ if (prefix_out) {
+ *prefix_out = prefix;
+ }
+
+ return max_load;
+}
+
+/// Update limiting and return true iff it hit the limit instead.
+static bool kru_limited(struct kru *kru, uint32_t time_now, uint8_t key[static 16], kru_price_t price)
+{
+ return kru_limited_multi_or(kru, time_now, &key, &price, 1);
+}
+
+#define KRU_API_INITIALIZER { \
+ .get_size = kru_get_size, \
+ .initialize = kru_initialize, \
+ .limited = kru_limited, \
+ .limited_multi_or = kru_limited_multi_or, \
+ .limited_multi_or_nobreak = kru_limited_multi_or_nobreak, \
+ .limited_multi_prefix_or = kru_limited_multi_prefix_or, \
+ .load_multi_prefix_max = kru_load_multi_prefix_max, \
+}
diff --git a/src/knot/modules/rrl/rrl.c b/src/knot/modules/rrl/rrl.c
index 64f6cbf..d1ec7b5 100644
--- a/src/knot/modules/rrl/rrl.c
+++ b/src/knot/modules/rrl/rrl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -14,28 +14,47 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+#include "contrib/time.h"
#include "knot/include/module.h"
-#include "knot/nameserver/process_query.h" // Dependency on qdata->extra!
#include "knot/modules/rrl/functions.h"
+#include "knot/modules/rrl/kru.h"
#define MOD_RATE_LIMIT "\x0A""rate-limit"
+#define MOD_INST_LIMIT "\x0D""instant-limit"
+#define MOD_T_RATE_LIMIT "\x0F""time-rate-limit"
+#define MOD_T_INST_LIMIT "\x12""time-instant-limit"
#define MOD_SLIP "\x04""slip"
#define MOD_TBL_SIZE "\x0A""table-size"
#define MOD_WHITELIST "\x09""whitelist"
+#define MOD_LOG_PERIOD "\x0A""log-period"
+#define MOD_DRY_RUN "\x07""dry-run"
const yp_item_t rrl_conf[] = {
- { MOD_RATE_LIMIT, YP_TINT, YP_VINT = { 1, INT32_MAX } },
- { MOD_SLIP, YP_TINT, YP_VINT = { 0, 100, 1 } },
- { MOD_TBL_SIZE, YP_TINT, YP_VINT = { 1, INT32_MAX, 393241 } },
- { MOD_WHITELIST, YP_TNET, YP_VNONE, YP_FMULTI },
+ { MOD_INST_LIMIT, YP_TINT, YP_VINT = { 1, (1ll << 32) / 768 - 1, 50 } },
+ { MOD_RATE_LIMIT, YP_TINT, YP_VINT = { 0, ((1ll << 32) / 768 - 1) * 1000, 20 } },
+ { MOD_T_INST_LIMIT, YP_TINT, YP_VINT = { 1, 1000000, 5000 } },
+ { MOD_T_RATE_LIMIT, YP_TINT, YP_VINT = { 0, 1000000000, 4000 } },
+ { MOD_SLIP, YP_TINT, YP_VINT = { 0, 100, 1 } },
+ { MOD_TBL_SIZE, YP_TINT, YP_VINT = { 1, INT32_MAX, 524288 } },
+ { MOD_WHITELIST, YP_TNET, YP_VNONE, YP_FMULTI },
+ { MOD_LOG_PERIOD, YP_TINT, YP_VINT = { 0, INT32_MAX, 0 } },
+ { MOD_DRY_RUN, YP_TBOOL, YP_VNONE },
{ NULL }
};
int rrl_conf_check(knotd_conf_check_args_t *args)
{
- knotd_conf_t limit = knotd_conf_check_item(args, MOD_RATE_LIMIT);
- if (limit.count == 0) {
- args->err_str = "no rate limit specified";
+ knotd_conf_t rate_limit = knotd_conf_check_item(args, MOD_RATE_LIMIT);
+ knotd_conf_t inst_limit = knotd_conf_check_item(args, MOD_INST_LIMIT);
+ if (rate_limit.single.integer > 1000ll * inst_limit.single.integer) {
+ args->err_str = "rate limit is higher than 1000 times instant rate limit";
+ return KNOT_EINVAL;
+ }
+
+ knotd_conf_t t_rate_limit = knotd_conf_check_item(args, MOD_T_RATE_LIMIT);
+ knotd_conf_t t_inst_limit = knotd_conf_check_item(args, MOD_T_INST_LIMIT);
+ if (t_rate_limit.single.integer > 1000ll * t_inst_limit.single.integer) {
+ args->err_str = "time rate limit is higher than 1000 times time instant limit";
return KNOT_EINVAL;
}
@@ -43,35 +62,78 @@ int rrl_conf_check(knotd_conf_check_args_t *args)
}
typedef struct {
- rrl_table_t *rrl;
+ ALIGNED_CPU_CACHE // Ensures that one thread context occupies one cache line.
+ struct timespec start_time; // Start time of the measurement.
+ bool whitelist_checked; // Indication whether whitelist check took place.
+ bool skip; // Skip the rest of the module callbacks.
+} thrd_ctx_t;
+
+typedef struct {
+ rrl_table_t *rate_table;
+ rrl_table_t *time_table;
+ thrd_ctx_t *thrd_ctx;
int slip;
+ bool dry_run;
knotd_conf_t whitelist;
} rrl_ctx_t;
-static const knot_dname_t *name_from_rrsig(const knot_rrset_t *rr)
+static uint32_t time_diff_us(const struct timespec *begin, const struct timespec *end)
+{
+ struct timespec result = time_diff(begin, end);
+ return (result.tv_sec * 1000000) + (result.tv_nsec / 1000);
+}
+
+static knotd_proto_state_t protolimit_start(knotd_proto_state_t state,
+ knotd_qdata_params_t *params,
+ knotd_mod_t *mod)
{
- if (rr == NULL) {
- return NULL;
+ rrl_ctx_t *ctx = knotd_mod_ctx(mod);
+ thrd_ctx_t *thrd = &ctx->thrd_ctx[params->thread_id];
+ thrd->skip = false;
+
+ // Check if a whitelisted client.
+ thrd->whitelist_checked = true;
+ if (knotd_conf_addr_range_match(&ctx->whitelist, params->remote)) {
+ thrd->skip = true;
+ return state;
}
- if (rr->type != KNOT_RRTYPE_RRSIG) {
- return NULL;
+
+ // UDP time limiting not implemented (source address can be forged).
+ if (params->proto == KNOTD_QUERY_PROTO_UDP) {
+ return state;
}
- // This is a signature.
- return knot_rrsig_signer_name(rr->rrs.rdata);
+ // Check if the packet is limited.
+ if (rrl_query(ctx->time_table, params->remote, mod) != KNOT_EOK) {
+ thrd->skip = true;
+ knotd_mod_stats_incr(mod, params->thread_id, 2, 0, 1);
+ return ctx->dry_run ? state : KNOTD_PROTO_STATE_BLOCK;
+ } else {
+ clock_gettime(CLOCK_THREAD_CPUTIME_ID, &thrd->start_time);
+ return state; // Not limited.
+ }
}
-static const knot_dname_t *name_from_authrr(const knot_rrset_t *rr)
+static knotd_proto_state_t protolimit_end(knotd_proto_state_t state,
+ knotd_qdata_params_t *params,
+ knotd_mod_t *mod)
{
- if (rr == NULL) {
- return NULL;
+ rrl_ctx_t *ctx = knotd_mod_ctx(mod);
+ thrd_ctx_t *thrd = &ctx->thrd_ctx[params->thread_id];
+
+ if (thrd->skip || params->proto == KNOTD_QUERY_PROTO_UDP) {
+ return state;
}
- if (rr->type != KNOT_RRTYPE_NS && rr->type != KNOT_RRTYPE_SOA) {
- return NULL;
+
+ // Update the time table.
+ struct timespec end_time;
+ clock_gettime(CLOCK_THREAD_CPUTIME_ID, &end_time);
+ uint64_t diff = time_diff_us(&thrd->start_time, &end_time);
+ if (diff > 0) { // Zero KRU update is NOOP.
+ rrl_update(ctx->time_table, params->remote, diff);
}
- // This is a valid authority RR.
- return rr->owner;
+ return state;
}
static knotd_state_t ratelimit_apply(knotd_state_t state, knot_pkt_t *pkt,
@@ -80,57 +142,36 @@ static knotd_state_t ratelimit_apply(knotd_state_t state, knot_pkt_t *pkt,
assert(pkt && qdata && mod);
rrl_ctx_t *ctx = knotd_mod_ctx(mod);
+ thrd_ctx_t *thrd = &ctx->thrd_ctx[qdata->params->thread_id];
- // Rate limit is applied to pure UDP only.
- if (qdata->params->proto != KNOTD_QUERY_PROTO_UDP) {
+ if (thrd->skip) {
return state;
}
- // Rate limit is not applied to responses with a valid cookie.
- if (qdata->params->flags & KNOTD_QUERY_FLAG_COOKIE) {
+ // Don't limit authorized operations.
+ if (qdata->params->flags & KNOTD_QUERY_FLAG_AUTHORIZED) {
+ thrd->skip = true;
return state;
}
- // Exempt clients.
- if (knotd_conf_addr_range_match(&ctx->whitelist, knotd_qdata_remote_addr(qdata))) {
+ // Rate limit is applied to UDP only.
+ if (qdata->params->proto != KNOTD_QUERY_PROTO_UDP) {
return state;
}
- rrl_req_t req = {
- .wire = pkt->wire,
- .query = qdata->query
- };
-
- if (!EMPTY_LIST(qdata->extra->wildcards)) {
- req.flags = RRL_REQ_WILDCARD;
- }
-
- // Take the zone name if known.
- const knot_dname_t *zone_name = knotd_qdata_zone_name(qdata);
-
- // Take the signer name as zone name if there is an RRSIG.
- if (zone_name == NULL) {
- const knot_pktsection_t *ans = knot_pkt_section(pkt, KNOT_ANSWER);
- for (int i = 0; i < ans->count; i++) {
- zone_name = name_from_rrsig(knot_pkt_rr(ans, i));
- if (zone_name != NULL) {
- break;
- }
- }
+ // Check for whitelisted client IF PER-ZONE module (no proto callbacks).
+ if (!thrd->whitelist_checked &&
+ knotd_conf_addr_range_match(&ctx->whitelist, qdata->params->remote)) {
+ thrd->skip = true;
+ return state;
}
- // Take the NS or SOA owner name if there is no RRSIG.
- if (zone_name == NULL) {
- const knot_pktsection_t *auth = knot_pkt_section(pkt, KNOT_AUTHORITY);
- for (int i = 0; i < auth->count; i++) {
- zone_name = name_from_authrr(knot_pkt_rr(auth, i));
- if (zone_name != NULL) {
- break;
- }
- }
+ // Rate limit is not applied to responses with a valid cookie.
+ if (qdata->params->flags & KNOTD_QUERY_FLAG_COOKIE) {
+ return state;
}
- if (rrl_query(ctx->rrl, knotd_qdata_remote_addr(qdata), &req, zone_name, mod) == KNOT_EOK) {
+ if (rrl_query(ctx->rate_table, knotd_qdata_remote_addr(qdata), mod) == KNOT_EOK) {
// Rate limiting not applied.
return state;
}
@@ -139,11 +180,11 @@ static knotd_state_t ratelimit_apply(knotd_state_t state, knot_pkt_t *pkt,
// Slip the answer.
knotd_mod_stats_incr(mod, qdata->params->thread_id, 0, 0, 1);
qdata->err_truncated = true;
- return KNOTD_STATE_FAIL;
+ return ctx->dry_run ? state : KNOTD_STATE_FAIL;
} else {
// Drop the answer.
knotd_mod_stats_incr(mod, qdata->params->thread_id, 1, 0, 1);
- return KNOTD_STATE_NOOP;
+ return ctx->dry_run ? state : KNOTD_STATE_NOOP;
}
}
@@ -151,58 +192,96 @@ static void ctx_free(rrl_ctx_t *ctx)
{
assert(ctx);
- rrl_destroy(ctx->rrl);
+ free(ctx->thrd_ctx);
+ rrl_destroy(ctx->rate_table);
+ rrl_destroy(ctx->time_table);
+ knotd_conf_free(&ctx->whitelist);
free(ctx);
}
int rrl_load(knotd_mod_t *mod)
{
- // Create RRL context.
rrl_ctx_t *ctx = calloc(1, sizeof(rrl_ctx_t));
if (ctx == NULL) {
return KNOT_ENOMEM;
}
- // Create table.
- uint32_t rate = knotd_conf_mod(mod, MOD_RATE_LIMIT).single.integer;
- size_t size = knotd_conf_mod(mod, MOD_TBL_SIZE).single.integer;
- ctx->rrl = rrl_create(size, rate);
- if (ctx->rrl == NULL) {
+ ctx->dry_run = knotd_conf_mod(mod, MOD_DRY_RUN).single.boolean;
+ ctx->whitelist = knotd_conf_mod(mod, MOD_WHITELIST);
+
+ ctx->thrd_ctx = calloc(knotd_mod_threads(mod), sizeof(*ctx->thrd_ctx));
+ if (ctx->thrd_ctx == NULL) {
ctx_free(ctx);
return KNOT_ENOMEM;
}
- // Get slip.
- ctx->slip = knotd_conf_mod(mod, MOD_SLIP).single.integer;
+ size_t size = knotd_conf_mod(mod, MOD_TBL_SIZE).single.integer;
+ uint32_t log_period = knotd_conf_mod(mod, MOD_LOG_PERIOD).single.integer;
+
+ uint32_t rate_limit = knotd_conf_mod(mod, MOD_RATE_LIMIT).single.integer;
+ if (rate_limit > 0) {
+ uint32_t inst_limit = knotd_conf_mod(mod, MOD_INST_LIMIT).single.integer;
+ ctx->rate_table = rrl_create(size, inst_limit, rate_limit, true, log_period);
+ if (ctx->rate_table == NULL) {
+ ctx_free(ctx);
+ return KNOT_ENOMEM;
+ }
+ ctx->slip = knotd_conf_mod(mod, MOD_SLIP).single.integer;
+ }
- // Get whitelist.
- ctx->whitelist = knotd_conf_mod(mod, MOD_WHITELIST);
+ uint32_t time_limit = knotd_conf_mod(mod, MOD_T_RATE_LIMIT).single.integer;
+ if (time_limit > 0) {
+ uint32_t inst_limit = knotd_conf_mod(mod, MOD_T_INST_LIMIT).single.integer;
+ ctx->time_table = rrl_create(size, inst_limit, time_limit, false, log_period);
+ if (ctx->time_table == NULL) {
+ ctx_free(ctx);
+ return KNOT_ENOMEM;
+ }
+ }
- // Set up statistics counters.
int ret = knotd_mod_stats_add(mod, "slipped", 1, NULL);
if (ret != KNOT_EOK) {
ctx_free(ctx);
return ret;
}
-
ret = knotd_mod_stats_add(mod, "dropped", 1, NULL);
if (ret != KNOT_EOK) {
ctx_free(ctx);
return ret;
}
+ ret = knotd_mod_stats_add(mod, "dropped-time", 1, NULL);
+ if (ret != KNOT_EOK) {
+ ctx_free(ctx);
+ return ret;
+ }
+
+ /* The explicit reference of the AVX2 variant ensures the optimized
+ * code isn't removed by linker if linking statically.
+ * Check: nm ./src/.libs/knotd | grep KRU_
+ * https://stackoverflow.com/a/28663156/587396
+ */
+ knotd_mod_log(mod, LOG_DEBUG, "using %s implementation",
+ KRU.limited == KRU_AVX2.limited ? "optimized" : "generic");
knotd_mod_ctx_set(mod, ctx);
- return knotd_mod_hook(mod, KNOTD_STAGE_END, ratelimit_apply);
+ if (rate_limit > 0) {
+ knotd_mod_hook(mod, KNOTD_STAGE_BEGIN, ratelimit_apply);
+ }
+
+ if (time_limit > 0) {
+ // Note that these two callbacks aren't executed IF PER-ZONE module!
+ knotd_mod_proto_hook(mod, KNOTD_STAGE_PROTO_BEGIN, protolimit_start);
+ knotd_mod_proto_hook(mod, KNOTD_STAGE_PROTO_END, protolimit_end);
+ }
+
+ return KNOT_EOK;
}
void rrl_unload(knotd_mod_t *mod)
{
- rrl_ctx_t *ctx = knotd_mod_ctx(mod);
-
- knotd_conf_free(&ctx->whitelist);
- ctx_free(ctx);
+ ctx_free(knotd_mod_ctx(mod));
}
-KNOTD_MOD_API(rrl, KNOTD_MOD_FLAG_SCOPE_ANY,
+KNOTD_MOD_API(rrl, KNOTD_MOD_FLAG_SCOPE_ANY | KNOTD_MOD_FLAG_OPT_CONF,
rrl_load, rrl_unload, rrl_conf, rrl_conf_check);
diff --git a/src/knot/modules/rrl/rrl.rst b/src/knot/modules/rrl/rrl.rst
index 0daae16..85c8d35 100644
--- a/src/knot/modules/rrl/rrl.rst
+++ b/src/knot/modules/rrl/rrl.rst
@@ -4,37 +4,52 @@
================================
Response rate limiting (RRL) is a method to combat DNS reflection amplification
-attacks. These attacks rely on the fact that source address of a UDP query
+attacks. These attacks rely on the fact that the source address of a UDP query
can be forged, and without a worldwide deployment of `BCP38
<https://tools.ietf.org/html/bcp38>`_, such a forgery cannot be prevented.
An attacker can use a DNS server (or multiple servers) as an amplification
-source and can flood a victim with a large number of unsolicited DNS responses.
-The RRL lowers the amplification factor of these attacks by sending some of
-the responses as truncated or by dropping them altogether.
+source to flood a victim with a large number of unsolicited DNS responses.
+RRL lowers the amplification factor of these attacks by sending some
+responses as truncated or by dropping them altogether.
+
+This module can also help protect the server from excessive utilization by
+limiting incoming packets (including handshakes) based on consumed time.
+If a packet is time rate limited, it's dropped. This function works with
+all supported non-UDP transport protocols and cannot be configured per zone.
.. NOTE::
- The module introduces two statistics counters. The number of slipped and
- dropped responses.
+ This module introduces three statistics counters:
+
+ - ``slipped`` – The number of slipped UDP responses.
+ - ``dropped`` – The number of dropped UDP responses due to the rate limit.
+ - ``dropped-time`` – The number of dropped non-UDP packets due to the time rate limit.
.. NOTE::
If the :ref:`Cookies<mod-cookies>` module is active, RRL is not applied
- for responses with a valid DNS cookie.
+ to UDP responses with a valid DNS cookie.
Example
-------
-You can enable RRL by setting the module globally or per zone.
+You can enable RRL by setting the module globally
::
- mod-rrl:
- - id: default
- rate-limit: 200 # Allow 200 resp/s for each flow
- slip: 2 # Approximately every other response slips
-
template:
- id: default
- global-module: mod-rrl/default # Enable RRL globally
+ global-module: mod-rrl # Default module configuration
+
+or per zone
+
+::
+
+ mod-rrl:
+ - id: custom
+ rate-limit: 200
+
+ zone:
+ - domain: example.com
+ module: mod-rrl/custom # Custom module configuration
Module reference
----------------
@@ -44,9 +59,14 @@ Module reference
mod-rrl:
- id: STR
rate-limit: INT
+ instant-limit: INT
slip: INT
+ time-rate-limit: INT
+ time-instant-limit: INT
table-size: INT
whitelist: ADDR[/INT] | ADDR-ADDR | STR ...
+ log-period: INT
+ dry-run: BOOL
.. _mod-rrl_id:
@@ -60,30 +80,42 @@ A module identifier.
rate-limit
..........
-Rate limiting is based on the token bucket scheme. A rate basically
-represents a number of tokens available each second. Each response is
-processed and classified (based on several discriminators, e.g.
-source netblock, query type, zone name, rcode, etc.). Classified responses are
-then hashed and assigned to a bucket containing number of available
-tokens, timestamp and metadata. When available tokens are exhausted,
-response is dropped or sent as truncated (see :ref:`mod-rrl_slip`).
-Number of available tokens is recalculated each second.
+Maximal allowed number of UDP queries per second from a single IPv6 or IPv4 address.
-*Required*
+Rate limiting is performed for the whole address and several chosen prefixes.
+The limits of prefixes are constant multiples of :ref:`mod-rrl_rate-limit`.
-.. _mod-rrl_table-size:
+The specific prefixes and multipliers, which might be adjusted in the future, are
+for IPv6 /128: 1, /64: 2, /56: 3, /48: 4, /32: 64;
+for IPv4 /32: 1, /24: 32, /20: 256, /18: 768.
-table-size
-..........
+With each host/network, a counter of unrestricted responses is associated;
+if the counter would exceed its capacity, it is not incremented and the response is restricted.
+Counters use exponential decay for lowering their values,
+i.e. they are lowered by a constant fraction of their value each millisecond.
+The specified rate limit is reached, when the number of queries is the same every millisecond;
+sending many queries once a second or even a larger timespan leads to a more strict limiting.
+
+*Default:* ``20``
+
+.. _mod-rrl_instant-limit:
+
+instant-limit
+.............
+
+Maximal allowed number of queries at a single point in time from a single IPv6 or IPv4 address.
+The limits for prefixes use the same multipliers as for :ref:`mod-rrl_rate-limit`.
-Size of the hash table in a number of buckets. The larger the hash table, the lesser
-the probability of a hash collision, but at the expense of additional memory costs.
-Each bucket is estimated roughly to 32 bytes. The size should be selected as
-a reasonably large prime due to better hash function distribution properties.
-Hash table is internally chained and works well up to a fill rate of 90 %, general
-rule of thumb is to select a prime near 1.2 * maximum_qps.
+This limit is reached when many queries come from a new host/network,
+or after a longer time of inactivity.
-*Default:* ``393241``
+The :ref:`mod-rrl_instant-limit` sets the actual capacity of each counter of responses,
+and together with the :ref:`mod-rrl_rate-limit` they set the fraction by which the counter
+is periodically lowered.
+The :ref:`mod-rrl_instant-limit` may be at least :ref:`mod-rrl_rate-limit` **/ 1000**, at which point the
+counters are zeroed each millisecond.
+
+*Default:* ``50``
.. _mod-rrl_slip:
@@ -121,6 +153,49 @@ noting, that some responses can't be truncated (e.g. SERVFAIL).
*Default:* ``1``
+.. _mod-rrl_time-rate-limit:
+
+time-rate-limit
+...............
+
+This limit works similarly to :ref:`mod-rrl_rate-limit` but considers the time
+consumed (in microseconds) by the remote over non-UDP transport protocols.
+
+*Default:* ``4000`` (microseconds)
+
+.. _mod-rrl_time-instant-limit:
+
+time-instant-limit
+..................
+
+This limit works similarly to :ref:`mod-rrl_instant-limit` but considers the time
+consumed (in microseconds) by the remote over non-UDP transport protocols.
+
+*Default:* ``5000`` (microseconds)
+
+.. _mod-rrl_table-size:
+
+table-size
+..........
+
+Maximal number of stored hosts/networks with their counters.
+The data structure tries to store only the most frequent sources,
+so it is safe to set it according to the expected maximal number of limited ones.
+
+Use `1.4 * maximum_qps / rate-limit`,
+where `maximum_qps` is the number of queries which can be handled by the server per second.
+There is at most `maximum_qps / rate-limit` limited hosts;
+larger networks have higher limits and so require only a fraction of the value (handled by the `1.4` multiplier).
+The value will be rounded up to the nearest power of two.
+
+The same table size is used for both counting-based and time-based limiting;
+the maximum number of time-limited hosts is expected to be lower, so it's not typically needed to be considered.
+There is at most `1 000 000 * #cpus / time-rate-limit` of them.
+
+The memory occupied by one table structure is `8 * table-size B`.
+
+*Default:* ``524288``
+
.. _mod-rrl_whitelist:
whitelist
@@ -131,3 +206,31 @@ or network ranges to exempt from rate limiting.
Empty list means that no incoming connection will be white-listed.
*Default:* not set
+
+.. _mod-rrl_log-period:
+
+log-period
+..........
+
+Minimal time in milliseconds between two log messages,
+or zero to disable logging.
+
+If a response is limited, the address and the prefix on which it was blocked is logged
+and logging is disabled for the `log-period` milliseconds.
+As long as limiting is needed, one source is logged each period
+and sources with more blocked queries have greater probability to be chosen.
+
+The approach is used by counting-based and time-based limiting separately,
+so you can expect one message per `log-period` from each of them.
+
+*Default:* ``0`` (disabled)
+
+.. _mod-rrl_dry-run:
+
+dry-run
+.......
+
+If enabled, the module doesn't alter any response. Only query classification
+is performed with possible statistics counter incrementation.
+
+*Default:* ``off``
diff --git a/src/knot/modules/stats/stats.c b/src/knot/modules/stats/stats.c
index 26262ac..c5b797b 100644
--- a/src/knot/modules/stats/stats.c
+++ b/src/knot/modules/stats/stats.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -118,9 +118,11 @@ enum {
PROTOCOL_UDP4 = 0,
PROTOCOL_TCP4,
PROTOCOL_QUIC4,
+ PROTOCOL_TLS4,
PROTOCOL_UDP6,
PROTOCOL_TCP6,
PROTOCOL_QUIC6,
+ PROTOCOL_TLS6,
PROTOCOL_UDP4_XDP,
PROTOCOL_TCP4_XDP,
PROTOCOL_QUIC4_XDP,
@@ -136,9 +138,11 @@ static char *protocol_to_str(uint32_t idx, uint32_t count)
case PROTOCOL_UDP4: return strdup("udp4");
case PROTOCOL_TCP4: return strdup("tcp4");
case PROTOCOL_QUIC4: return strdup("quic4");
+ case PROTOCOL_TLS4: return strdup("tls4");
case PROTOCOL_UDP6: return strdup("udp6");
case PROTOCOL_TCP6: return strdup("tcp6");
case PROTOCOL_QUIC6: return strdup("quic6");
+ case PROTOCOL_TLS6: return strdup("tls6");
case PROTOCOL_UDP4_XDP: return strdup("udp4-xdp");
case PROTOCOL_TCP4_XDP: return strdup("tcp4-xdp");
case PROTOCOL_QUIC4_XDP: return strdup("quic4-xdp");
@@ -521,6 +525,10 @@ static knotd_state_t update_counters(knotd_state_t state, knot_pkt_t *pkt,
knotd_mod_stats_incr(mod, tid, CTR_PROTOCOL,
PROTOCOL_QUIC4, 1);
}
+ } else if (qdata->params->proto == KNOTD_QUERY_PROTO_TLS) {
+ assert(!xdp);
+ knotd_mod_stats_incr(mod, tid, CTR_PROTOCOL,
+ PROTOCOL_TLS4, 1);
} else {
if (xdp) {
knotd_mod_stats_incr(mod, tid, CTR_PROTOCOL,
@@ -547,6 +555,10 @@ static knotd_state_t update_counters(knotd_state_t state, knot_pkt_t *pkt,
knotd_mod_stats_incr(mod, tid, CTR_PROTOCOL,
PROTOCOL_QUIC6, 1);
}
+ } else if (qdata->params->proto == KNOTD_QUERY_PROTO_TLS) {
+ assert(!xdp);
+ knotd_mod_stats_incr(mod, tid, CTR_PROTOCOL,
+ PROTOCOL_TLS6, 1);
} else {
if (xdp) {
knotd_mod_stats_incr(mod, tid, CTR_PROTOCOL,
diff --git a/src/knot/modules/stats/stats.rst b/src/knot/modules/stats/stats.rst
index 8acf1aa..71cf87a 100644
--- a/src/knot/modules/stats/stats.rst
+++ b/src/knot/modules/stats/stats.rst
@@ -73,9 +73,11 @@ If enabled, all incoming requests are counted by the network protocol:
* udp4 - UDP over IPv4
* tcp4 - TCP over IPv4
* quic4 - QUIC over IPv4
+* tls4 - TLS over IPv4
* udp6 - UDP over IPv6
* tcp6 - TCP over IPv6
* quic6 - QUIC over IPv6
+* tls6 - TLS over IPv6
* udp4-xdp - UDP over IPv4 through XDP
* tcp4-xdp - TCP over IPv4 through XDP
* quic4-xdp - QUIC over IPv4 through XDP
diff --git a/src/knot/nameserver/axfr.c b/src/knot/nameserver/axfr.c
index dcd62e9..cd9ee32 100644
--- a/src/knot/nameserver/axfr.c
+++ b/src/knot/nameserver/axfr.c
@@ -121,14 +121,14 @@ static void axfr_answer_finished(knotd_qdata_t *qdata, knot_pkt_t *pkt, int stat
xfr_stats_add(&xfr->stats, pkt->size);
xfr_stats_end(&xfr->stats);
xfr_log_finished(ZONE_NAME(qdata), LOG_OPERATION_AXFR, LOG_DIRECTION_OUT,
- REMOTE(qdata), PROTO(qdata), KEY(qdata), &xfr->stats);
+ REMOTE(qdata), PROTO(qdata), KEY(qdata), "", &xfr->stats);
break;
default:
break;
}
}
-static int axfr_query_check(knotd_qdata_t *qdata)
+static knot_layer_state_t axfr_query_check(knotd_qdata_t *qdata)
{
NS_NEED_ZONE(qdata, KNOT_RCODE_NOTAUTH);
NS_NEED_AUTH(qdata, ACL_ACTION_TRANSFER);
@@ -187,7 +187,7 @@ static int axfr_query_init(knotd_qdata_t *qdata)
return KNOT_EOK;
}
-int axfr_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
+knot_layer_state_t axfr_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
{
if (pkt == NULL || qdata == NULL) {
return KNOT_STATE_FAIL;
diff --git a/src/knot/nameserver/axfr.h b/src/knot/nameserver/axfr.h
index 81fcad8..25c5f1c 100644
--- a/src/knot/nameserver/axfr.h
+++ b/src/knot/nameserver/axfr.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -21,7 +21,5 @@
/*!
* \brief Process an AXFR query message.
- *
- * \return KNOT_STATE_* processing states
*/
-int axfr_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata);
+knot_layer_state_t axfr_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata);
diff --git a/src/knot/nameserver/internet.c b/src/knot/nameserver/internet.c
index 51bde97..034fd26 100644
--- a/src/knot/nameserver/internet.c
+++ b/src/knot/nameserver/internet.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -286,7 +286,7 @@ static int put_additional(knot_pkt_t *pkt, const knot_rrset_t *rr,
return ret;
}
-static int follow_cname(knot_pkt_t *pkt, uint16_t rrtype, knotd_qdata_t *qdata)
+static knotd_in_state_t follow_cname(knot_pkt_t *pkt, uint16_t rrtype, knotd_qdata_t *qdata)
{
/* CNAME chain processing limit. */
if (++qdata->extra->cname_chain > CNAME_CHAIN_MAX) {
@@ -369,7 +369,7 @@ static int follow_cname(knot_pkt_t *pkt, uint16_t rrtype, knotd_qdata_t *qdata)
return KNOTD_IN_STATE_FOLLOW;
}
-static int name_found(knot_pkt_t *pkt, knotd_qdata_t *qdata)
+static knotd_in_state_t name_found(knot_pkt_t *pkt, knotd_qdata_t *qdata)
{
uint16_t qtype = knot_pkt_qtype(pkt);
@@ -406,7 +406,7 @@ static int name_found(knot_pkt_t *pkt, knotd_qdata_t *qdata)
}
}
-static int name_not_found(knot_pkt_t *pkt, knotd_qdata_t *qdata)
+static knotd_in_state_t name_not_found(knot_pkt_t *pkt, knotd_qdata_t *qdata)
{
/* Name is covered by wildcard. */
if (qdata->extra->encloser->flags & NODE_FLAGS_WILDCARD_CHILD) {
@@ -419,7 +419,7 @@ static int name_not_found(knot_pkt_t *pkt, knotd_qdata_t *qdata)
assert(qdata->extra->node != NULL);
/* Follow expanded wildcard. */
- int next_state = name_found(pkt, qdata);
+ knotd_in_state_t next_state = name_found(pkt, qdata);
/* Put to wildcard node list. */
if (wildcard_has_visited(qdata, wildcard_node)) {
@@ -456,7 +456,8 @@ static int name_not_found(knot_pkt_t *pkt, knotd_qdata_t *qdata)
return KNOTD_IN_STATE_MISS;
}
-static int solve_name(int state, knot_pkt_t *pkt, knotd_qdata_t *qdata)
+static knotd_in_state_t solve_name(knotd_in_state_t state, knot_pkt_t *pkt,
+ knotd_qdata_t *qdata)
{
int ret = zone_contents_find_dname(qdata->extra->contents, qdata->name,
&qdata->extra->node, &qdata->extra->encloser,
@@ -475,7 +476,8 @@ static int solve_name(int state, knot_pkt_t *pkt, knotd_qdata_t *qdata)
}
}
-static int solve_answer(int state, knot_pkt_t *pkt, knotd_qdata_t *qdata, void *ctx)
+static knotd_in_state_t solve_answer(knotd_in_state_t state, knot_pkt_t *pkt,
+ knotd_qdata_t *qdata, void *ctx)
{
int old_state = state;
@@ -506,7 +508,8 @@ static int solve_answer(int state, knot_pkt_t *pkt, knotd_qdata_t *qdata, void *
return state;
}
-static int solve_answer_dnssec(int state, knot_pkt_t *pkt, knotd_qdata_t *qdata, void *ctx)
+static knotd_in_state_t solve_answer_dnssec(knotd_in_state_t state, knot_pkt_t *pkt,
+ knotd_qdata_t *qdata, void *ctx)
{
/* RFC4035, section 3.1 RRSIGs for RRs in ANSWER are mandatory. */
int ret = nsec_append_rrsigs(pkt, qdata, false);
@@ -517,7 +520,8 @@ static int solve_answer_dnssec(int state, knot_pkt_t *pkt, knotd_qdata_t *qdata,
}
}
-static int solve_authority(int state, knot_pkt_t *pkt, knotd_qdata_t *qdata, void *ctx)
+static knotd_in_state_t solve_authority(knotd_in_state_t state, knot_pkt_t *pkt,
+ knotd_qdata_t *qdata, void *ctx)
{
int ret = KNOT_ERROR;
const zone_contents_t *zone_contents = qdata->extra->contents;
@@ -554,7 +558,8 @@ static int solve_authority(int state, knot_pkt_t *pkt, knotd_qdata_t *qdata, voi
}
}
-static int solve_authority_dnssec(int state, knot_pkt_t *pkt, knotd_qdata_t *qdata, void *ctx)
+static knotd_in_state_t solve_authority_dnssec(knotd_in_state_t state, knot_pkt_t *pkt,
+ knotd_qdata_t *qdata, void *ctx)
{
int ret = KNOT_ERROR;
@@ -591,8 +596,8 @@ static int solve_authority_dnssec(int state, knot_pkt_t *pkt, knotd_qdata_t *qda
}
}
-static int solve_additional(int state, knot_pkt_t *pkt, knotd_qdata_t *qdata,
- void *ctx)
+static knotd_in_state_t solve_additional(knotd_in_state_t state, knot_pkt_t *pkt,
+ knotd_qdata_t *qdata, void *ctx)
{
int ret = KNOT_EOK, rrset_count = pkt->rrset_count;
@@ -621,7 +626,8 @@ static int solve_additional(int state, knot_pkt_t *pkt, knotd_qdata_t *qdata,
}
}
-static int solve_additional_dnssec(int state, knot_pkt_t *pkt, knotd_qdata_t *qdata, void *ctx)
+static knotd_in_state_t solve_additional_dnssec(knotd_in_state_t state, knot_pkt_t *pkt,
+ knotd_qdata_t *qdata, void *ctx)
{
/* RFC4035, section 3.1 RRSIGs for RRs in ADDITIONAL are optional. */
int ret = nsec_append_rrsigs(pkt, qdata, true);
@@ -641,9 +647,9 @@ static int solve_additional_dnssec(int state, knot_pkt_t *pkt, knotd_qdata_t *qd
return KNOT_STATE_FAIL; \
}
-static int answer_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
+static knot_layer_state_t answer_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
{
- int state = KNOTD_IN_STATE_BEGIN;
+ knotd_in_state_t state = KNOTD_IN_STATE_BEGIN;
struct query_plan *plan = qdata->extra->zone->query_plan;
struct query_step *step;
@@ -652,7 +658,8 @@ static int answer_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
/* Resolve PREANSWER. */
if (plan != NULL) {
WALK_LIST(step, plan->stage[KNOTD_STAGE_PREANSWER]) {
- SOLVE_STEP(step->process, state, step->ctx);
+ assert(step->type == QUERY_HOOK_TYPE_IN);
+ SOLVE_STEP(step->in_hook, state, step->ctx);
}
}
@@ -664,7 +671,8 @@ static int answer_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
}
if (plan != NULL) {
WALK_LIST(step, plan->stage[KNOTD_STAGE_ANSWER]) {
- SOLVE_STEP(step->process, state, step->ctx);
+ assert(step->type == QUERY_HOOK_TYPE_IN);
+ SOLVE_STEP(step->in_hook, state, step->ctx);
}
}
@@ -676,7 +684,8 @@ static int answer_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
}
if (plan != NULL) {
WALK_LIST(step, plan->stage[KNOTD_STAGE_AUTHORITY]) {
- SOLVE_STEP(step->process, state, step->ctx);
+ assert(step->type == QUERY_HOOK_TYPE_IN);
+ SOLVE_STEP(step->in_hook, state, step->ctx);
}
}
@@ -688,7 +697,8 @@ static int answer_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
}
if (plan != NULL) {
WALK_LIST(step, plan->stage[KNOTD_STAGE_ADDITIONAL]) {
- SOLVE_STEP(step->process, state, step->ctx);
+ assert(step->type == QUERY_HOOK_TYPE_IN);
+ SOLVE_STEP(step->in_hook, state, step->ctx);
}
}
@@ -698,7 +708,7 @@ static int answer_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
return KNOT_STATE_DONE;
}
-int internet_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
+knot_layer_state_t internet_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
{
if (pkt == NULL || qdata == NULL) {
return KNOT_STATE_FAIL;
diff --git a/src/knot/nameserver/internet.h b/src/knot/nameserver/internet.h
index 52afe62..bb6927d 100644
--- a/src/knot/nameserver/internet.h
+++ b/src/knot/nameserver/internet.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -25,11 +25,8 @@
/*!
* \brief Answer query from an IN class zone.
- *
- * \retval KNOT_STATE_FAIL if it encountered an error.
- * \retval KNOT_STATE_DONE if finished.
*/
-int internet_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata);
+knot_layer_state_t internet_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata);
/*! \brief Require given QUERY TYPE or return error code. */
#define NS_NEED_QTYPE(qdata, qtype_want, error_rcode) \
@@ -68,12 +65,6 @@ int internet_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata);
if (!process_query_acl_check(conf(), (action), (qdata)) || \
process_query_verify(qdata) != KNOT_EOK) { \
return KNOT_STATE_FAIL; \
- }
-
-/*! \brief Require the zone not to be frozen. */
-#define NS_NEED_NOT_FROZEN(qdata) \
- if ((qdata)->extra->zone->events.ufrozen) { \
- (qdata)->rcode = KNOT_RCODE_REFUSED; \
- (qdata)->rcode_ede = KNOT_EDNS_EDE_NOT_READY; \
- return KNOT_STATE_FAIL; \
+ } else { \
+ qdata->params->flags |= KNOTD_QUERY_FLAG_AUTHORIZED; \
}
diff --git a/src/knot/nameserver/ixfr.c b/src/knot/nameserver/ixfr.c
index b57759c..c0e17ea 100644
--- a/src/knot/nameserver/ixfr.c
+++ b/src/knot/nameserver/ixfr.c
@@ -130,7 +130,7 @@ static int ixfr_load_chsets(journal_read_t **journal_read, zone_t *zone,
return journal_read_begin(zone_journal(zone), false, serial_from, journal_read);
}
-static int ixfr_query_check(knotd_qdata_t *qdata)
+static knot_layer_state_t ixfr_query_check(knotd_qdata_t *qdata)
{
NS_NEED_ZONE(qdata, KNOT_RCODE_NOTAUTH);
NS_NEED_AUTH(qdata, ACL_ACTION_TRANSFER);
@@ -174,7 +174,7 @@ static void ixfr_answer_finished(knotd_qdata_t *qdata, knot_pkt_t *pkt, int stat
xfr_stats_add(&xfr->stats, pkt->size);
xfr_stats_end(&xfr->stats);
xfr_log_finished(ZONE_NAME(qdata), LOG_OPERATION_IXFR, LOG_DIRECTION_OUT,
- REMOTE(qdata), PROTO(qdata), KEY(qdata), &xfr->stats);
+ REMOTE(qdata), PROTO(qdata), KEY(qdata), "", &xfr->stats);
break;
default:
break;
@@ -245,13 +245,13 @@ static int ixfr_answer_init(knotd_qdata_t *qdata, uint32_t *serial_from)
return KNOT_EOK;
}
-static int ixfr_answer_soa(knot_pkt_t *pkt, knotd_qdata_t *qdata)
+static knot_layer_state_t ixfr_answer_soa(knot_pkt_t *pkt, knotd_qdata_t *qdata)
{
assert(pkt);
assert(qdata);
/* Check query. */
- int state = ixfr_query_check(qdata);
+ knot_layer_state_t state = ixfr_query_check(qdata);
if (state == KNOT_STATE_FAIL) {
return state; /* Malformed query. */
}
@@ -277,7 +277,7 @@ static int ixfr_answer_soa(knot_pkt_t *pkt, knotd_qdata_t *qdata)
return KNOT_STATE_DONE;
}
-int ixfr_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
+knot_layer_state_t ixfr_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
{
if (pkt == NULL || qdata == NULL) {
return KNOT_STATE_FAIL;
diff --git a/src/knot/nameserver/ixfr.h b/src/knot/nameserver/ixfr.h
index 3012be1..91ce750 100644
--- a/src/knot/nameserver/ixfr.h
+++ b/src/knot/nameserver/ixfr.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -55,9 +55,5 @@ struct ixfr_proc {
/*!
* \brief IXFR query processing module.
- *
- * \retval PRODUCE if it has an answer, but not yet finished.
- * \retval FAIL if it encountered an error.
- * \retval DONE if finished.
*/
-int ixfr_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata);
+knot_layer_state_t ixfr_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata);
diff --git a/src/knot/nameserver/log.h b/src/knot/nameserver/log.h
index 5a5d5f0..373d65a 100644
--- a/src/knot/nameserver/log.h
+++ b/src/knot/nameserver/log.h
@@ -81,6 +81,8 @@ static inline const char *log_conn_info(knotd_query_proto_t proto, bool pool)
return pool ? " TCP/pool" : " TCP";
case KNOTD_QUERY_PROTO_QUIC:
return pool ? " QUIC/0-RTT" : " QUIC";
+ case KNOTD_QUERY_PROTO_TLS:
+ return " TLS";
default:
return "";
}
diff --git a/src/knot/nameserver/notify.c b/src/knot/nameserver/notify.c
index eaa305a..5b1593f 100644
--- a/src/knot/nameserver/notify.c
+++ b/src/knot/nameserver/notify.c
@@ -29,7 +29,7 @@
LOG_DIRECTION_IN, (qdata)->params->remote, (qdata)->params->proto, \
false, (qdata)->sign.tsig_key.name, fmt)
-static int notify_check_query(knotd_qdata_t *qdata)
+static knot_layer_state_t notify_check_query(knotd_qdata_t *qdata)
{
NS_NEED_ZONE(qdata, KNOT_RCODE_NOTAUTH);
NS_NEED_AUTH(qdata, ACL_ACTION_NOTIFY);
@@ -39,14 +39,14 @@ static int notify_check_query(knotd_qdata_t *qdata)
return KNOT_STATE_DONE;
}
-int notify_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
+knot_layer_state_t notify_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
{
if (pkt == NULL || qdata == NULL) {
return KNOT_STATE_FAIL;
}
/* Validate notification query. */
- int state = notify_check_query(qdata);
+ knot_layer_state_t state = notify_check_query(qdata);
if (state == KNOT_STATE_FAIL) {
switch (qdata->rcode) {
case KNOT_RCODE_NOTAUTH: /* Not authorized, already logged. */
diff --git a/src/knot/nameserver/notify.h b/src/knot/nameserver/notify.h
index d0bff14..0e60b58 100644
--- a/src/knot/nameserver/notify.h
+++ b/src/knot/nameserver/notify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -21,8 +21,5 @@
/*!
* \brief Answer IN class zone NOTIFY message (RFC1996).
- *
- * \retval FAIL if it encountered an error.
- * \retval DONE if finished.
*/
-int notify_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata);
+knot_layer_state_t notify_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata);
diff --git a/src/knot/nameserver/nsec_proofs.c b/src/knot/nameserver/nsec_proofs.c
index 71944b1..b67566c 100644
--- a/src/knot/nameserver/nsec_proofs.c
+++ b/src/knot/nameserver/nsec_proofs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -121,11 +121,11 @@ static const knot_dname_t *get_next_closer(const knot_dname_t *closest_encloser,
size_t ce_labels = knot_dname_labels(closest_encloser, NULL);
size_t qname_labels = knot_dname_labels(name, NULL);
for (int i = 0; i < (qname_labels - ce_labels - 1); ++i) {
- name = knot_wire_next_label(name, NULL);
+ name = knot_dname_next_label(name);
}
// the common labels should match
- assert(knot_dname_is_equal(knot_wire_next_label(name, NULL), closest_encloser));
+ assert(knot_dname_is_equal(knot_dname_next_label(name), closest_encloser));
return name;
}
diff --git a/src/knot/nameserver/process_query.c b/src/knot/nameserver/process_query.c
index 00ec001..beced84 100644
--- a/src/knot/nameserver/process_query.c
+++ b/src/knot/nameserver/process_query.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -30,9 +30,9 @@
#include "knot/nameserver/notify.h"
#include "knot/server/server.h"
#include "libknot/libknot.h"
-#ifdef ENABLE_QUIC
-#include "libknot/quic/quic.h"
-#endif // ENABLE_QUIC
+#include "libknot/quic/quic_conn.h"
+#include "libknot/quic/tls_common.h"
+#include "libknot/quic/tls.h"
#include "contrib/base64.h"
#include "contrib/macros.h"
#include "contrib/mempattern.h"
@@ -147,7 +147,7 @@ static int process_query_in(knot_layer_t *ctx, knot_pkt_t *pkt)
/*!
* \brief Create a response for a given query in the INTERNET class.
*/
-static int query_internet(knot_pkt_t *pkt, knot_layer_t *ctx)
+static knot_layer_state_t query_internet(knot_pkt_t *pkt, knot_layer_t *ctx)
{
knotd_qdata_t *data = QUERY_DATA(ctx);
@@ -167,7 +167,7 @@ static int query_internet(knot_pkt_t *pkt, knot_layer_t *ctx)
/*!
* \brief Create a response for a given query in the CHAOS class.
*/
-static int query_chaos(knot_pkt_t *pkt, knot_layer_t *ctx)
+static knot_layer_state_t query_chaos(knot_pkt_t *pkt, knot_layer_t *ctx)
{
knotd_qdata_t *data = QUERY_DATA(ctx);
@@ -203,7 +203,7 @@ static zone_t *answer_zone_find(const knot_pkt_t *query, knot_zonedb_t *zonedb)
* records are only present in a parent zone.
*/
if (qtype == KNOT_RRTYPE_DS) {
- const knot_dname_t *parent = knot_wire_next_label(qname, NULL);
+ const knot_dname_t *parent = knot_dname_next_label(qname);
zone = knot_zonedb_find_suffix(zonedb, parent);
/* If zone does not exist, search for its parent zone,
this will later result to NODATA answer. */
@@ -364,6 +364,7 @@ static int answer_edns_put(knot_pkt_t *resp, knotd_qdata_t *qdata)
if (knot_pkt_edns_option(qdata->query, KNOT_EDNS_OPTION_EXPIRE) != NULL &&
qdata->extra->contents != NULL && !qdata->extra->zone->is_catalog_flag) {
int64_t timer = qdata->extra->zone->timers.next_expire;
+ timer = knot_time_min(timer, qdata->extra->contents->dnssec_expire); // NOOP if zero
timer = (timer == 0 ? zone_soa_expire(qdata->extra->zone) : timer - time(NULL));
timer = MAX(timer, 0);
uint32_t timer_be;
@@ -389,8 +390,8 @@ static int answer_edns_put(knot_pkt_t *resp, knotd_qdata_t *qdata)
return ret;
}
- /* Align the response if QUIC with EDNS. */
- if (qdata->params->proto == KNOTD_QUERY_PROTO_QUIC) {
+ /* Align the response if QUIC or TLS with EDNS. */
+ if (qdata->params->proto == KNOTD_QUERY_PROTO_QUIC || qdata->params->proto == KNOTD_QUERY_PROTO_TLS) {
int pad_len = knot_pkt_default_padding_size(resp, &qdata->opt_rr);
if (pad_len > -1) {
ret = knot_edns_reserve_option(&qdata->opt_rr, KNOT_EDNS_OPTION_PADDING,
@@ -506,7 +507,7 @@ static void set_rcode_to_packet(knot_pkt_t *pkt, knotd_qdata_t *qdata)
knot_wire_set_rcode(pkt->wire, KNOT_EDNS_RCODE_LO(qdata->rcode));
}
-static int process_query_err(knot_layer_t *ctx, knot_pkt_t *pkt)
+static knot_layer_state_t process_query_err(knot_layer_t *ctx, knot_pkt_t *pkt)
{
assert(ctx && pkt);
@@ -552,7 +553,8 @@ static int process_query_err(knot_layer_t *ctx, knot_pkt_t *pkt)
#define PROCESS_BEGIN(plan, step, next_state, qdata) \
if (plan != NULL) { \
WALK_LIST(step, plan->stage[KNOTD_STAGE_BEGIN]) { \
- next_state = step->process(next_state, pkt, qdata, step->ctx); \
+ assert(step->type == QUERY_HOOK_TYPE_GENERAL); \
+ next_state = step->general_hook(next_state, pkt, qdata, step->ctx); \
if (next_state == KNOT_STATE_FAIL) { \
goto finish; \
} \
@@ -562,7 +564,8 @@ static int process_query_err(knot_layer_t *ctx, knot_pkt_t *pkt)
#define PROCESS_END(plan, step, next_state, qdata) \
if (plan != NULL) { \
WALK_LIST(step, plan->stage[KNOTD_STAGE_END]) { \
- next_state = step->process(next_state, pkt, qdata, step->ctx); \
+ assert(step->type == QUERY_HOOK_TYPE_GENERAL); \
+ next_state = step->general_hook(next_state, pkt, qdata, step->ctx); \
if (next_state == KNOT_STATE_FAIL) { \
next_state = process_query_err(ctx, pkt); \
} \
@@ -705,43 +708,53 @@ bool process_query_acl_check(conf_t *conf, acl_action_t action,
bool automatic = false;
bool allowed = false;
+ struct gnutls_session_int *tls_session;
+ switch (qdata->params->proto) {
+ case KNOTD_QUERY_PROTO_QUIC: tls_session = qdata->params->quic_conn->tls_session; break;
+ case KNOTD_QUERY_PROTO_TLS: tls_session = qdata->params->tls_conn->session; break;
+ default: tls_session = NULL;
+ }
+
if (action != ACL_ACTION_UPDATE) {
// ACL_ACTION_QUERY is used for SOA/refresh query.
assert(action == ACL_ACTION_QUERY || action == ACL_ACTION_NOTIFY ||
action == ACL_ACTION_TRANSFER);
const yp_name_t *item = (action == ACL_ACTION_NOTIFY) ? C_MASTER : C_NOTIFY;
conf_val_t rmts = conf_zone_get(conf, item, zone_name);
- allowed = rmt_allowed(conf, &rmts, query_source, &tsig,
- qdata->params->quic_conn);
+ allowed = rmt_allowed(conf, &rmts, query_source, &tsig, tls_session);
automatic = allowed;
}
if (!allowed) {
conf_val_t acl = conf_zone_get(conf, C_ACL, zone_name);
allowed = acl_allowed(conf, &acl, action, query_source, &tsig,
- zone_name, query, qdata->params->quic_conn);
+ zone_name, query, tls_session);
}
if (log_enabled_debug()) {
int pin_size = 0;
-#ifdef ENABLE_QUIC
- uint8_t bin_pin[KNOT_QUIC_PIN_LEN], pin[2 * KNOT_QUIC_PIN_LEN];
+ uint8_t bin_pin[KNOT_TLS_PIN_LEN], pin[2 * KNOT_TLS_PIN_LEN];
size_t bin_pin_size = sizeof(bin_pin);
- knot_quic_conn_pin(qdata->params->quic_conn, bin_pin, &bin_pin_size, false);
+ knot_tls_pin(tls_session, bin_pin, &bin_pin_size, false);
if (bin_pin_size > 0) {
pin_size = knot_base64_encode(bin_pin, bin_pin_size, pin, sizeof(pin));
}
-#else
- uint8_t pin[1];
-#endif // ENABLE_QUIC
+
+ const char *proto_str;
+ switch (qdata->params->proto) {
+ case KNOTD_QUERY_PROTO_UDP: proto_str = " UDP"; break;
+ case KNOTD_QUERY_PROTO_TCP: proto_str = " TCP"; break;
+ case KNOTD_QUERY_PROTO_QUIC: proto_str = " QUIC"; break;
+ case KNOTD_QUERY_PROTO_TLS: proto_str = " TLS"; break;
+ default: proto_str = "";
+ }
log_zone_debug(zone_name,
"ACL, %s, action %s, remote %s%s%s%s%s%.*s%s",
allowed ? "allowed" : "denied",
(act != NULL) ? act->name : "query",
- addr_str,
+ addr_str, proto_str,
(key_name[0] != '\0') ? ", key " : "",
(key_name[0] != '\0') ? key_name : "",
- (qdata->params->proto == KNOTD_QUERY_PROTO_QUIC) ? ", QUIC" : "",
(pin_size > 0) ? " cert-key " : "",
(pin_size > 0) ? pin_size : 0,
(pin_size > 0) ? (const char *)pin : "",
@@ -994,6 +1007,30 @@ int process_query_put_rr(knot_pkt_t *pkt, knotd_qdata_t *qdata,
return ret;
}
+knotd_proto_state_t process_query_proto(knotd_qdata_params_t *params,
+ const knotd_stage_t stage)
+{
+ assert(params);
+ assert(stage == KNOTD_STAGE_PROTO_BEGIN || stage == KNOTD_STAGE_PROTO_END);
+
+ knotd_proto_state_t state = KNOTD_PROTO_STATE_PASS;
+
+ rcu_read_lock();
+
+ struct query_plan *plan = conf()->query_plan;
+ if (plan != NULL) {
+ struct query_step *step;
+ WALK_LIST(step, plan->stage[stage]) {
+ assert(step->type == QUERY_HOOK_TYPE_PROTO);
+ state = step->proto_hook(state, params, step->ctx);
+ }
+ }
+
+ rcu_read_unlock();
+
+ return state;
+}
+
/*! \brief Module implementation. */
const knot_layer_api_t *process_query_layer(void)
{
diff --git a/src/knot/nameserver/process_query.h b/src/knot/nameserver/process_query.h
index 42e66be..c005b58 100644
--- a/src/knot/nameserver/process_query.h
+++ b/src/knot/nameserver/process_query.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -106,3 +106,14 @@ int process_query_sign_response(knot_pkt_t *pkt, knotd_qdata_t *qdata);
int process_query_put_rr(knot_pkt_t *pkt, knotd_qdata_t *qdata,
const knot_rrset_t *rr, const knot_rrset_t *rrsigs,
uint16_t compr_hint, uint32_t flags);
+
+/*!
+ * \brief Processes all global module protocol callbacks at given stage.
+ *
+ * \param params Query processing parameters.
+ * \param stage Processing stage (KNOTD_STAGE_PROTO_BEGIN or KNOTD_STAGE_PROTO_END).
+ *
+ * \return Resulting state.
+ */
+knotd_proto_state_t process_query_proto(knotd_qdata_params_t *params,
+ const knotd_stage_t stage);
diff --git a/src/knot/nameserver/query_module.c b/src/knot/nameserver/query_module.c
index f02ee1b..0708b17 100644
--- a/src/knot/nameserver/query_module.c
+++ b/src/knot/nameserver/query_module.c
@@ -32,17 +32,6 @@
#include "knot/nameserver/query_module.h"
#include "knot/nameserver/process_query.h"
-#ifdef HAVE_ATOMIC
- #define ATOMIC_ADD(dst, val) __atomic_add_fetch(&(dst), (val), __ATOMIC_RELAXED)
- #define ATOMIC_SUB(dst, val) __atomic_sub_fetch(&(dst), (val), __ATOMIC_RELAXED)
- #define ATOMIC_SET(dst, val) __atomic_store_n(&(dst), (val), __ATOMIC_RELAXED)
-#else
- #warning "Statistics data can be inaccurate"
- #define ATOMIC_ADD(dst, val) ((dst) += (val))
- #define ATOMIC_SUB(dst, val) ((dst) -= (val))
- #define ATOMIC_SET(dst, val) ((dst) = (val))
-#endif
-
_public_
int knotd_conf_check_ref(knotd_conf_check_args_t *args)
{
@@ -79,30 +68,31 @@ void query_plan_free(struct query_plan *plan)
free(plan);
}
-static struct query_step *make_step(query_step_process_f process, void *ctx)
+int query_plan_step(struct query_plan *plan, knotd_stage_t stage,
+ query_hook_type_t type, void *hook, void *ctx)
{
- struct query_step *step = calloc(1, sizeof(struct query_step));
+ struct query_step *step = calloc(1, sizeof(*step));
if (step == NULL) {
- return NULL;
+ return KNOT_ENOMEM;
}
- step->process = process;
+ step->type = type;
+ step->general_hook = hook;
step->ctx = ctx;
- return step;
+ add_tail(&plan->stage[stage], &step->node);
+
+ return KNOT_EOK;
}
-int query_plan_step(struct query_plan *plan, knotd_stage_t stage,
- query_step_process_f process, void *ctx)
+_public_
+int knotd_mod_proto_hook(knotd_mod_t *mod, knotd_stage_t stage, knotd_mod_proto_hook_f hook)
{
- struct query_step *step = make_step(process, ctx);
- if (step == NULL) {
- return KNOT_ENOMEM;
+ if (stage != KNOTD_STAGE_PROTO_BEGIN && stage != KNOTD_STAGE_PROTO_END) {
+ return KNOT_EINVAL;
}
- add_tail(&plan->stage[stage], &step->node);
-
- return KNOT_EOK;
+ return query_plan_step(mod->plan, stage, QUERY_HOOK_TYPE_PROTO, hook, mod);
}
_public_
@@ -112,17 +102,18 @@ int knotd_mod_hook(knotd_mod_t *mod, knotd_stage_t stage, knotd_mod_hook_f hook)
return KNOT_EINVAL;
}
- return query_plan_step(mod->plan, stage, hook, mod);
+ return query_plan_step(mod->plan, stage, QUERY_HOOK_TYPE_GENERAL, hook, mod);
}
_public_
int knotd_mod_in_hook(knotd_mod_t *mod, knotd_stage_t stage, knotd_mod_in_hook_f hook)
{
- if (stage == KNOTD_STAGE_BEGIN || stage == KNOTD_STAGE_END) {
+ if (stage != KNOTD_STAGE_PREANSWER && stage != KNOTD_STAGE_ANSWER &&
+ stage != KNOTD_STAGE_AUTHORITY && stage != KNOTD_STAGE_ADDITIONAL) {
return KNOT_EINVAL;
}
- return query_plan_step(mod->plan, stage, hook, mod);
+ return query_plan_step(mod->plan, stage, QUERY_HOOK_TYPE_IN, hook, mod);
}
knotd_mod_t *query_module_open(conf_t *conf, server_t *server, conf_mod_id_t *mod_id,
@@ -313,8 +304,8 @@ int knotd_mod_stats_add(knotd_mod_t *mod, const char *ctr_name, uint32_t idx_cou
stats += mod->stats_count;
for (unsigned i = 0; i < threads; i++) {
- uint64_t *new_vals = realloc(mod->stats_vals[i],
- (offset + idx_count) * sizeof(*new_vals));
+ knot_atomic_uint64_t *new_vals = realloc(mod->stats_vals[i],
+ (offset + idx_count) * sizeof(*new_vals));
if (new_vals == NULL) {
knotd_mod_stats_free(mod);
return KNOT_ENOMEM;
@@ -627,6 +618,7 @@ uint32_t knotd_qdata_rtt(knotd_qdata_t *qdata)
switch (qdata->params->proto) {
case KNOTD_QUERY_PROTO_TCP:
+ case KNOTD_QUERY_PROTO_TLS:
if (qdata->params->xdp_msg != NULL) {
#ifdef ENABLE_XDP
return qdata->params->measured_rtt;
diff --git a/src/knot/nameserver/query_module.h b/src/knot/nameserver/query_module.h
index 5cc905b..d403b25 100644
--- a/src/knot/nameserver/query_module.h
+++ b/src/knot/nameserver/query_module.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -22,24 +22,27 @@
#include "knot/dnssec/zone-keys.h"
#include "knot/include/module.h"
#include "knot/server/server.h"
+#include "contrib/atomic.h"
#include "contrib/ucw/lists.h"
-#ifdef HAVE_ATOMIC
- #define ATOMIC_GET(src) __atomic_load_n(&(src), __ATOMIC_RELAXED)
-#else
- #define ATOMIC_GET(src) (src)
-#endif
+#define KNOTD_STAGES (KNOTD_STAGE_PROTO_END + 1)
-#define KNOTD_STAGES (KNOTD_STAGE_END + 1)
+typedef enum {
+ QUERY_HOOK_TYPE_PROTO,
+ QUERY_HOOK_TYPE_GENERAL,
+ QUERY_HOOK_TYPE_IN,
+} query_hook_type_t;
-typedef unsigned (*query_step_process_f)
- (unsigned state, knot_pkt_t *pkt, knotd_qdata_t *qdata, knotd_mod_t *mod);
-
-/*! \brief Single processing step in query processing. */
+/*! \brief Single processing step in query/module processing. */
struct query_step {
node_t node;
+ query_hook_type_t type;
+ union {
+ knotd_mod_proto_hook_f proto_hook;
+ knotd_mod_hook_f general_hook;
+ knotd_mod_in_hook_f in_hook;
+ };
void *ctx;
- query_step_process_f process;
};
/*! Query plan represents a sequence of steps needed for query processing
@@ -58,7 +61,7 @@ void query_plan_free(struct query_plan *plan);
/*! \brief Plan another step for given stage. */
int query_plan_step(struct query_plan *plan, knotd_stage_t stage,
- query_step_process_f process, void *ctx);
+ query_hook_type_t type, void *hook, void *ctx);
/*! \brief Open query module identified by name. */
knotd_mod_t *query_module_open(conf_t *conf, server_t *server, conf_mod_id_t *mod_id,
@@ -91,7 +94,7 @@ struct knotd_mod {
zone_keyset_t *keyset;
zone_sign_ctx_t *sign_ctx;
mod_ctr_t *stats_info;
- uint64_t **stats_vals;
+ knot_atomic_uint64_t **stats_vals;
uint32_t stats_count;
void *ctx;
};
diff --git a/src/knot/nameserver/update.c b/src/knot/nameserver/update.c
index 1168c94..ee884fd 100644
--- a/src/knot/nameserver/update.c
+++ b/src/knot/nameserver/update.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -22,12 +22,23 @@
#include "knot/query/requestor.h"
#include "contrib/sockaddr.h"
#include "libknot/libknot.h"
+#include "libknot/quic/quic_conn.h"
+#include "libknot/quic/tls.h"
static int update_enqueue(zone_t *zone, knotd_qdata_t *qdata)
{
assert(zone);
assert(qdata);
+ pthread_mutex_lock(&zone->ddns_lock);
+ if (zone->events.ufrozen && zone->ddns_queue_size >= 8) {
+ pthread_mutex_unlock(&zone->ddns_lock);
+ qdata->rcode = KNOT_RCODE_REFUSED;
+ qdata->rcode_ede = KNOT_EDNS_EDE_NOT_READY;
+ return KNOT_ELIMIT;
+ }
+ pthread_mutex_unlock(&zone->ddns_lock);
+
/* Create serialized request. */
knot_request_t *req = calloc(1, sizeof(*req));
if (req == NULL) {
@@ -63,6 +74,22 @@ static int update_enqueue(zone_t *zone, knotd_qdata_t *qdata)
assert(req->sign.tsig_key.algorithm == knot_tsig_rdata_alg(req->query->tsig_rr));
}
+#ifdef ENABLE_QUIC
+ if (qdata->params->quic_conn != NULL) {
+ req->flags |= KNOT_REQUEST_QUIC;
+ req->quic_conn = qdata->params->quic_conn;
+ knot_quic_conn_block(req->quic_conn, true);
+ assert(qdata->params->quic_stream >= 0);
+ req->quic_stream = qdata->params->quic_stream;
+ } else
+#endif // ENABLE_QUIC
+ if (qdata->params->tls_conn != NULL) {
+ req->flags |= KNOT_REQUEST_TLS;
+ req->tls_req_ctx.conn = qdata->params->tls_conn;
+ req->tls_req_ctx.conn->fd_clones_count++;
+ knot_tls_conn_block(req->tls_req_ctx.conn, true);
+ }
+
pthread_mutex_lock(&zone->ddns_lock);
/* Enqueue created request. */
@@ -77,10 +104,10 @@ static int update_enqueue(zone_t *zone, knotd_qdata_t *qdata)
return KNOT_EOK;
}
-int update_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
+knot_layer_state_t update_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
{
/* DDNS over XDP not supported. */
- if (qdata->params->xdp_msg != NULL || qdata->params->proto == KNOTD_QUERY_PROTO_QUIC) {
+ if (qdata->params->xdp_msg != NULL) {
qdata->rcode = KNOT_RCODE_SERVFAIL;
return KNOT_STATE_FAIL;
}
@@ -95,8 +122,6 @@ int update_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata)
NS_NEED_AUTH(qdata, ACL_ACTION_UPDATE);
/* Check expiration. */
NS_NEED_ZONE_CONTENTS(qdata);
- /* Check frozen zone. */
- NS_NEED_NOT_FROZEN(qdata);
/* Store update into DDNS queue. */
int ret = update_enqueue((zone_t *)qdata->extra->zone, qdata);
diff --git a/src/knot/nameserver/update.h b/src/knot/nameserver/update.h
index 609acd9..430b323 100644
--- a/src/knot/nameserver/update.h
+++ b/src/knot/nameserver/update.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -21,7 +21,5 @@
/*!
* \brief UPDATE query processing module.
- *
- * \return KNOT_STATE_* processing states
*/
-int update_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata);
+knot_layer_state_t update_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata);
diff --git a/src/knot/nameserver/xfr.h b/src/knot/nameserver/xfr.h
index e6d06b6..fe8a7a8 100644
--- a/src/knot/nameserver/xfr.h
+++ b/src/knot/nameserver/xfr.h
@@ -38,12 +38,12 @@ static inline
void xfr_log_finished(const knot_dname_t *zone, log_operation_t op,
log_direction_t dir, const struct sockaddr_storage *remote,
knotd_query_proto_t proto, const knot_dname_t *key_name,
- const struct xfr_stats *stats)
+ const char *serial_log, const struct xfr_stats *stats)
{
ns_log(LOG_INFO, zone, op, dir, remote, proto, false, key_name,
- "%sfinished, %0.2f seconds, %u messages, %u bytes",
+ "%sfinished,%s %0.2f seconds, %u messages, %u bytes",
(proto == KNOTD_QUERY_PROTO_QUIC && dir == LOG_DIRECTION_OUT ? "buffering " : ""),
- time_diff_ms(&stats->begin, &stats->end) / 1000.0,
+ serial_log, time_diff_ms(&stats->begin, &stats->end) / 1000.0,
stats->messages, stats->bytes);
}
diff --git a/src/knot/query/quic-requestor.c b/src/knot/query/quic-requestor.c
index 62008f9..7492efd 100644
--- a/src/knot/query/quic-requestor.c
+++ b/src/knot/query/quic-requestor.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -28,7 +28,6 @@
#include "knot/conf/conf.h" // please use this only for tiny stuff like quic-log
#include "knot/server/handler.h"
#include "libknot/error.h"
-#include "libknot/quic/quic.h"
#define QUIC_BUF_SIZE 4096
@@ -63,6 +62,7 @@ static int quic_exchange(knot_quic_conn_t *conn, knot_quic_reply_t *r, int timeo
int64_t quic_timeout_ms = knot_quic_conn_next_timeout(conn);
quic_timeout_ms = MIN(quic_timeout_ms, timeout_remain);
quic_timeout_ms = MIN(quic_timeout_ms, timeout_ms / 2);
+ quic_timeout_ms = MAX(quic_timeout_ms, 1);
r->in_payload->iov_len = QUIC_BUF_SIZE;
@@ -156,7 +156,7 @@ int knot_qreq_connect(struct knot_quic_reply **out,
int fd,
struct sockaddr_storage *remote,
struct sockaddr_storage *local,
- const struct knot_quic_creds *local_creds,
+ const struct knot_creds *local_creds,
const uint8_t *peer_pin,
uint8_t peer_pin_len,
bool *reused_fd,
@@ -179,8 +179,7 @@ int knot_qreq_connect(struct knot_quic_reply **out,
r->send_reply = qr_send_reply;
r->free_reply = qr_free_reply;
- struct knot_quic_creds *creds = knot_quic_init_creds_peer(local_creds,
- peer_pin, peer_pin_len);
+ struct knot_creds *creds = knot_creds_init_peer(local_creds, peer_pin, peer_pin_len);
if (creds == NULL) {
free(r);
return KNOT_ENOMEM;
@@ -190,7 +189,7 @@ int knot_qreq_connect(struct knot_quic_reply **out,
knot_quic_table_t *table = knot_quic_table_new(1, QUIC_BUF_SIZE,
QUIC_BUF_SIZE, 0, creds);
if (table == NULL) {
- knot_quic_free_creds(creds);
+ knot_creds_free(creds);
free(r);
return KNOT_ENOMEM;
}
@@ -294,7 +293,7 @@ void knot_qreq_close(struct knot_quic_reply *r, bool send_close)
knot_quic_table_rem(conn, table);
knot_quic_cleanup(&conn, 1);
if (table != NULL) {
- knot_quic_free_creds(table->creds);
+ knot_creds_free(table->creds);
}
knot_quic_table_free(table);
free(r);
diff --git a/src/knot/query/quic-requestor.h b/src/knot/query/quic-requestor.h
index b5f479e..083254d 100644
--- a/src/knot/query/quic-requestor.h
+++ b/src/knot/query/quic-requestor.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,15 +17,13 @@
#pragma once
#include "contrib/sockaddr.h"
-
-struct knot_quic_creds;
-struct knot_quic_reply;
+#include "libknot/quic/quic.h"
int knot_qreq_connect(struct knot_quic_reply **out,
int fd,
struct sockaddr_storage *remote,
struct sockaddr_storage *local,
- const struct knot_quic_creds *local_creds,
+ const struct knot_creds *local_creds,
const uint8_t *peer_pin,
uint8_t peer_pin_len,
bool *reused_fd,
diff --git a/src/knot/query/requestor.c b/src/knot/query/requestor.c
index 436f009..125c036 100644
--- a/src/knot/query/requestor.c
+++ b/src/knot/query/requestor.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -18,12 +18,13 @@
#include <sys/socket.h>
#include "libknot/attribute.h"
+#include "libknot/errcode.h"
+#include "libknot/quic/tls.h"
#include "knot/common/unreachable.h"
#include "knot/query/requestor.h"
#ifdef ENABLE_QUIC
#include "knot/query/quic-requestor.h"
#endif // ENABLE_QUIC
-#include "libknot/errcode.h"
#include "contrib/conn_pool.h"
#include "contrib/mempattern.h"
#include "contrib/net.h"
@@ -39,6 +40,11 @@ static bool use_quic(knot_request_t *request)
return (request->flags & KNOT_REQUEST_QUIC) != 0;
}
+static bool use_tls(knot_request_t *request)
+{
+ return (request->flags & KNOT_REQUEST_TLS) != 0;
+}
+
static bool is_answer_to_query(const knot_pkt_t *query, const knot_pkt_t *answer)
{
return knot_wire_get_id(query->wire) == knot_wire_get_id(answer->wire);
@@ -104,6 +110,19 @@ static int request_ensure_connected(knot_request_t *request, bool *reused_fd, in
#endif // ENABLE_QUIC
}
+ if (use_tls(request)) {
+ assert(!use_quic(request));
+
+ int ret = knot_tls_req_ctx_init(&request->tls_req_ctx, request->fd,
+ request->creds, request->pin,
+ request->pin_len, timeout_ms);
+ if (ret != KNOT_EOK) {
+ close(request->fd);
+ request->fd = -1;
+ return ret;
+ }
+ }
+
return KNOT_EOK;
}
@@ -124,7 +143,9 @@ static int request_send(knot_request_t *request, int timeout_ms, bool *reused_fd
&request->remote : NULL;
/* Send query. */
- if (use_quic(request)) {
+ if (use_tls(request)) {
+ ret = knot_tls_send_dns(request->tls_req_ctx.conn, wire, wire_len);
+ } else if (use_quic(request)) {
#ifdef ENABLE_QUIC
struct iovec tosend = { wire, wire_len };
return knot_qreq_send(request->quic_ctx, &tosend);
@@ -162,7 +183,9 @@ static int request_recv(knot_request_t *request, int timeout_ms)
}
/* Receive it */
- if (use_quic(request)) {
+ if (use_tls(request)) {
+ ret = knot_tls_recv_dns(request->tls_req_ctx.conn, resp->wire, resp->max_size);
+ } else if (use_quic(request)) {
#ifdef ENABLE_QUIC
struct iovec recvd = { resp->wire, resp->max_size };
ret = knot_qreq_recv(request->quic_ctx, &recvd, timeout_ms);
@@ -192,7 +215,7 @@ knot_request_t *knot_request_make_generic(knot_mm_t *mm,
const struct sockaddr_storage *remote,
const struct sockaddr_storage *source,
knot_pkt_t *query,
- const struct knot_quic_creds *creds,
+ const struct knot_creds *creds,
const query_edns_data_t *edns,
const knot_tsig_key_t *tsig_key,
const uint8_t *pin,
@@ -232,7 +255,7 @@ knot_request_t *knot_request_make_generic(knot_mm_t *mm,
request->edns = edns;
request->creds = creds;
- if (flags & KNOT_REQUEST_QUIC && pin_len > 0) {
+ if ((flags & (KNOT_REQUEST_QUIC | KNOT_REQUEST_TLS)) && pin_len > 0) {
request->pin_len = pin_len;
memcpy(request->pin, pin, pin_len);
}
@@ -243,12 +266,15 @@ knot_request_t *knot_request_make_generic(knot_mm_t *mm,
knot_request_t *knot_request_make(knot_mm_t *mm,
const conf_remote_t *remote,
knot_pkt_t *query,
- const struct knot_quic_creds *creds,
+ const struct knot_creds *creds,
const query_edns_data_t *edns,
knot_request_flag_t flags)
{
if (remote->quic) {
+ assert(!remote->tls);
flags |= KNOT_REQUEST_QUIC;
+ } else if (remote->tls) {
+ flags |= KNOT_REQUEST_TLS;
}
return knot_request_make_generic(mm, &remote->addr, &remote->via,
@@ -262,15 +288,25 @@ void knot_request_free(knot_request_t *request, knot_mm_t *mm)
return;
}
- if (request->quic_ctx != NULL) {
+ if (use_quic(request)) {
#ifdef ENABLE_QUIC
- knot_qreq_close(request->quic_ctx, true);
+ if (request->quic_ctx != NULL) {
+ knot_qreq_close(request->quic_ctx, true);
+ }
+ // NOTE synthetic DDNSoQ request is NOOP here
#else
assert(0);
#endif // ENABLE_QUIC
+ } else if (use_tls(request) && request->tls_req_ctx.conn != NULL) {
+ knot_tls_req_ctx_deinit(&request->tls_req_ctx);
+ } else {
+ assert(request->quic_ctx == NULL);
+ assert(request->quic_conn == NULL);
+ assert(request->tls_req_ctx.ctx == NULL);
+ assert(request->tls_req_ctx.conn == NULL);
}
- if (request->fd >= 0 && use_tcp(request) &&
+ if (request->fd >= 0 && use_tcp(request) && !use_tls(request) &&
(request->flags & KNOT_REQUEST_KEEP)) {
request->fd = (int)conn_pool_put(global_conn_pool,
&request->source,
@@ -282,6 +318,7 @@ void knot_request_free(knot_request_t *request, knot_mm_t *mm)
}
knot_pkt_free(request->query);
knot_pkt_free(request->resp);
+ dnssec_binary_free(&request->sign.tsig_key.secret);
tsig_cleanup(&request->tsig);
mm_free(mm, request);
@@ -351,7 +388,7 @@ static int request_produce(knot_requestor_t *req, knot_request_t *last,
if (last->edns != NULL && !last->edns->no_edns) {
ret = query_put_edns(last->query, last->edns,
- (last->flags & KNOT_REQUEST_QUIC));
+ (last->flags & (KNOT_REQUEST_QUIC | KNOT_REQUEST_TLS)));
if (ret != KNOT_EOK) {
return ret;
}
@@ -376,6 +413,9 @@ static int request_produce(knot_requestor_t *req, knot_request_t *last,
if (last->flags & KNOT_REQUEST_QUIC) {
req->layer.flags |= KNOT_REQUESTOR_QUIC;
}
+ if (last->flags & KNOT_REQUEST_TLS) {
+ req->layer.flags |= KNOT_REQUESTOR_TLS;
+ }
}
return ret;
diff --git a/src/knot/query/requestor.h b/src/knot/query/requestor.h
index 65da1ed..241be04 100644
--- a/src/knot/query/requestor.h
+++ b/src/knot/query/requestor.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,26 +23,26 @@
#include "knot/nameserver/tsig_ctx.h"
#include "knot/query/layer.h"
#include "knot/query/query.h"
+#include "knot/query/tls-requestor.h"
#include "libknot/mm_ctx.h"
#include "libknot/rrtype/tsig.h"
-struct knot_quic_creds;
-struct knot_quic_reply;
-
typedef enum {
KNOT_REQUEST_NONE = 0, /*!< Empty flag. */
KNOT_REQUEST_UDP = 1 << 0, /*!< Use UDP for requests. */
KNOT_REQUEST_TFO = 1 << 1, /*!< Enable TCP Fast Open for requests. */
KNOT_REQUEST_KEEP = 1 << 2, /*!< Keep upstream TCP connection in pool for later reuse. */
KNOT_REQUEST_QUIC = 1 << 3, /*!< Use QUIC/UDP for requests. */
- KNOT_REQUEST_FWD = 1 << 4, /*!< Forwarded message, don't modify (TSIG, PADDING). */
+ KNOT_REQUEST_TLS = 1 << 4, /*!< Use DoT for requests. */
+ KNOT_REQUEST_FWD = 1 << 5, /*!< Forwarded message, don't modify (TSIG, PADDING). */
} knot_request_flag_t;
typedef enum {
KNOT_REQUESTOR_CLOSE = 1 << 0, /*!< Close the connection indication. */
KNOT_REQUESTOR_REUSED = 1 << 1, /*!< Reused FD indication (RO). */
KNOT_REQUESTOR_QUIC = 1 << 2, /*!< QUIC used indication (RO). */
- KNOT_REQUESTOR_IOFAIL = 1 << 3, /*!< Encountered error sending/recving data. */
+ KNOT_REQUESTOR_TLS = 1 << 3, /*!< DoT used indication (RO). */
+ KNOT_REQUESTOR_IOFAIL = 1 << 4, /*!< Encountered error sending/recving data. */
} knot_requestor_flag_t;
/*! \brief Requestor structure.
@@ -57,7 +57,14 @@ typedef struct {
/*! \brief Request data (socket, payload, response, TSIG and endpoints). */
typedef struct {
int fd;
- struct knot_quic_reply *quic_ctx;
+ union {
+ struct {
+ struct knot_quic_reply *quic_ctx;
+ struct knot_quic_conn *quic_conn;
+ int64_t quic_stream;
+ };
+ knot_tls_req_ctx_t tls_req_ctx;
+ };
knot_request_flag_t flags;
struct sockaddr_storage remote, source;
knot_pkt_t *query;
@@ -67,11 +74,22 @@ typedef struct {
knot_sign_context_t sign; /*!< Required for async. DDNS processing. */
- const struct knot_quic_creds *creds;
+ const struct knot_creds *creds;
size_t pin_len;
uint8_t pin[];
} knot_request_t;
+static inline knotd_query_proto_t flags2proto(unsigned layer_flags)
+{
+ knotd_query_proto_t proto = KNOTD_QUERY_PROTO_TCP;
+ if ((layer_flags & KNOT_REQUESTOR_QUIC)) {
+ proto = KNOTD_QUERY_PROTO_QUIC;
+ } else if ((layer_flags & KNOT_REQUESTOR_TLS)) {
+ proto = KNOTD_QUERY_PROTO_TLS;
+ }
+ return proto;
+}
+
/*!
* \brief Make request out of endpoints and query.
*
@@ -92,7 +110,7 @@ knot_request_t *knot_request_make_generic(knot_mm_t *mm,
const struct sockaddr_storage *remote,
const struct sockaddr_storage *source,
knot_pkt_t *query,
- const struct knot_quic_creds *creds,
+ const struct knot_creds *creds,
const query_edns_data_t *edns,
const knot_tsig_key_t *tsig_key,
const uint8_t *pin,
@@ -108,7 +126,7 @@ knot_request_t *knot_request_make_generic(knot_mm_t *mm,
knot_request_t *knot_request_make(knot_mm_t *mm,
const conf_remote_t *remote,
knot_pkt_t *query,
- const struct knot_quic_creds *creds,
+ const struct knot_creds *creds,
const query_edns_data_t *edns,
knot_request_flag_t flags);
diff --git a/src/knot/query/tls-requestor.c b/src/knot/query/tls-requestor.c
new file mode 100644
index 0000000..e1a2e8e
--- /dev/null
+++ b/src/knot/query/tls-requestor.c
@@ -0,0 +1,59 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#include <string.h>
+
+#include "knot/query/tls-requestor.h"
+#include "libknot/error.h"
+#include "libknot/quic/tls.h"
+
+int knot_tls_req_ctx_init(knot_tls_req_ctx_t *ctx, int fd,
+ const struct knot_creds *local_creds,
+ const uint8_t *peer_pin, uint8_t peer_pin_len,
+ int io_timeout_ms)
+{
+ struct knot_creds *creds = knot_creds_init_peer(local_creds, peer_pin, peer_pin_len);
+ if (creds == NULL) {
+ return KNOT_ENOMEM;
+ }
+
+ // Use HS = 4x IO timeout, as the RMT IO timeout is usually high.
+ ctx->ctx = knot_tls_ctx_new(creds, io_timeout_ms, 4 * io_timeout_ms, false);
+ if (ctx->ctx == NULL) {
+ knot_creds_free(creds);
+ return KNOT_ENOMEM;
+ }
+
+ ctx->conn = knot_tls_conn_new(ctx->ctx, fd);
+ if (ctx->conn == NULL) {
+ knot_tls_req_ctx_deinit(ctx);
+ return KNOT_ERROR;
+ }
+
+ return KNOT_EOK;
+}
+
+void knot_tls_req_ctx_deinit(knot_tls_req_ctx_t *ctx)
+{
+ if (ctx != NULL) {
+ if (ctx->ctx != NULL) {
+ knot_creds_free(ctx->ctx->creds);
+ }
+ knot_tls_conn_del(ctx->conn);
+ knot_tls_ctx_free(ctx->ctx);
+ memset(ctx, 0, sizeof(*ctx));
+ }
+}
diff --git a/src/knot/query/tls-requestor.h b/src/knot/query/tls-requestor.h
new file mode 100644
index 0000000..535bbe8
--- /dev/null
+++ b/src/knot/query/tls-requestor.h
@@ -0,0 +1,51 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <stdint.h>
+
+#include "libknot/quic/tls_common.h"
+
+/*!
+ * \brief TLS requestor context envelope, containing TLS general context and TLS connection.
+ */
+typedef struct knot_tls_req_ctx {
+ struct knot_tls_ctx *ctx;
+ struct knot_tls_conn *conn;
+} knot_tls_req_ctx_t;
+
+/*!
+ * \brief Initialize TLS requestor context.
+ *
+ * \param ctx Context structure to be initialized.
+ * \param fd Opened TCP connection file descriptor.
+ * \param local_creds Local TLS credentials.
+ * \param peer_pin TLS peer pin.
+ * \param peer_pin_len TLS peer pin length.
+ * \param io_timeout_ms Configured io-timeout for TLS connection.
+ *
+ * \return KNOT_E*
+ */
+int knot_tls_req_ctx_init(knot_tls_req_ctx_t *ctx, int fd,
+ const struct knot_creds *local_creds,
+ const uint8_t *peer_pin, uint8_t peer_pin_len,
+ int io_timeout_ms);
+
+/*!
+ * \brief De-initialize TLS requestor context.
+ */
+void knot_tls_req_ctx_deinit(knot_tls_req_ctx_t *ctx);
diff --git a/src/knot/server/handler.c b/src/knot/server/handler.c
index ec7377a..bcd0ec5 100644
--- a/src/knot/server/handler.c
+++ b/src/knot/server/handler.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -97,7 +97,7 @@ static void handle_quic_stream(knot_quic_conn_t *conn, int64_t stream_id, struct
}
void handle_quic_streams(knot_quic_conn_t *conn, knotd_qdata_params_t *params,
- knot_layer_t *layer, void *msg)
+ knot_layer_t *layer)
{
uint8_t ans_buf[KNOT_WIRE_MAX_PKTSIZE];
@@ -108,14 +108,7 @@ void handle_quic_streams(knot_quic_conn_t *conn, knotd_qdata_params_t *params,
assert(stream->inbufs != NULL);
assert(stream->inbufs->n_inbufs > 0);
struct iovec *inbufs = stream->inbufs->inbufs;
- if (msg) {
-#ifdef ENABLE_XDP
- params_xdp_update(params, KNOTD_QUERY_PROTO_QUIC, msg,
- knot_quic_conn_rtt(conn), conn);
-#endif // ENABLE_XDP
- } else {
- params_update(params, knot_quic_conn_rtt(conn), conn);
- }
+ params_update_quic(params, knot_quic_conn_rtt(conn), conn, stream_id);
// NOTE: only the first msg in the stream is used, the rest is dropped.
handle_quic_stream(conn, stream_id, &inbufs[0], layer, params,
ans_buf, sizeof(ans_buf));
diff --git a/src/knot/server/handler.h b/src/knot/server/handler.h
index 0f29988..4b63a0c 100644
--- a/src/knot/server/handler.h
+++ b/src/knot/server/handler.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,6 +20,7 @@
#include "knot/query/layer.h"
#include "knot/server/server.h"
#include "libknot/xdp/tcp_iobuf.h"
+#include "libknot/quic/tls.h"
#ifdef ENABLE_QUIC
#include "libknot/quic/quic.h"
@@ -44,18 +45,33 @@ inline static knotd_qdata_params_t params_init(knotd_query_proto_t proto,
.remote = (const struct sockaddr_storage *)remote,
.local = (const struct sockaddr_storage *)local,
.socket = sock,
+ .thread_id = thread_id,
.server = server,
- .thread_id = thread_id
+ .quic_stream = -1,
};
return params;
}
-inline static void params_update(knotd_qdata_params_t *params, uint32_t rtt,
- struct knot_quic_conn *conn)
+inline static void params_update_tcp(knotd_qdata_params_t *params, uint32_t rtt)
{
params->measured_rtt = rtt;
+}
+
+#ifdef ENABLE_QUIC
+inline static void params_update_quic(knotd_qdata_params_t *params, uint32_t rtt,
+ knot_quic_conn_t *conn, int64_t stream_id)
+{
params->quic_conn = conn;
+ params->quic_stream = stream_id;
+ params->measured_rtt = rtt;
+}
+#endif // ENABLE_QUIC
+
+inline static void params_update_tls(knotd_qdata_params_t *params,
+ knot_tls_conn_t *conn)
+{
+ params->tls_conn = conn;
}
#ifdef ENABLE_XDP
@@ -64,8 +80,9 @@ inline static knotd_qdata_params_t params_xdp_init(int sock, server_t *server,
{
knotd_qdata_params_t params = {
.socket = sock,
+ .thread_id = thread_id,
.server = server,
- .thread_id = thread_id
+ .quic_stream = -1,
};
return params;
@@ -73,16 +90,12 @@ inline static knotd_qdata_params_t params_xdp_init(int sock, server_t *server,
inline static void params_xdp_update(knotd_qdata_params_t *params,
knotd_query_proto_t proto,
- struct knot_xdp_msg *msg,
- uint32_t rtt,
- struct knot_quic_conn *conn)
+ struct knot_xdp_msg *msg)
{
params->proto = proto;
params->remote = (struct sockaddr_storage *)&msg->ip_from;
params->local = (struct sockaddr_storage *)&msg->ip_to;
params->xdp_msg = msg;
- params->measured_rtt = rtt;
- params->quic_conn = conn;
}
#endif // ENABLE_XDP
@@ -107,7 +120,7 @@ void handle_udp_reply(knotd_qdata_params_t *params, knot_layer_t *layer,
#ifdef ENABLE_QUIC
void handle_quic_streams(knot_quic_conn_t *conn, knotd_qdata_params_t *params,
- knot_layer_t *layer, void *msg);
+ knot_layer_t *layer);
#endif // ENABLE_QUIC
void log_swept(knot_sweep_stats_t *stats, bool tcp);
diff --git a/src/knot/server/quic-handler.c b/src/knot/server/quic-handler.c
index 5010213..663167e 100644
--- a/src/knot/server/quic-handler.c
+++ b/src/knot/server/quic-handler.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -24,6 +24,7 @@
#include "contrib/macros.h"
#include "contrib/net.h"
#include "knot/common/log.h"
+#include "knot/nameserver/process_query.h"
#include "knot/server/handler.h"
#include "knot/server/quic-handler.h"
#include "knot/server/server.h"
@@ -92,16 +93,22 @@ void quic_handler(knotd_qdata_params_t *params, knot_layer_t *layer,
rpl.out_payload->iov_len = 0; // prevent send attempt if uq_alloc_reply is not called at all
+ if (process_query_proto(params, KNOTD_STAGE_PROTO_BEGIN) == KNOTD_PROTO_STATE_BLOCK) {
+ return;
+ }
+
knot_quic_conn_t *conn = NULL;
(void)knot_quic_handle(table, &rpl, idle_close, &conn);
if (conn != NULL) {
- handle_quic_streams(conn, params, layer, NULL);
+ handle_quic_streams(conn, params, layer);
(void)knot_quic_send(table, conn, &rpl, QUIC_MAX_SEND_PER_RECV, 0);
knot_quic_cleanup(&conn, 1);
}
+
+ (void)process_query_proto(params, KNOTD_STAGE_PROTO_END);
}
knot_quic_table_t *quic_make_table(struct server *server)
diff --git a/src/knot/server/server.c b/src/knot/server/server.c
index dd0b025..0626337 100644
--- a/src/knot/server/server.c
+++ b/src/knot/server/server.c
@@ -27,8 +27,9 @@
#include "libknot/libknot.h"
#include "libknot/yparser/ypschema.h"
#include "libknot/xdp.h"
+#include "libknot/quic/tls_common.h"
#ifdef ENABLE_QUIC
-#include "libknot/quic/quic.h"
+#include "libknot/quic/quic.h" // knot_quic_session_*
#endif // ENABLE_QUIC
#include "knot/common/log.h"
#include "knot/common/stats.h"
@@ -65,6 +66,8 @@
#define SESSION_TICKET_POOL_TIMEOUT (24 * 3600)
+#define QUIC_LOG "QUIC/TLS, "
+
/*! \brief Minimal send/receive buffer sizes. */
enum {
UDP_MIN_RCVSIZE = 4096,
@@ -236,14 +239,14 @@ static int disable_pmtudisc(int sock, int family)
return KNOT_EOK;
}
-static size_t quic_rmt_count(conf_t *conf)
+static size_t quic_rmt_count(conf_t *conf, const yp_name_t *proto)
{
size_t count = 0;
for (conf_iter_t iter = conf_iter(conf, C_RMT);
iter.code == KNOT_EOK; conf_iter_next(conf, &iter)) {
conf_val_t id = conf_iter_id(conf, &iter);
- conf_val_t rmt_quic = conf_id_get(conf, C_RMT, C_QUIC, &id);
+ conf_val_t rmt_quic = conf_id_get(conf, C_RMT, proto, &id);
if (conf_bool(&rmt_quic)) {
count++;
}
@@ -252,14 +255,11 @@ static size_t quic_rmt_count(conf_t *conf)
return count;
}
+#ifdef ENABLE_XDP
static iface_t *server_init_xdp_iface(struct sockaddr_storage *addr, bool route_check,
bool udp, bool tcp, uint16_t quic, unsigned *thread_id_start,
- bool extra_frames)
+ const knot_xdp_config_t *xdp_config)
{
-#ifndef ENABLE_XDP
- assert(0);
- return NULL;
-#else
conf_xdp_iface_t iface;
int ret = conf_xdp_iface(addr, &iface);
if (ret != KNOT_EOK) {
@@ -296,18 +296,17 @@ static iface_t *server_init_xdp_iface(struct sockaddr_storage *addr, bool route_
xdp_flags |= KNOT_XDP_FILTER_ROUTE;
}
- knot_xdp_config_t xdp_config = { .extra_frames = extra_frames };
for (int i = 0; i < iface.queues; i++) {
knot_xdp_load_bpf_t mode =
(i == 0 ? KNOT_XDP_LOAD_BPF_ALWAYS : KNOT_XDP_LOAD_BPF_NEVER);
ret = knot_xdp_init(new_if->xdp_sockets + i, iface.name, i,
- xdp_flags, iface.port, quic, mode, &xdp_config);
+ xdp_flags, iface.port, quic, mode, xdp_config);
if (ret == -EBUSY && i == 0) {
log_notice("XDP interface %s@%u is busy, retrying initialization",
iface.name, iface.port);
ret = knot_xdp_init(new_if->xdp_sockets + i, iface.name, i,
xdp_flags, iface.port, quic,
- KNOT_XDP_LOAD_BPF_ALWAYS_UNLOAD, &xdp_config);
+ KNOT_XDP_LOAD_BPF_ALWAYS_UNLOAD, xdp_config);
}
if (ret != KNOT_EOK) {
log_warning("failed to initialize XDP interface %s@%u, queue %d (%s)",
@@ -345,8 +344,8 @@ static iface_t *server_init_xdp_iface(struct sockaddr_storage *addr, bool route_
}
return new_if;
-#endif
}
+#endif
/*!
* \brief Create and initialize new interface.
@@ -363,7 +362,7 @@ static iface_t *server_init_xdp_iface(struct sockaddr_storage *addr, bool route_
* \retval Pointer to a new initialized interface.
* \retval NULL if error.
*/
-static iface_t *server_init_iface(struct sockaddr_storage *addr, bool quic,
+static iface_t *server_init_iface(struct sockaddr_storage *addr, bool tls,
int udp_thread_count, int tcp_thread_count,
bool tcp_reuseport, bool socket_affinity)
{
@@ -380,14 +379,14 @@ static iface_t *server_init_iface(struct sockaddr_storage *addr, bool quic,
int udp_socket_count = 1;
int udp_bind_flags = 0;
- int tcp_socket_count = !quic ? 1 : 0;
+ int tcp_socket_count = tcp_thread_count > 0 ? 1 : 0;
int tcp_bind_flags = 0;
#ifdef ENABLE_REUSEPORT
udp_socket_count = udp_thread_count;
udp_bind_flags |= NET_BIND_MULTIPLE;
- if (!quic && tcp_reuseport) {
+ if (tcp_reuseport) {
tcp_socket_count = tcp_thread_count;
tcp_bind_flags |= NET_BIND_MULTIPLE;
}
@@ -459,7 +458,7 @@ static iface_t *server_init_iface(struct sockaddr_storage *addr, bool quic,
warn_flag_misc = false;
}
- if (quic) {
+ if (tls) {
ret = net_cmsg_ecn_enable(sock, addr->ss_family);
if (ret != KNOT_EOK && ret != KNOT_ENOTSUP && warn_ecn) {
log_warning("failed to enable ECN for QUIC");
@@ -561,7 +560,6 @@ static void log_sock_conf(conf_t *conf)
}
}
-#ifdef ENABLE_QUIC
static int check_file(char *path, char *role)
{
if (path == NULL) {
@@ -576,29 +574,29 @@ static int check_file(char *path, char *role)
err_str = "invalid file";
} else if (!S_ISREG(st.st_mode)) {
err_str = "not a file";
+ } else if ((st.st_mode & S_IRUSR) == 0) {
+ err_str = "not readable";
} else {
return KNOT_EOK;
}
- log_error("QUIC, %s file '%s' (%s)", role, path, err_str);
+ log_error(QUIC_LOG "%s file '%s' (%s)", role, path, err_str);
return KNOT_EINVAL;
}
-#endif // ENABLE_QUIC
-static int init_creds(server_t *server, conf_t *conf)
+static int init_creds(conf_t *conf, server_t *server)
{
-#ifdef ENABLE_QUIC
char *cert_file = conf_tls(conf, C_CERT_FILE);
char *key_file = conf_tls(conf, C_KEY_FILE);
int ret = check_file(cert_file, "certificate");
if (ret != KNOT_EOK) {
- return ret;
+ goto failed;
}
ret = check_file(key_file, "key");
if (ret != KNOT_EOK) {
- return ret;
+ goto failed;
}
if (cert_file == NULL) {
@@ -606,35 +604,45 @@ static int init_creds(server_t *server, conf_t *conf)
char *kasp_dir = conf_db(conf, C_KASP_DB);
ret = make_dir(kasp_dir, S_IRWXU | S_IRWXG, true);
if (ret != KNOT_EOK) {
- log_error("QUIC, failed to create directory '%s'", kasp_dir);
+ log_error(QUIC_LOG "failed to create directory '%s'", kasp_dir);
free(kasp_dir);
- return ret;
+ goto failed;
}
key_file = abs_path(DFLT_QUIC_KEY_FILE, kasp_dir);
free(kasp_dir);
- log_debug("QUIC, using self-generated key '%s' with "
+ log_debug(QUIC_LOG "using self-generated key '%s' with "
"one-time certificate", key_file);
}
- server->quic_creds = knot_quic_init_creds(cert_file, key_file);
- free(cert_file);
+
+ uint8_t prev_pin[128];
+ size_t prev_pin_len = server_cert_pin(server, prev_pin, sizeof(prev_pin));
+
if (server->quic_creds == NULL) {
- log_error("QUIC, failed to initialize server credentials with key '%s'",
- key_file);
- free(key_file);
- return KNOT_ERROR;
+ server->quic_creds = knot_creds_init(key_file, cert_file);
+ if (server->quic_creds == NULL) {
+ log_error(QUIC_LOG "failed to initialize server credentials");
+ ret = KNOT_ERROR;
+ goto failed;
+ }
+ } else {
+ ret = knot_creds_update(server->quic_creds, key_file, cert_file);
+ if (ret != KNOT_EOK) {
+ goto failed;
+ }
}
- free(key_file);
- size_t pin_len;
uint8_t pin[128];
- if ((pin_len = server_cert_pin(server, pin, sizeof(pin))) > 0) {
- log_info("QUIC, certificate public key %.*s", (int)pin_len, pin);
+ size_t pin_len = server_cert_pin(server, pin, sizeof(pin));
+ if (pin_len > 0 && (pin_len != prev_pin_len || memcmp(pin, prev_pin, pin_len) != 0)) {
+ log_info(QUIC_LOG "certificate public key %.*s", (int)pin_len, pin);
}
- return KNOT_EOK;
-#else
- return KNOT_ERROR;
-#endif // ENABLE_QUIC
+ ret = KNOT_EOK;
+failed:
+ free(key_file);
+ free(cert_file);
+
+ return ret;
}
/*! \brief Initialize bound sockets according to configuration. */
@@ -646,11 +654,13 @@ static int configure_sockets(conf_t *conf, server_t *s)
conf_val_t listen_val = conf_get(conf, C_SRV, C_LISTEN);
conf_val_t liquic_val = conf_get(conf, C_SRV, C_LISTEN_QUIC);
+ conf_val_t listls_val = conf_get(conf, C_SRV, C_LISTEN_TLS);
conf_val_t lisxdp_val = conf_get(conf, C_XDP, C_LISTEN);
conf_val_t rundir_val = conf_get(conf, C_SRV, C_RUNDIR);
uint16_t convent_quic = conf_val_count(&liquic_val);
+ uint16_t convent_tls = conf_val_count(&listls_val);
- if (listen_val.code == KNOT_EOK || liquic_val.code == KNOT_EOK) {
+ if (listen_val.code == KNOT_EOK || liquic_val.code == KNOT_EOK || listls_val.code == KNOT_EOK) {
log_sock_conf(conf);
} else if (lisxdp_val.code != KNOT_EOK) {
log_warning("no network interface configured");
@@ -676,7 +686,7 @@ static int configure_sockets(conf_t *conf, server_t *s)
size_t real_nifs = 0;
size_t nifs = conf_val_count(&listen_val) + conf_val_count(&liquic_val) +
- conf_val_count(&lisxdp_val);
+ conf_val_count(&listls_val) + conf_val_count(&lisxdp_val);
iface_t *newlist = calloc(nifs, sizeof(*newlist));
if (newlist == NULL) {
log_error("failed to allocate memory for network sockets");
@@ -720,32 +730,52 @@ static int configure_sockets(conf_t *conf, server_t *s)
free(rundir);
return KNOT_ERROR;
}
- new_if->quic = true;
+ new_if->tls = true;
memcpy(&newlist[real_nifs++], new_if, sizeof(*newlist));
free(new_if);
conf_val_next(&liquic_val);
}
+ while (listls_val.code == KNOT_EOK) {
+ struct sockaddr_storage addr = conf_addr(&listls_val, rundir);
+ char addr_str[SOCKADDR_STRLEN] = { 0 };
+ sockaddr_tostr(addr_str, sizeof(addr_str), &addr);
+ log_info("binding to TLS interface %s", addr_str);
+
+ iface_t *new_if = server_init_iface(&addr, true, 0, size_tcp,
+ tcp_reuseport, socket_affinity);
+ if (new_if == NULL) {
+ server_deinit_iface_list(newlist, nifs);
+ free(rundir);
+ return KNOT_ERROR;
+ }
+ new_if->tls = true;
+ memcpy(&newlist[real_nifs++], new_if, sizeof(*newlist));
+ free(new_if);
+
+ conf_val_next(&listls_val);
+ }
free(rundir);
/* XDP sockets. */
- bool xdp_udp = conf->cache.xdp_udp;
- bool xdp_tcp = conf->cache.xdp_tcp;
- uint16_t xdp_quic = conf->cache.xdp_quic;
- bool route_check = conf->cache.xdp_route_check;
+#ifdef ENABLE_XDP
+ knot_xdp_config_t xdp_config = {
+ .ring_size = conf->cache.xdp_ring_size,
+ .busy_poll_budget = conf->cache.xdp_busypoll_budget,
+ .busy_poll_timeout = conf->cache.xdp_busypoll_timeout,
+ };
unsigned thread_id = s->handlers[IO_UDP].handler.unit->size +
s->handlers[IO_TCP].handler.unit->size;
- conf_val_t extra_frames_val = conf_get(conf, C_XDP, C_EXTRA_FRAMES);
- bool extra_frames = conf_bool(&extra_frames_val);
while (lisxdp_val.code == KNOT_EOK) {
struct sockaddr_storage addr = conf_addr(&lisxdp_val, NULL);
char addr_str[SOCKADDR_STRLEN] = { 0 };
sockaddr_tostr(addr_str, sizeof(addr_str), &addr);
log_info("binding to XDP interface %s", addr_str);
- iface_t *new_if = server_init_xdp_iface(&addr, route_check, xdp_udp,
- xdp_tcp, xdp_quic, &thread_id,
- extra_frames);
+ iface_t *new_if = server_init_xdp_iface(&addr, conf->cache.xdp_route_check,
+ conf->cache.xdp_udp, conf->cache.xdp_tcp,
+ conf->cache.xdp_quic, &thread_id,
+ &xdp_config);
if (new_if == NULL) {
server_deinit_iface_list(newlist, nifs);
return KNOT_ERROR;
@@ -755,13 +785,16 @@ static int configure_sockets(conf_t *conf, server_t *s)
conf_val_next(&lisxdp_val);
}
+#endif
+
assert(real_nifs <= nifs);
nifs = real_nifs;
/* QUIC credentials initialization. */
- s->quic_active = xdp_quic > 0 || convent_quic > 0 || quic_rmt_count(conf) > 0;
- if (s->quic_active) {
- if (init_creds(s, conf) != KNOT_EOK) {
+ s->quic_active = conf->cache.xdp_quic > 0 || convent_quic > 0 || quic_rmt_count(conf, C_QUIC) > 0;
+ s->tls_active = convent_tls > 0 || quic_rmt_count(conf, C_TLS) > 0;
+ if (s->quic_active || s->tls_active) {
+ if (init_creds(conf, s) != KNOT_EOK) {
server_deinit_iface_list(newlist, nifs);
return KNOT_ERROR;
}
@@ -810,6 +843,8 @@ int server_init(server_t *server, int bg_workers)
return ret;
}
+ pthread_rwlock_init(&server->ctl_lock, NULL);
+
zone_backups_init(&server->backup_ctxs);
char *catalog_dir = conf_db(conf(), C_CATALOG_DB);
@@ -864,6 +899,9 @@ void server_deinit(server_t *server)
/* Free remaining events. */
evsched_deinit(&server->sched);
+ /* Deinit locks. */
+ pthread_rwlock_destroy(&server->ctl_lock);
+
/* Free catalog zone context. */
catalog_update_clear(&server->catalog_upd);
catalog_update_deinit(&server->catalog_upd);
@@ -885,9 +923,7 @@ void server_deinit(server_t *server)
global_sessticket_pool = NULL;
knot_unreachables_deinit(&global_unreachables);
-#if defined ENABLE_QUIC
- knot_quic_free_creds(server->quic_creds);
-#endif // ENABLE_QUIC
+ knot_creds_free(server->quic_creds);
}
static int server_init_handler(server_t *server, int index, int thread_count,
@@ -1058,9 +1094,10 @@ static bool listen_changed(conf_t *conf, server_t *server)
conf_val_t listen_val = conf_get(conf, C_SRV, C_LISTEN);
conf_val_t liquic_val = conf_get(conf, C_SRV, C_LISTEN_QUIC);
+ conf_val_t listls_val = conf_get(conf, C_SRV, C_LISTEN_TLS);
conf_val_t lisxdp_val = conf_get(conf, C_XDP, C_LISTEN);
size_t new_count = conf_val_count(&listen_val) + conf_val_count(&liquic_val) +
- conf_val_count(&lisxdp_val);
+ conf_val_count(&listls_val) + conf_val_count(&lisxdp_val);
size_t old_count = server->n_ifaces;
if (new_count != old_count) {
return true;
@@ -1075,7 +1112,9 @@ static bool listen_changed(conf_t *conf, server_t *server)
struct sockaddr_storage addr = conf_addr(&listen_val, rundir);
bool found = false;
for (size_t i = 0; i < server->n_ifaces; i++) {
- if (sockaddr_cmp(&addr, &server->ifaces[i].addr, false) == 0) {
+ iface_t *iface = &server->ifaces[i];
+ if (sockaddr_cmp(&addr, &iface->addr, false) == 0 &&
+ !iface->tls && iface->fd_xdp_count == 0) {
matches++;
found = true;
break;
@@ -1090,7 +1129,9 @@ static bool listen_changed(conf_t *conf, server_t *server)
struct sockaddr_storage addr = conf_addr(&liquic_val, rundir);
bool found = false;
for (size_t i = 0; i < server->n_ifaces; i++) {
- if (sockaddr_cmp(&addr, &server->ifaces[i].addr, false) == 0) {
+ iface_t *iface = &server->ifaces[i];
+ if (sockaddr_cmp(&addr, &iface->addr, false) == 0 &&
+ iface->tls && iface->fd_udp_count > 0) {
matches++;
found = true;
break;
@@ -1101,13 +1142,32 @@ static bool listen_changed(conf_t *conf, server_t *server)
}
conf_val_next(&liquic_val);
}
+ while (listls_val.code == KNOT_EOK) {
+ struct sockaddr_storage addr = conf_addr(&listls_val, rundir);
+ bool found = false;
+ for (size_t i = 0; i < server->n_ifaces; i++) {
+ iface_t *iface = &server->ifaces[i];
+ if (sockaddr_cmp(&addr, &iface->addr, false) == 0 &&
+ iface->tls && iface->fd_tcp_count > 0) {
+ matches++;
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ break;
+ }
+ conf_val_next(&listls_val);
+ }
free(rundir);
while (lisxdp_val.code == KNOT_EOK) {
struct sockaddr_storage addr = conf_addr(&lisxdp_val, NULL);
bool found = false;
for (size_t i = 0; i < server->n_ifaces; i++) {
- if (sockaddr_cmp(&addr, &server->ifaces[i].addr, false) == 0) {
+ iface_t *iface = &server->ifaces[i];
+ if (sockaddr_cmp(&addr, &iface->addr, false) == 0 &&
+ iface->fd_xdp_count > 0) {
matches++;
found = true;
break;
@@ -1137,6 +1197,9 @@ static void warn_server_reconfigure(conf_t *conf, server_t *server)
static bool warn_xdp_tcp = true;
static bool warn_xdp_quic = true;
static bool warn_route_check = true;
+ static bool warn_ring_size = true;
+ static bool warn_busypoll_budget = true;
+ static bool warn_busypoll_timeout = true;
static bool warn_rmt_pool_limit = true;
if (warn_tcp_reuseport && conf->cache.srv_tcp_reuseport != conf_get_bool(conf, C_SRV, C_TCP_REUSEPORT)) {
@@ -1165,7 +1228,7 @@ static void warn_server_reconfigure(conf_t *conf, server_t *server)
}
if (warn_listen && server->ifaces != NULL && listen_changed(conf, server)) {
- log_warning(msg, "listen(-xdp,-quic)");
+ log_warning(msg, "listen(-xdp,-quic,-tls)");
warn_listen = false;
}
@@ -1195,6 +1258,21 @@ static void warn_server_reconfigure(conf_t *conf, server_t *server)
warn_route_check = false;
}
+ if (warn_ring_size && conf->cache.xdp_ring_size != conf_get_int(conf, C_XDP, C_RING_SIZE)) {
+ log_warning(msg, &C_RING_SIZE[1]);
+ warn_ring_size = false;
+ }
+
+ if (warn_busypoll_budget && conf->cache.xdp_busypoll_budget != conf_get_int(conf, C_XDP, C_BUSYPOLL_BUDGET)) {
+ log_warning(msg, &C_BUSYPOLL_BUDGET[1]);
+ warn_busypoll_budget = false;
+ }
+
+ if (warn_busypoll_timeout && conf->cache.xdp_busypoll_timeout != conf_get_int(conf, C_XDP, C_BUSYPOLL_TIMEOUT)) {
+ log_warning(msg, &C_BUSYPOLL_TIMEOUT[1]);
+ warn_busypoll_timeout = false;
+ }
+
if (warn_rmt_pool_limit && global_conn_pool != NULL &&
global_conn_pool->capacity != conf_get_int(conf, C_SRV, C_RMT_POOL_LIMIT)) {
log_warning(msg, &C_RMT_POOL_LIMIT[1]);
@@ -1395,7 +1473,7 @@ static int reconfigure_remote_pool(conf_t *conf, server_t *server)
#ifdef ENABLE_QUIC
if (global_sessticket_pool == NULL && server->quic_active) {
- size_t rmt_count = quic_rmt_count(conf);
+ size_t rmt_count = quic_rmt_count(conf, C_QUIC);
if (rmt_count > 0) {
size_t max_tickets = conf_bg_threads(conf) * rmt_count * 2; // Two addresses per remote.
conn_pool_t *new_pool =
@@ -1456,6 +1534,12 @@ int server_reconfigure(conf_t *conf, server_t *server)
if (conf_lmdb_readers(conf) > CONF_MAX_DB_READERS) {
log_warning("config, exceeded number of database readers");
}
+ } else {
+ /* Reconfigure TLS credentials. */
+ if ((ret = init_creds(conf, server)) != KNOT_EOK) {
+ log_error("failed to reconfigure server credentials (%s)",
+ knot_strerror(ret));
+ }
}
/* Reconfigure journal DB. */
@@ -1515,14 +1599,13 @@ void server_update_zones(conf_t *conf, server_t *server, reload_t mode)
size_t server_cert_pin(server_t *server, uint8_t *out, size_t out_size)
{
-#ifdef ENABLE_QUIC
int pin_size = 0;
- uint8_t bin_pin[KNOT_QUIC_PIN_LEN];
+ uint8_t bin_pin[KNOT_TLS_PIN_LEN];
size_t bin_pin_size = sizeof(bin_pin);
gnutls_x509_crt_t cert = NULL;
if (server->quic_creds != NULL &&
- knot_quic_creds_cert(server->quic_creds, &cert) == KNOT_EOK &&
+ knot_creds_cert(server->quic_creds, &cert) == KNOT_EOK &&
gnutls_x509_crt_get_key_id(cert, GNUTLS_KEYID_USE_SHA256,
bin_pin, &bin_pin_size) == GNUTLS_E_SUCCESS) {
pin_size = knot_base64_encode(bin_pin, bin_pin_size, out, out_size);
@@ -1530,7 +1613,4 @@ size_t server_cert_pin(server_t *server, uint8_t *out, size_t out_size)
gnutls_x509_crt_deinit(cert);
return (pin_size >= 0) ? pin_size : 0;
-#else
- return 0;
-#endif // ENABLE_QUIC
}
diff --git a/src/knot/server/server.h b/src/knot/server/server.h
index e72e6de..fae06d6 100644
--- a/src/knot/server/server.h
+++ b/src/knot/server/server.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -16,8 +16,7 @@
#pragma once
-#include <stdatomic.h>
-
+#include "contrib/atomic.h"
#include "knot/conf/conf.h"
#include "knot/catalog/catalog_update.h"
#include "knot/common/evsched.h"
@@ -32,7 +31,7 @@
struct server;
struct knot_xdp_socket;
-struct knot_quic_creds;
+struct knot_creds;
/*!
* \brief I/O handler structure.
@@ -75,7 +74,7 @@ typedef struct {
unsigned fd_xdp_count;
unsigned xdp_first_thread_id;
bool anyaddr;
- bool quic;
+ bool tls;
struct knot_xdp_socket **xdp_sockets;
struct sockaddr_storage addr;
} iface_t;
@@ -120,16 +119,20 @@ typedef struct server {
iface_t *ifaces;
size_t n_ifaces;
bool quic_active;
+ bool tls_active;
+
+ /*! \brief Mutex protecting simultaneous access from concurrent CTL threads. */
+ pthread_rwlock_t ctl_lock;
/*! \brief Pending changes to catalog member zones, update indication. */
catalog_update_t catalog_upd;
- atomic_bool catalog_upd_signal;
+ knot_atomic_bool catalog_upd_signal;
/*! \brief Context of pending zones' backup. */
zone_backup_ctxs_t backup_ctxs;
/*! \brief Crendentials context for QUIC. */
- struct knot_quic_creds *quic_creds;
+ struct knot_creds *quic_creds;
} server_t;
/*!
diff --git a/src/knot/server/tcp-handler.c b/src/knot/server/tcp-handler.c
index 305b2f4..7af2f58 100644
--- a/src/knot/server/tcp-handler.c
+++ b/src/knot/server/tcp-handler.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -36,6 +36,7 @@
#include "knot/common/fdset.h"
#include "knot/nameserver/process_query.h"
#include "knot/query/layer.h"
+#include "libknot/quic/tls.h"
#include "contrib/macros.h"
#include "contrib/mempattern.h"
#include "contrib/net.h"
@@ -57,6 +58,7 @@ typedef struct tcp_context {
unsigned max_worker_fds; /*!< Max TCP clients per worker configuration + no. of ifaces. */
int idle_timeout; /*!< [s] TCP idle timeout configuration. */
int io_timeout; /*!< [ms] TCP send/recv timeout configuration. */
+ struct knot_tls_ctx *tls_ctx; /*!< DoT answering context. */
} tcp_context_t;
#define TCP_SWEEP_INTERVAL 2 /*!< [secs] granularity of connection sweeping. */
@@ -76,11 +78,22 @@ static void update_tcp_conf(tcp_context_t *tcp)
tcp->idle_timeout = pconf->cache.srv_tcp_idle_timeout;
tcp->io_timeout = pconf->cache.srv_tcp_io_timeout;
rcu_read_unlock();
+
+ if (tcp->tls_ctx != NULL) {
+ tcp->tls_ctx->io_timeout = tcp->io_timeout;
+ }
+}
+
+static void free_tls_ctx(fdset_t *set, int idx)
+{
+ void *tls_conn = *fdset_ctx2(set, idx);
+ knot_tls_conn_del(tls_conn);
}
/*! \brief Sweep TCP connection. */
-static fdset_sweep_state_t tcp_sweep(fdset_t *set, int fd, _unused_ void *data)
+static fdset_sweep_state_t tcp_sweep(fdset_t *set, int idx, _unused_ void *data)
{
+ const int fd = fdset_get_fd(set, idx);
assert(set && fd >= 0);
/* Best-effort, name and shame. */
@@ -92,6 +105,8 @@ static fdset_sweep_state_t tcp_sweep(fdset_t *set, int fd, _unused_ void *data)
log_notice("TCP, terminated inactive client, address %s", addr_str);
}
+ free_tls_ctx(set, idx);
+
return FDSET_SWEEP;
}
@@ -107,15 +122,14 @@ static void tcp_log_error(const struct sockaddr_storage *ss, const char *operati
}
static unsigned tcp_set_ifaces(const iface_t *ifaces, size_t n_ifaces,
- fdset_t *fds, int thread_id)
+ fdset_t *fds, int thread_id, bool *tls)
{
if (n_ifaces == 0) {
return 0;
}
for (const iface_t *i = ifaces; i != ifaces + n_ifaces; i++) {
- if (i->fd_tcp_count == 0 || i->quic) { // Ignore XDP and QUIC interfaces.
- assert(i->fd_xdp_count > 0 || i->quic);
+ if (i->fd_xdp_count > 0 || i->fd_tcp_count == 0) { // Ignore XDP and QUIC interfaces.
continue;
}
@@ -133,31 +147,44 @@ static unsigned tcp_set_ifaces(const iface_t *ifaces, size_t n_ifaces,
if (ret < 0) {
return 0;
}
+ if (i->tls) {
+ *tls = true;
+ }
}
return fdset_get_length(fds);
}
-static int tcp_handle(tcp_context_t *tcp, int fd, const sockaddr_t *remote,
- const sockaddr_t *local, struct iovec *rx, struct iovec *tx)
+static int tcp_handle(tcp_context_t *tcp, knotd_qdata_params_t *params,
+ struct iovec *rx, struct iovec *tx)
{
- /* Create query processing parameter. */
- knotd_qdata_params_t params = params_init(KNOTD_QUERY_PROTO_TCP, remote, local,
- fd, tcp->server, tcp->thread_id);
-
rx->iov_len = KNOT_WIRE_MAX_PKTSIZE;
tx->iov_len = KNOT_WIRE_MAX_PKTSIZE;
/* Receive data. */
- int recv = net_dns_tcp_recv(fd, rx->iov_base, rx->iov_len, tcp->io_timeout);
+ int recv;
+ if (params->tls_conn != NULL) {
+ int ret = knot_tls_handshake(params->tls_conn, true);
+ switch (ret) {
+ case KNOT_EAGAIN: // Unfinished handshake, continue later.
+ return KNOT_EOK;
+ case KNOT_EOK: // Finished handshake, continue with receiving message.
+ recv = knot_tls_recv_dns(params->tls_conn, rx->iov_base, rx->iov_len);
+ break;
+ default: // E.g. handshake timeout.
+ return ret;
+ }
+ } else {
+ recv = net_dns_tcp_recv(params->socket, rx->iov_base, rx->iov_len, tcp->io_timeout);
+ }
if (recv > 0) {
rx->iov_len = recv;
} else {
- tcp_log_error(params.remote, "receive", recv);
+ tcp_log_error(params->remote, "receive", recv);
return KNOT_EOF;
}
- handle_query(&params, &tcp->layer, rx, NULL);
+ handle_query(params, &tcp->layer, rx, NULL);
/* Resolve until NOOP or finished. */
knot_pkt_t *ans = knot_pkt_new(tx->iov_base, tx->iov_len, tcp->layer.mm);
@@ -165,10 +192,15 @@ static int tcp_handle(tcp_context_t *tcp, int fd, const sockaddr_t *remote,
knot_layer_produce(&tcp->layer, ans);
/* Send, if response generation passed and wasn't ignored. */
if (ans->size > 0 && send_state(tcp->layer.state)) {
- int sent = net_dns_tcp_send(fd, ans->wire, ans->size,
- tcp->io_timeout, NULL);
+ int sent;
+ if (params->tls_conn != NULL) {
+ sent = knot_tls_send_dns(params->tls_conn, ans->wire, ans->size);
+ } else {
+ sent = net_dns_tcp_send(params->socket, ans->wire, ans->size,
+ tcp->io_timeout, NULL);
+ }
if (sent != ans->size) {
- tcp_log_error(params.remote, "send", sent);
+ tcp_log_error(params->remote, "send", sent);
handle_finish(&tcp->layer);
return KNOT_EOF;
}
@@ -222,12 +254,42 @@ static int tcp_event_serve(tcp_context_t *tcp, unsigned i, const iface_t *iface)
}
}
- int ret = tcp_handle(tcp, fd, remote, local, &tcp->iov[0], &tcp->iov[1]);
+ knotd_qdata_params_t params = params_init(iface->tls ? KNOTD_QUERY_PROTO_TLS
+ : KNOTD_QUERY_PROTO_TCP,
+ remote, local, fd, tcp->server,
+ tcp->thread_id);
+
+ // NOTE there is no way to avoid calling accept() on unwanted connections:
+ // - it's not possible to read out the remote IP beforehand
+ // - there is no way to pull it out of the queue
+ // So we just accept() those connection (possibly going ahead with the handshake)
+ // and close it immediately.
+ if (process_query_proto(&params, KNOTD_STAGE_PROTO_BEGIN) == KNOTD_PROTO_STATE_BLOCK) {
+ return KNOT_EDENIED; // results in closing connection
+ }
+
+ /* Establish a TLS session. */
+ if (iface->tls) {
+ assert(tcp->tls_ctx != NULL);
+ knot_tls_conn_t *tls_conn = *fdset_ctx2(&tcp->set, i);
+ if (tls_conn == NULL) {
+ tls_conn = knot_tls_conn_new(tcp->tls_ctx, fd);
+ if (tls_conn == NULL) {
+ return KNOT_ENOMEM;
+ }
+ *fdset_ctx2(&tcp->set, i) = tls_conn;
+ }
+ params_update_tls(&params, tls_conn);
+ }
+
+ int ret = tcp_handle(tcp, &params, &tcp->iov[0], &tcp->iov[1]);
if (ret == KNOT_EOK) {
/* Update socket activity timer. */
(void)fdset_set_watchdog(&tcp->set, i, tcp->idle_timeout);
}
+ (void)process_query_proto(&params, KNOTD_STAGE_PROTO_END);
+
return ret;
}
@@ -273,6 +335,7 @@ static void tcp_wait_for_events(tcp_context_t *tcp)
/* Evaluate. */
if (should_close) {
+ free_tls_ctx(set, idx);
fdset_it_remove(&it);
}
}
@@ -325,13 +388,15 @@ int tcp_master(dthread_t *thread)
/* Prepare initial buffer for listening and bound sockets. */
if (fdset_init(&tcp.set, FDSET_RESIZE_STEP) != KNOT_EOK) {
+ ret = KNOT_ENOMEM;
goto finish;
}
/* Set descriptors for the configured interfaces. */
+ bool tls = false;
tcp.client_threshold = tcp_set_ifaces(handler->server->ifaces,
handler->server->n_ifaces,
- &tcp.set, thread_id);
+ &tcp.set, thread_id, &tls);
if (tcp.client_threshold == 0) {
goto finish; /* Terminate on zero interfaces. */
}
@@ -341,6 +406,17 @@ int tcp_master(dthread_t *thread)
update_sweep_timer(&next_sweep);
update_tcp_conf(&tcp);
+ /* Initialize TLS context. */
+ if (tls) {
+ // Set the HS timeout to 8x the RMT IO one as the HS duration can be up to 4*roundtrip.
+ tcp.tls_ctx = knot_tls_ctx_new(handler->server->quic_creds,
+ tcp.io_timeout, 8 * tcp.io_timeout, true);
+ if (tcp.tls_ctx == NULL) {
+ ret = KNOT_ENOMEM;
+ goto finish;
+ }
+ }
+
for (;;) {
/* Check for cancellation. */
if (dt_is_cancelled(thread)) {
@@ -359,6 +435,7 @@ int tcp_master(dthread_t *thread)
}
finish:
+ knot_tls_ctx_free(tcp.tls_ctx);
free(tcp.iov[0].iov_base);
free(tcp.iov[1].iov_base);
mp_delete(mm.ctx);
diff --git a/src/knot/server/udp-handler.c b/src/knot/server/udp-handler.c
index e54ce2c..c5166f9 100644
--- a/src/knot/server/udp-handler.c
+++ b/src/knot/server/udp-handler.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -73,9 +73,15 @@ typedef struct {
static void udp_handler(udp_context_t *udp, knotd_qdata_params_t *params,
struct iovec *rx, struct iovec *tx)
{
+ if (process_query_proto(params, KNOTD_STAGE_PROTO_BEGIN) == KNOTD_PROTO_STATE_BLOCK) {
+ return;
+ }
+
// Prepare a reply.
struct sockaddr_storage proxied_remote;
handle_udp_reply(params, &udp->layer, rx, tx, &proxied_remote);
+
+ (void)process_query_proto(params, KNOTD_STAGE_PROTO_END);
}
typedef struct {
@@ -153,7 +159,7 @@ void cmsg_handle(const struct msghdr *rx, struct msghdr *tx,
}
struct cmsghdr *cmsg = CMSG_FIRSTHDR(tx);
- if (iface->quic) {
+ if (iface->tls) {
*p_ecn = NULL;
while (cmsg != NULL) {
cmsg_handle_ecn(p_ecn, cmsg);
@@ -246,9 +252,9 @@ static void udp_msg_handle(udp_context_t *ctx, const iface_t *iface, void *d)
/* Process received pkt. */
knotd_qdata_params_t params = params_init(
- iface->quic ? KNOTD_QUERY_PROTO_QUIC : KNOTD_QUERY_PROTO_UDP,
+ iface->tls ? KNOTD_QUERY_PROTO_QUIC : KNOTD_QUERY_PROTO_UDP,
&rq->addr, local, rq->fd, ctx->server, ctx->thread_id);
- if (iface->quic) {
+ if (iface->tls) {
#ifdef ENABLE_QUIC
quic_handler(&params, &ctx->layer, ctx->quic_idle_close,
ctx->quic_table, &rq->iov[RX], &rq->msg[TX], p_ecn);
@@ -357,9 +363,9 @@ static void udp_mmsg_handle(udp_context_t *ctx, const iface_t *iface, void *d)
const sockaddr_t *local = local_addr(&ctx->local, iface);
knotd_qdata_params_t params = params_init(
- iface->quic ? KNOTD_QUERY_PROTO_QUIC : KNOTD_QUERY_PROTO_UDP,
+ iface->tls ? KNOTD_QUERY_PROTO_QUIC : KNOTD_QUERY_PROTO_UDP,
&rq->addrs[i], local, rq->fd, ctx->server, ctx->thread_id);
- if (iface->quic) {
+ if (iface->tls) {
#ifdef ENABLE_QUIC
quic_handler(&params, &ctx->layer, ctx->quic_idle_close,
ctx->quic_table, rx->msg_iov, tx, p_ecn);
@@ -432,7 +438,7 @@ static int xdp_mmsg_recv(_unused_ int fd, void *d)
static void xdp_mmsg_handle(udp_context_t *ctx, _unused_ const iface_t *iface, void *d)
{
- assert(!iface->quic);
+ assert(!iface->tls);
xdp_handle_msgs(d, &ctx->layer, ctx->server, ctx->thread_id);
}
@@ -482,7 +488,6 @@ static int iface_udp_fd(const iface_t *iface, int thread_id, bool xdp_thread,
#endif
} else { // UDP thread.
if (iface->fd_udp_count == 0) { // No UDP interfaces.
- assert(iface->fd_xdp_count > 0);
return -1;
}
#ifdef ENABLE_REUSEPORT
@@ -508,7 +513,7 @@ static unsigned udp_set_ifaces(const server_t *server, size_t n_ifaces, fdset_t
#ifndef ENABLE_REUSEPORT
/* If loadbalanced SO_REUSEPORT isn't available, ensure that
* just one (first) UDP worker handles the QUIC sockets. */
- if (i->quic && thread_id > 0) {
+ if (i->tls && thread_id > 0) {
continue;
}
#endif
@@ -520,7 +525,7 @@ static unsigned udp_set_ifaces(const server_t *server, size_t n_ifaces, fdset_t
if (ret < 0) {
return 0;
}
- if (i->quic) {
+ if (i->tls) {
*quic = true;
}
}
diff --git a/src/knot/server/xdp-handler.c b/src/knot/server/xdp-handler.c
index ae8512d..403bb70 100644
--- a/src/knot/server/xdp-handler.c
+++ b/src/knot/server/xdp-handler.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,6 +20,7 @@
#include <stdlib.h>
#include <urcu.h>
+#include "knot/nameserver/process_query.h"
#include "knot/server/handler.h"
#include "knot/server/quic-handler.h"
#include "knot/server/xdp-handler.h"
@@ -196,6 +197,12 @@ static void handle_udp(xdp_handle_ctx_t *ctx, knot_layer_t *layer,
continue;
}
+ params_xdp_update(params, KNOTD_QUERY_PROTO_UDP, msg_recv);
+
+ if (process_query_proto(params, KNOTD_STAGE_PROTO_BEGIN) == KNOTD_PROTO_STATE_BLOCK) {
+ continue;
+ }
+
// Try to allocate a buffer for a reply.
if (knot_xdp_reply_alloc(ctx->sock, msg_recv, msg_send) != KNOT_EOK) {
if (log_enabled_debug()) {
@@ -206,36 +213,50 @@ static void handle_udp(xdp_handle_ctx_t *ctx, knot_layer_t *layer,
ctx->msg_udp_count++;
// Prepare a reply.
- params_xdp_update(params, KNOTD_QUERY_PROTO_UDP, msg_recv, 0, NULL);
handle_udp_reply(params, layer, &msg_recv->payload, &msg_send->payload,
&proxied_remote);
+
+ (void)process_query_proto(params, KNOTD_STAGE_PROTO_END);
}
}
static void handle_tcp(xdp_handle_ctx_t *ctx, knot_layer_t *layer,
knotd_qdata_params_t *params)
{
- int ret = knot_tcp_recv(ctx->relays, ctx->msg_recv, ctx->msg_recv_count,
- ctx->tcp_table, ctx->syn_table, XDP_TCP_IGNORE_NONE);
- if (ret != KNOT_EOK) {
- if (log_enabled_debug()) {
- log_debug("TCP/XDP, failed to process some packets (%s)", knot_strerror(ret));
- }
- return;
- } else if (knot_tcp_relay_empty(&ctx->relays[0])) { // no TCP traffic
- return;
- }
uint8_t ans_buf[KNOT_WIRE_MAX_PKTSIZE];
for (uint32_t i = 0; i < ctx->msg_recv_count; i++) {
+ knot_xdp_msg_t *msg_recv = &ctx->msg_recv[i];
knot_tcp_relay_t *rl = &ctx->relays[i];
+ if (!(msg_recv->flags & KNOT_XDP_MSG_TCP)) {
+ continue;
+ }
+
+ params_xdp_update(params, KNOTD_QUERY_PROTO_TCP, msg_recv);
+
+ if (process_query_proto(params, KNOTD_STAGE_PROTO_BEGIN) == KNOTD_PROTO_STATE_BLOCK) {
+ continue;
+ }
+
+ int ret = knot_tcp_recv(rl, msg_recv, ctx->tcp_table,
+ ctx->syn_table, XDP_TCP_IGNORE_NONE);
+ if (ret != KNOT_EOK) {
+ if (log_enabled_debug()) {
+ log_debug("TCP/XDP, failed to process some packets (%s)",
+ knot_strerror(ret));
+ }
+ continue;
+ } else if (knot_tcp_relay_empty(rl)) {
+ continue;
+ }
+
+ params_update_tcp(params, rl->conn->establish_rtt);
+
// Process all complete DNS queries in one TCP stream.
for (size_t j = 0; rl->inbf != NULL && j < rl->inbf->n_inbufs; j++) {
// Consume the query.
- params_xdp_update(params, KNOTD_QUERY_PROTO_TCP, ctx->msg_recv,
- rl->conn->establish_rtt, NULL);
struct iovec *inbufs = rl->inbf->inbufs;
handle_query(params, layer, &inbufs[j], NULL);
@@ -253,6 +274,8 @@ static void handle_tcp(xdp_handle_ctx_t *ctx, knot_layer_t *layer,
handle_finish(layer);
}
+
+ (void)process_query_proto(params, KNOTD_STAGE_PROTO_END);
}
}
@@ -274,6 +297,12 @@ static void handle_quic(xdp_handle_ctx_t *ctx, knot_layer_t *layer,
continue;
}
+ params_xdp_update(params, KNOTD_QUERY_PROTO_QUIC, msg_recv);
+
+ if (process_query_proto(params, KNOTD_STAGE_PROTO_BEGIN) == KNOTD_PROTO_STATE_BLOCK) {
+ continue;
+ }
+
knot_quic_reply_t *reply = &ctx->quic_replies[i];
knot_xdp_msg_t *msg_out = &ctx->msg_send_udp[i];
@@ -289,7 +318,9 @@ static void handle_quic(xdp_handle_ctx_t *ctx, knot_layer_t *layer,
&ctx->quic_relays[i]);
knot_quic_conn_t *conn = ctx->quic_relays[i];
- handle_quic_streams(conn, params, layer, &ctx->msg_recv[i]);
+ handle_quic_streams(conn, params, layer);
+
+ (void)process_query_proto(params, KNOTD_STAGE_PROTO_END);
}
#else
(void)(ctx);
diff --git a/src/knot/updates/acl.c b/src/knot/updates/acl.c
index d297747..456e8bb 100644
--- a/src/knot/updates/acl.c
+++ b/src/knot/updates/acl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -18,16 +18,13 @@
#include "contrib/string.h"
#include "contrib/wire_ctx.h"
-#ifdef ENABLE_QUIC
-#include "libknot/quic/quic.h"
-#endif // ENABLE_QUIC
static bool cert_pin_check(const uint8_t *session_pin, size_t session_pin_size,
conf_val_t *pins)
{
if (pins->code == KNOT_ENOENT) { // No certificate pin authentication required.
return true;
- } else if (session_pin_size == 0) { // Not a QUIC connection.
+ } else if (session_pin_size == 0) { // Not a TLS/QUIC connection.
return false;
}
@@ -283,20 +280,15 @@ static bool check_addr_key(conf_t *conf, conf_val_t *addr_val, conf_val_t *key_v
bool acl_allowed(conf_t *conf, conf_val_t *acl, acl_action_t action,
const struct sockaddr_storage *addr, knot_tsig_key_t *tsig,
const knot_dname_t *zone_name, knot_pkt_t *query,
- struct knot_quic_conn *conn)
+ struct gnutls_session_int *tls_session)
{
if (acl == NULL || addr == NULL || tsig == NULL) {
return false;
}
-#ifdef ENABLE_QUIC
- uint8_t session_pin[KNOT_QUIC_PIN_LEN];
+ uint8_t session_pin[KNOT_TLS_PIN_LEN];
size_t session_pin_size = sizeof(session_pin);
- knot_quic_conn_pin(conn, session_pin, &session_pin_size, false);
-#else
- uint8_t session_pin[1];
- size_t session_pin_size = 0;
-#endif // ENABLE_QUIC
+ knot_tls_pin(tls_session, session_pin, &session_pin_size, false);
bool forward = false;
if (action == ACL_ACTION_UPDATE) {
@@ -392,20 +384,15 @@ next_acl:
}
bool rmt_allowed(conf_t *conf, conf_val_t *rmts, const struct sockaddr_storage *addr,
- knot_tsig_key_t *tsig, struct knot_quic_conn *conn)
+ knot_tsig_key_t *tsig, struct gnutls_session_int *tls_session)
{
if (!conf->cache.srv_auto_acl) {
return false;
}
-#ifdef ENABLE_QUIC
- uint8_t session_pin[KNOT_QUIC_PIN_LEN];
+ uint8_t session_pin[KNOT_TLS_PIN_LEN];
size_t session_pin_size = sizeof(session_pin);
- knot_quic_conn_pin(conn, session_pin, &session_pin_size, false);
-#else
- uint8_t session_pin[1];
- size_t session_pin_size = 0;
-#endif // ENABLE_QUIC
+ knot_tls_pin(tls_session, session_pin, &session_pin_size, false);
conf_mix_iter_t iter;
conf_mix_iter_init(conf, rmts, &iter);
diff --git a/src/knot/updates/acl.h b/src/knot/updates/acl.h
index 88d7de5..5072a29 100644
--- a/src/knot/updates/acl.h
+++ b/src/knot/updates/acl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,6 +19,7 @@
#include <stdbool.h>
#include <sys/socket.h>
+#include "libknot/quic/tls_common.h"
#include "libknot/tsig.h"
#include "knot/conf/conf.h"
@@ -51,21 +52,21 @@ typedef enum {
*
* If a proper ACL rule is found and tsig.name is not empty, tsig.secret is filled.
*
- * \param conf Configuration.
- * \param acl Pointer to ACL config multivalued identifier.
- * \param action ACL action.
- * \param addr IP address.
- * \param tsig TSIG parameters.
- * \param zone_name Zone name.
- * \param query Update query.
- * \param conn Possible QUIC connection.
+ * \param conf Configuration.
+ * \param acl Pointer to ACL config multivalued identifier.
+ * \param action ACL action.
+ * \param addr IP address.
+ * \param tsig TSIG parameters.
+ * \param zone_name Zone name.
+ * \param query Update query.
+ * \param tls_session Possible TLS session.
*
* \retval True if authenticated.
*/
bool acl_allowed(conf_t *conf, conf_val_t *acl, acl_action_t action,
const struct sockaddr_storage *addr, knot_tsig_key_t *tsig,
const knot_dname_t *zone_name, knot_pkt_t *query,
- struct knot_quic_conn *conn);
+ struct gnutls_session_int *tls_session);
/*!
* \brief Checks if the address and/or tsig key matches a remote from the list.
@@ -75,13 +76,13 @@ bool acl_allowed(conf_t *conf, conf_val_t *acl, acl_action_t action,
*
* If a proper REMOTE is found and tsig.name is not empty, tsig.secret is filled.
*
- * \param conf Configuration.
- * \param rmts Pointer to REMOTE config multivalued identifier.
- * \param addr IP address.
- * \param tsig TSIG parameters.
- * \param conn Possible QUIC connection.
+ * \param conf Configuration.
+ * \param rmts Pointer to REMOTE config multivalued identifier.
+ * \param addr IP address.
+ * \param tsig TSIG parameters.
+ * \param tls_session Possible TLS session.
*
* \retval True if authenticated.
*/
bool rmt_allowed(conf_t *conf, conf_val_t *rmts, const struct sockaddr_storage *addr,
- knot_tsig_key_t *tsig, struct knot_quic_conn *conn);
+ knot_tsig_key_t *tsig, struct gnutls_session_int *tls_session);
diff --git a/src/knot/updates/ddns.c b/src/knot/updates/ddns.c
index 5ab858f..47e3fc5 100644
--- a/src/knot/updates/ddns.c
+++ b/src/knot/updates/ddns.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -266,21 +266,41 @@ static bool node_contains_rr(const zone_node_t *node,
/*!< \brief Returns true if CNAME is in this node. */
static bool adding_to_cname(const knot_dname_t *owner,
+ zone_update_t *update,
const zone_node_t *node)
{
if (node == NULL) {
- // Node did not exist before update.
+ // Node did not exist before update, juch check DNAMEs above.
+
+ while ((owner = knot_dname_next_label(owner)) != NULL &&
+ (node = zone_update_get_node(update, owner)) == NULL);
+
+ for ( ; node != NULL; node = node->parent) {
+ knot_rrset_t dname = node_rrset(node, KNOT_RRTYPE_DNAME);
+ if (!knot_rrset_empty(&dname)) {
+ // DNAME above
+ return true;
+ }
+ }
+
return false;
}
knot_rrset_t cname = node_rrset(node, KNOT_RRTYPE_CNAME);
- if (knot_rrset_empty(&cname)) {
- // Node did not contain CNAME before update.
- return false;
+ if (!knot_rrset_empty(&cname)) {
+ // CNAME present
+ return true;
}
- // CNAME present
- return true;
+ while ((node = node->parent) != NULL) {
+ knot_rrset_t dname = node_rrset(node, KNOT_RRTYPE_DNAME);
+ if (!knot_rrset_empty(&dname)) {
+ // DNAME above
+ return true;
+ }
+ }
+
+ return false;
}
/*!< \brief Used to ignore SOA deletions and SOAs with lower serial than zone. */
@@ -315,12 +335,29 @@ static int add_rr_to_changeset(const knot_rrset_t *rr, zone_update_t *update)
return zone_update_add(update, rr);
}
-/*!< \brief Processes CNAME addition (replace or ignore) */
+int node_empty_cb(zone_node_t *node, _unused_ void *ctx)
+{
+ return node_empty(node) ? KNOT_EOK : KNOT_ESEMCHECK;
+}
+
+bool subtree_empty(zone_contents_t *zone, const zone_node_t *node)
+{
+ if (node == NULL) {
+ return true;
+ }
+ int ret = zone_tree_sub_apply(zone->nodes, node->owner, true, node_empty_cb, NULL);
+ return (ret == KNOT_EOK);
+}
+
+/*!< \brief Processes CNAME/DNAME addition (replace or ignore) */
static int process_add_cname(const zone_node_t *node,
const knot_rrset_t *rr,
+ uint16_t type,
zone_update_t *update)
{
- knot_rrset_t cname = node_rrset(node, KNOT_RRTYPE_CNAME);
+ assert(type == KNOT_RRTYPE_CNAME || type == KNOT_RRTYPE_DNAME);
+
+ knot_rrset_t cname = node_rrset(node, type);
if (!knot_rrset_empty(&cname)) {
// If they are identical, ignore.
if (knot_rrset_equal(&cname, rr, true)) {
@@ -333,40 +370,24 @@ static int process_add_cname(const zone_node_t *node,
}
return add_rr_to_changeset(rr, update);
- } else if (!node_empty(node)) {
+ } else if (type == KNOT_RRTYPE_CNAME && !node_empty(node)) {
// Other occupied node => ignore.
return KNOT_EOK;
+ } else if (type == KNOT_RRTYPE_DNAME && !subtree_empty(update->new_cont, node)) {
+ // Equivalent to above, ignore.
+ return KNOT_EOK;
+ } else if (type == KNOT_RRTYPE_DNAME && node_rrtype_exists(node, KNOT_RRTYPE_CNAME)) {
+ // RFC 6672 §5.2.
+ return KNOT_EOK;
+ } else if (type == KNOT_RRTYPE_CNAME && adding_to_cname(rr->owner, update, node)) {
+ // DNAME exists above CNAME, ignore.
+ return KNOT_EOK;
} else {
// Can add.
return add_rr_to_changeset(rr, update);
}
}
-/*!< \brief Processes NSEC3PARAM addition (ignore when not removed, or non-apex) */
-static int process_add_nsec3param(const zone_node_t *node,
- const knot_rrset_t *rr,
- zone_update_t *update)
-{
- if (node == NULL || !node_rrtype_exists(node, KNOT_RRTYPE_SOA)) {
- // Ignore non-apex additions
- char *owner = knot_dname_to_str_alloc(rr->owner);
- log_warning("DDNS, refusing to add NSEC3PARAM to non-apex "
- "node '%s'", owner);
- free(owner);
- return KNOT_EDENIED;
- }
- knot_rrset_t param = node_rrset(node, KNOT_RRTYPE_NSEC3PARAM);
- if (knot_rrset_empty(&param)) {
- return add_rr_to_changeset(rr, update);
- }
-
- char *owner = knot_dname_to_str_alloc(rr->owner);
- log_warning("DDNS, refusing to add second NSEC3PARAM to node '%s'", owner);
- free(owner);
-
- return KNOT_EOK;
-}
-
/*!
* \brief Processes SOA addition (ignore when non-apex), lower serials
* dropped before.
@@ -395,7 +416,7 @@ static int process_add_normal(const zone_node_t *node,
const knot_rrset_t *rr,
zone_update_t *update)
{
- if (adding_to_cname(rr->owner, node)) {
+ if (adding_to_cname(rr->owner, update, node)) {
// Adding RR to CNAME node, ignore.
return KNOT_EOK;
}
@@ -415,11 +436,10 @@ static int process_add(const knot_rrset_t *rr,
{
switch(rr->type) {
case KNOT_RRTYPE_CNAME:
- return process_add_cname(node, rr, update);
+ case KNOT_RRTYPE_DNAME:
+ return process_add_cname(node, rr, rr->type, update);
case KNOT_RRTYPE_SOA:
return process_add_soa(node, rr, update);
- case KNOT_RRTYPE_NSEC3PARAM:
- return process_add_nsec3param(node, rr, update);
default:
return process_add_normal(node, rr, update);
}
@@ -531,49 +551,32 @@ static int process_remove(const knot_rrset_t *rr,
}
}
-/*!< \brief Checks whether addition has not violated DNAME rules. */
-static bool sem_check(const knot_rrset_t *rr, const zone_node_t *zone_node,
- zone_update_t *update)
-{
- const zone_node_t *added_node = zone_contents_find_node(update->new_cont, rr->owner);
-
- // we do this sem check AFTER adding the RR, so the node must exist
- assert(added_node != NULL);
-
- for (const zone_node_t *parent = added_node->parent;
- parent != NULL; parent = parent->parent) {
- if (node_rrtype_exists(parent, KNOT_RRTYPE_DNAME)) {
- // Parent has DNAME RRSet, refuse update
- return false;
- }
- }
-
- if (rr->type != KNOT_RRTYPE_DNAME || zone_node == NULL) {
- return true;
- }
-
- // Check that we have not created node with DNAME children.
- if (zone_node->children > 0) {
- // Updated node has children and DNAME was added, refuse update
- return false;
- }
-
- return true;
-}
-
/*!< \brief Checks whether we can accept this RR. */
static int check_update(const knot_rrset_t *rrset, const knot_pkt_t *query,
- uint16_t *rcode)
+ const zone_contents_t *zone, uint16_t *rcode)
{
/* Accept both subdomain and dname match. */
const knot_dname_t *owner = rrset->owner;
const knot_dname_t *qname = knot_pkt_qname(query);
+ assert(knot_dname_is_equal(qname, zone->apex->owner));
const int in_bailiwick = knot_dname_in_bailiwick(owner, qname);
if (in_bailiwick < 0) {
*rcode = KNOT_RCODE_NOTZONE;
return KNOT_EOUTOFZONE;
}
+ if (rrset->type == KNOT_RRTYPE_NSEC3PARAM) {
+ if (!knot_dname_is_equal(rrset->owner, zone->apex->owner)) {
+ log_warning("DDNS, refusing to add NSEC3PARAM to non-apex node");
+ *rcode = KNOT_RCODE_REFUSED;
+ return KNOT_EDENIED;
+ } else if (node_rrtype_exists(zone->apex, rrset->type)) {
+ log_warning("DDNS, refusing to add second NSEC3PARAM to zone apex");
+ *rcode = KNOT_RCODE_REFUSED;
+ return KNOT_EDENIED;
+ }
+ }
+
if (rrset->rclass == knot_pkt_qclass(query)) {
if (knot_rrtype_is_metatype(rrset->type)) {
*rcode = KNOT_RCODE_FORMERR;
@@ -605,13 +608,7 @@ static int process_rr(const knot_rrset_t *rr, zone_update_t *update)
const zone_node_t *node = zone_update_get_node(update, rr->owner);
if (is_addition(rr)) {
- int ret = process_add(rr, node, update);
- if (ret == KNOT_EOK) {
- if (!sem_check(rr, node, update)) {
- return KNOT_EDENIED;
- }
- }
- return ret;
+ return process_add(rr, node, update);
} else if (is_removal(rr)) {
return process_remove(rr, node, update);
} else {
@@ -660,6 +657,27 @@ int ddns_process_prereqs(const knot_pkt_t *query, zone_update_t *update,
return ret;
}
+int ddns_precheck_update(const knot_pkt_t *query, zone_update_t *update,
+ uint16_t *rcode)
+{
+ if (query == NULL || rcode == NULL || update == NULL) {
+ return KNOT_EINVAL;
+ }
+
+ // Check all RRs in the authority section.
+ const knot_pktsection_t *authority = knot_pkt_section(query, KNOT_AUTHORITY);
+ const knot_rrset_t *authority_rr = (authority->count > 0) ? knot_pkt_rr(authority, 0) : NULL;
+ for (uint16_t i = 0; i < authority->count; ++i) {
+ int ret = check_update(&authority_rr[i], query, update->new_cont, rcode);
+ if (ret != KNOT_EOK) {
+ assert(*rcode != KNOT_RCODE_NOERROR);
+ return ret;
+ }
+ }
+
+ return KNOT_EOK;
+}
+
int ddns_process_update(const knot_pkt_t *query, zone_update_t *update,
uint16_t *rcode)
{
@@ -677,18 +695,11 @@ int ddns_process_update(const knot_pkt_t *query, zone_update_t *update,
const knot_rrset_t *authority_rr = (authority->count > 0) ? knot_pkt_rr(authority, 0) : NULL;
for (uint16_t i = 0; i < authority->count; ++i) {
const knot_rrset_t *rr = &authority_rr[i];
- // Check if RR is correct.
- int ret = check_update(rr, query, rcode);
- if (ret != KNOT_EOK) {
- assert(*rcode != KNOT_RCODE_NOERROR);
- return ret;
- }
-
if (skip_soa(rr, sn_old)) {
continue;
}
- ret = process_rr(rr, update);
+ int ret = process_rr(rr, update);
if (ret != KNOT_EOK) {
*rcode = ret_to_rcode(ret);
return ret;
diff --git a/src/knot/updates/ddns.h b/src/knot/updates/ddns.h
index d5661f5..40f1b37 100644
--- a/src/knot/updates/ddns.h
+++ b/src/knot/updates/ddns.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -32,6 +32,18 @@ int ddns_process_prereqs(const knot_pkt_t *query, zone_update_t *update,
uint16_t *rcode);
/*!
+ * \brief Performs a pre-check of the update'S sanity.
+ *
+ * \param query DNS message containing the update.
+ * \param update Zone to be checked.
+ * \param rcode Returned DNS RCODE.
+ *
+ * \return KNOT_E*
+ */
+int ddns_precheck_update(const knot_pkt_t *query, zone_update_t *update,
+ uint16_t *rcode);
+
+/*!
* \brief Processes DNS update and creates a changeset out of it. Zone is left
* intact.
*
diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c
index 73c9558..4b65a2c 100644
--- a/src/knot/updates/zone-update.c
+++ b/src/knot/updates/zone-update.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,8 +19,8 @@
#include <urcu.h>
#include "knot/catalog/interpret.h"
+#include "knot/common/dbus.h"
#include "knot/common/log.h"
-#include "knot/common/systemd.h"
#include "knot/dnssec/zone-events.h"
#include "knot/server/server.h"
#include "knot/updates/zone-update.h"
@@ -942,26 +942,10 @@ int zone_update_commit(conf_t *conf, zone_update_t *update)
val = conf_zone_get(conf, C_DNSSEC_VALIDATION, update->zone->name);
if (conf_bool(&val)) {
bool incr_valid = update->flags & UPDATE_INCREMENTAL;
- const char *msg_valid = incr_valid ? "incremental " : "";
-
- ret = knot_dnssec_validate_zone(update, conf, 0, incr_valid);
+ ret = knot_dnssec_validate_zone(update, conf, 0, incr_valid, true);
if (ret != KNOT_EOK) {
- log_zone_error(update->zone->name, "DNSSEC, %svalidation failed (%s)",
- msg_valid, knot_strerror(ret));
- char type_str[16];
- knot_dname_txt_storage_t name_str;
- if (knot_dname_to_str(name_str, update->validation_hint.node, sizeof(name_str)) != NULL &&
- knot_rrtype_to_string(update->validation_hint.rrtype, type_str, sizeof(type_str)) >= 0) {
- log_zone_error(update->zone->name, "DNSSEC, validation hint: %s %s",
- name_str, type_str);
- }
discard_adds_tree(update);
- if (conf->cache.srv_dbus_event & DBUS_EVENT_ZONE_INVALID) {
- systemd_emit_zone_invalid(update->zone->name);
- }
return ret;
- } else {
- log_zone_info(update->zone->name, "DNSSEC, %svalidation successful", msg_valid);
}
}
@@ -1023,8 +1007,8 @@ int zone_update_commit(conf_t *conf, zone_update_t *update)
}
if (conf->cache.srv_dbus_event & DBUS_EVENT_ZONE_UPDATED) {
- systemd_emit_zone_updated(update->zone->name,
- zone_contents_serial(update->zone->contents));
+ dbus_emit_zone_updated(update->zone->name,
+ zone_contents_serial(update->zone->contents));
}
memset(update, 0, sizeof(*update));
diff --git a/src/knot/updates/zone-update.h b/src/knot/updates/zone-update.h
index 0499d72..814d0ec 100644
--- a/src/knot/updates/zone-update.h
+++ b/src/knot/updates/zone-update.h
@@ -25,7 +25,9 @@
typedef struct {
knot_dname_storage_t next;
const knot_dname_t *node;
+ uint32_t remaining_secs;
uint16_t rrtype;
+ int warning;
} dnssec_validation_hint_t;
/*! \brief Structure for zone contents updating / querying. */
diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c
index bfe977b..5c3038a 100644
--- a/src/knot/zone/backup.c
+++ b/src/knot/zone/backup.c
@@ -85,6 +85,7 @@ int zone_backup_init(bool restore_mode, knot_backup_params_t filters, bool force
ctx->restore_mode = restore_mode;
ctx->backup_params = filters;
ctx->in_backup = 0; // Just to be sure.
+ ctx->arch_match = true;
ctx->forced = forced;
ctx->backup_format = BACKUP_VERSION;
ctx->backup_global = false;
@@ -105,6 +106,11 @@ int zone_backup_init(bool restore_mode, knot_backup_params_t filters, bool force
// For restore, check that there are all required data components in the backup.
if (restore_mode) {
+ if (!ctx->arch_match && filters & BACKUP_PARAM_DB) {
+ free(ctx);
+ return KNOT_ECPUCOMPAT;
+ }
+
// '+kaspdb' in backup provides data also for '+keysonly' restore.
knot_backup_params_t available = ctx->in_backup |
((bool)(ctx->in_backup & BACKUP_PARAM_KASPDB) * BACKUP_PARAM_KEYSONLY);
@@ -363,13 +369,13 @@ static int backup_keystore(conf_t *conf, zone_t *zone, zone_backup_ctx_t *ctx)
conf_val_t policy_id = get_zone_policy(conf, zone->name);
unsigned backend_type = 0;
- int ret = zone_init_keystore(conf, &policy_id, &from, &backend_type, NULL);
+ int ret = zone_init_keystore(conf, &policy_id, NULL, &from, &backend_type, NULL);
if (ret != KNOT_EOK) {
LOG_FAIL("keystore init");
return ret;
}
if (backend_type == KEYSTORE_BACKEND_PKCS11) {
- log_zone_notice(zone->name, "private keys from PKCS #11 aren't subject of backup/restore");
+ log_zone_notice(zone->name, "private keys from PKCS #11 are not subject of backup/restore");
(void)dnssec_keystore_deinit(from);
return KNOT_EOK;
}
diff --git a/src/knot/zone/backup.h b/src/knot/zone/backup.h
index 9f2660d..ad0c954 100644
--- a/src/knot/zone/backup.h
+++ b/src/knot/zone/backup.h
@@ -57,6 +57,11 @@ typedef enum {
BACKUP_PARAM_TIMERS | BACKUP_PARAM_KASPDB | \
BACKUP_PARAM_CATALOG)
+/*! \bref Backup components using LMDB databases. */
+#define BACKUP_PARAM_DB (BACKUP_PARAM_JOURNAL | BACKUP_PARAM_TIMERS | \
+ BACKUP_PARAM_KASPDB | BACKUP_PARAM_KEYSONLY | \
+ BACKUP_PARAM_CATALOG)
+
typedef struct {
const char *name;
knot_backup_params_t param;
@@ -70,6 +75,7 @@ typedef struct zone_backup_ctx {
bool forced; // if true, the force flag has been set
knot_backup_params_t backup_params; // bit-mapped list of backup components
knot_backup_params_t in_backup; // bit-mapped list of components available in backup
+ bool arch_match; // match of the system and the backup architectures
bool backup_global; // perform global backup for all zones
ssize_t readers; // when decremented to 0, all zones done, free this context
pthread_mutex_t readers_mutex; // mutex covering readers counter
diff --git a/src/knot/zone/backup_dir.c b/src/knot/zone/backup_dir.c
index 7bf9fd5..b382258 100644
--- a/src/knot/zone/backup_dir.c
+++ b/src/knot/zone/backup_dir.c
@@ -28,11 +28,21 @@
#include "contrib/getline.h"
#include "knot/common/log.h"
+#ifdef ENDIANITY_LITTLE
+ #define ENDIAN_STR "LE"
+#else
+ #define ENDIAN_STR "BE"
+#endif
+#define _STR(x) #x
+#define STR(x) _STR(x)
+#define KNOT_ARCH STR(__LONG_WIDTH__) ENDIAN_STR
+
#define LABEL_FILE "knot_backup.label"
#define LOCK_FILE "lock.knot_backup"
#define LABEL_FILE_HEAD "label: Knot DNS Backup\n"
#define LABEL_FILE_FORMAT "backup_format: %d\n"
+#define LABEL_FILE_ARCH "architecture: "
#define LABEL_FILE_PARAMS "parameters: "
#define LABEL_FILE_BACKUPDIR "backupdir "
#define LABEL_FILE_TIME_FORMAT "%Y-%m-%d %H:%M:%S %Z"
@@ -49,6 +59,7 @@
static const char *label_file_name = LABEL_FILE;
static const char *lock_file_name = LOCK_FILE;
static const char *label_file_head = LABEL_FILE_HEAD;
+static const char *label_file_arch = KNOT_ARCH;
static void get_full_path(zone_backup_ctx_t *ctx, const char *filename,
char *full_path, size_t full_path_size)
@@ -125,6 +136,9 @@ static int make_label_file(zone_backup_ctx_t *ctx)
localtime_r(&now, &tm);
strftime(finished_time, sizeof(finished_time), LABEL_FILE_TIME_FORMAT, &tm);
+ int lmdb_major, lmdb_minor, lmdb_patch;
+ (void)mdb_version(&lmdb_major, &lmdb_minor, &lmdb_patch);
+
// Print the label contents.
char params_str[PARAMS_MAX_LENGTH];
print_params(params_str, ctx->backup_params);
@@ -135,10 +149,14 @@ static int make_label_file(zone_backup_ctx_t *ctx)
"started_time: %s\n"
"finished_time: %s\n"
"knot_version: %s\n"
+ "lmdb_version: %d.%d.%d\n"
+ LABEL_FILE_ARCH "%s\n"
LABEL_FILE_PARAMS "%s+" LABEL_FILE_BACKUPDIR "%s\n"
"zone_count: %d\n",
label_file_head,
- ctx->backup_format, ident, started_time, finished_time, PACKAGE_VERSION,
+ ctx->backup_format, ident, started_time, finished_time,
+ PACKAGE_VERSION,
+ lmdb_major, lmdb_minor, lmdb_patch, label_file_arch,
params_str, ctx->backup_dir,
ctx->zone_count);
@@ -199,6 +217,7 @@ static int get_backup_format(zone_backup_ctx_t *ctx)
unsigned int remain = 3; // Bit-mapped "punch card" for lines to get data from.
while (remain > 0 && knot_getline(&line, &line_size, file) != -1) {
int value;
+ char str[8];
if (sscanf(line, LABEL_FILE_FORMAT, &value) != 0) {
if (value >= BACKUP_FORMAT_TERM) {
ret = KNOT_ENOTSUP;
@@ -212,6 +231,11 @@ static int get_backup_format(zone_backup_ctx_t *ctx)
continue;
}
}
+ if (sscanf(line, LABEL_FILE_ARCH "%7s\n", str) != 0 &&
+ strcmp(str, label_file_arch) != 0) {
+ ctx->arch_match = false;
+ continue;
+ }
if (strncmp(line, LABEL_FILE_PARAMS, sizeof(LABEL_FILE_PARAMS) - 1) == 0) {
ctx->in_backup = parse_params(line + sizeof(LABEL_FILE_PARAMS) - 1);
remain &= ~2;
@@ -240,6 +264,22 @@ int backupdir_init(zone_backup_ctx_t *ctx)
return KNOT_ENOTDIR;
}
} else {
+ if (ctx->forced) {
+ if (stat(ctx->backup_dir, &sb) == 0) {
+ int ret2 = remove_path(ctx->backup_dir, S_ISDIR(sb.st_mode));
+ if (ret2 != KNOT_EOK) {
+ return ret2;
+ }
+ } else if (errno != ENOENT) {
+ return knot_map_errno();
+ } else if (lstat(ctx->backup_dir, &sb) == 0 && S_ISLNK(sb.st_mode)) {
+ // Stale symlink.
+ if (unlink(ctx->backup_dir) != 0) {
+ return knot_map_errno();
+ }
+ } // Omitting lstat() failure check, make_dir() will do it.
+ }
+
ret = make_dir(ctx->backup_dir, S_IRWXU | S_IRWXG, true);
if (ret != KNOT_EOK) {
return ret;
diff --git a/src/knot/zone/contents.c b/src/knot/zone/contents.c
index cba13e8..262136b 100644
--- a/src/knot/zone/contents.c
+++ b/src/knot/zone/contents.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -106,6 +106,12 @@ static zone_node_t *get_nsec3_node(const zone_contents_t *zone,
return zone_tree_get(zone->nsec3_nodes, name);
}
+// UBSAN type punning workaround
+static zone_node_t *node_new_for_contents_wrap(const uint8_t *owner, void *contents)
+{
+ return node_new_for_contents(owner, contents);
+}
+
static int insert_rr(zone_contents_t *z, const knot_rrset_t *rr, zone_node_t **n)
{
if (knot_rrset_empty(rr)) {
@@ -114,7 +120,7 @@ static int insert_rr(zone_contents_t *z, const knot_rrset_t *rr, zone_node_t **n
if (*n == NULL) {
int ret = zone_tree_add_node(zone_contents_tree_for_rr(z, rr), z->apex, rr->owner,
- (zone_tree_new_node_cb_t)node_new_for_contents, z, n);
+ node_new_for_contents_wrap, z, n);
if (ret != KNOT_EOK) {
return ret;
}
diff --git a/src/knot/zone/contents.h b/src/knot/zone/contents.h
index 8f1f160..f344c97 100644
--- a/src/knot/zone/contents.h
+++ b/src/knot/zone/contents.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -16,6 +16,7 @@
#pragma once
+#include "contrib/time.h"
#include "libdnssec/nsec.h"
#include "libknot/rrtype/nsec3param.h"
#include "knot/zone/node.h"
@@ -38,6 +39,7 @@ typedef struct zone_contents {
size_t size;
uint32_t max_ttl;
bool dnssec;
+ knot_time_t dnssec_expire;
} zone_contents_t;
/*!
diff --git a/src/knot/zone/digest.c b/src/knot/zone/digest.c
index b961f15..a4d50ce 100644
--- a/src/knot/zone/digest.c
+++ b/src/knot/zone/digest.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -60,7 +60,7 @@ static int digest_rrset(knot_rrset_t *rrset, const zone_node_t *node, void *vctx
}
}
- size_t buf_req = knot_rrset_size(rrset);
+ size_t buf_req = knot_rrset_size_estimate(rrset);
if (buf_req > ctx->buf_size) {
uint8_t *newbuf = realloc(ctx->buf, buf_req);
if (newbuf == NULL) {
@@ -71,7 +71,7 @@ static int digest_rrset(knot_rrset_t *rrset, const zone_node_t *node, void *vctx
}
int ret = knot_rrset_to_wire_extra(rrset, ctx->buf, ctx->buf_size, 0,
- NULL, KNOT_PF_ORIGTTL | KNOT_PF_BUFENOUGH);
+ NULL, KNOT_PF_ORIGTTL);
// cleanup apex RRSIGs mess
if (node == ctx->apex && rrset->type == KNOT_RRTYPE_RRSIG) {
diff --git a/src/knot/zone/semantic-check.c b/src/knot/zone/semantic-check.c
index 862d7a4..3d085d8 100644
--- a/src/knot/zone/semantic-check.c
+++ b/src/knot/zone/semantic-check.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -29,6 +29,8 @@
static const char *error_messages[SEM_ERR_UNKNOWN + 1] = {
[SEM_ERR_SOA_NONE] =
"missing SOA at the zone apex",
+ [SEM_ERR_SOA_MULTIPLE] =
+ "multiple SOA records",
[SEM_ERR_CNAME_EXTRA_RECORDS] =
"another record exists beside CNAME",
@@ -58,6 +60,8 @@ static const char *error_messages[SEM_ERR_UNKNOWN + 1] = {
"inconsistent NSEC(3) chain",
[SEM_ERR_NSEC3_INSECURE_DELEGATION_OPT] =
"wrong NSEC3 opt-out",
+ [SEM_ERR_EXTRA_NSEC] =
+ "superfluous NSEC(3)",
[SEM_ERR_NSEC3PARAM_RDATA_FLAGS] =
"invalid flags in NSEC3PARAM",
@@ -504,6 +508,8 @@ static sem_error_t err_dnssec2sem(int ret, uint16_t rrtype, char *info, size_t l
return SEM_ERR_NSEC3_INSECURE_DELEGATION_OPT;
case KNOT_DNSSEC_EKEYTAG_LIMIT:
return SEM_ERR_DNSKEY_KEYTAG_LIMIT;
+ case KNOT_DNSSEC_EXTRA_NSEC:
+ return SEM_ERR_EXTRA_NSEC;
default:
return SEM_ERR_UNKNOWN;
}
@@ -512,7 +518,7 @@ static sem_error_t err_dnssec2sem(int ret, uint16_t rrtype, char *info, size_t l
static int verify_dnssec(zone_contents_t *zone, sem_handler_t *handler, time_t time)
{
zone_update_t fake_up = { .new_cont = zone, };
- int ret = knot_dnssec_validate_zone(&fake_up, NULL, time, false);
+ int ret = knot_dnssec_validate_zone(&fake_up, NULL, time, false, false);
if (fake_up.validation_hint.node != NULL) { // validation found an issue
char info[64] = "";
sem_error_t err = err_dnssec2sem(ret, fake_up.validation_hint.rrtype, info, sizeof(info));
diff --git a/src/knot/zone/semantic-check.h b/src/knot/zone/semantic-check.h
index 6a8b3c3..a0b1d21 100644
--- a/src/knot/zone/semantic-check.h
+++ b/src/knot/zone/semantic-check.h
@@ -35,6 +35,7 @@ typedef enum {
typedef enum {
// Mandatory checks.
SEM_ERR_SOA_NONE,
+ SEM_ERR_SOA_MULTIPLE,
SEM_ERR_CNAME_EXTRA_RECORDS,
SEM_ERR_CNAME_MULTIPLE,
@@ -74,6 +75,8 @@ typedef enum {
SEM_ERR_CDNSKEY_NO_CDS,
SEM_ERR_CDNSKEY_INVALID_DELETE,
+ SEM_ERR_EXTRA_NSEC,
+
// General error!
SEM_ERR_UNKNOWN
} sem_error_t;
diff --git a/src/knot/zone/zone-load.c b/src/knot/zone/zone-load.c
index 11cba83..9cd7ee2 100644
--- a/src/knot/zone/zone-load.c
+++ b/src/knot/zone/zone-load.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -33,9 +33,12 @@ int zone_load_contents(conf_t *conf, const knot_dname_t *zone_name,
}
char *zonefile = conf_zonefile(conf, zone_name);
+ conf_val_t val = conf_zone_get(conf, C_DEFAULT_TTL, zone_name);
+ uint32_t dflt_ttl = conf_int(&val);
zloader_t zl;
- int ret = zonefile_open(&zl, zonefile, zone_name, semcheck_mode, time(NULL));
+ int ret = zonefile_open(&zl, zonefile, zone_name, dflt_ttl,
+ semcheck_mode, time(NULL));
free(zonefile);
if (ret != KNOT_EOK) {
return ret;
diff --git a/src/knot/zone/zone-load.h b/src/knot/zone/zone-load.h
index c438903..0833e14 100644
--- a/src/knot/zone/zone-load.h
+++ b/src/knot/zone/zone-load.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@
#include "knot/zone/semantic-check.h"
#include "knot/zone/zone.h"
+#define DEFAULT_TTL 3600
+
/*!
* \brief Load zone contents according to the configuration.
*
diff --git a/src/knot/zone/zone-tree.c b/src/knot/zone/zone-tree.c
index 87dde18..c3f79e7 100644
--- a/src/knot/zone/zone-tree.c
+++ b/src/knot/zone/zone-tree.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -241,7 +241,7 @@ int zone_tree_add_node(zone_tree_t *tree, zone_node_t *apex, const knot_dname_t
return ret;
}
zone_node_t *parent = NULL;
- ret = zone_tree_add_node(tree, apex, knot_wire_next_label(dname, NULL), new_cb, new_cb_ctx, &parent);
+ ret = zone_tree_add_node(tree, apex, knot_dname_next_label(dname), new_cb, new_cb_ctx, &parent);
if (ret != KNOT_EOK) {
return ret;
}
diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c
index 7c84202..06a8a90 100644
--- a/src/knot/zone/zone.c
+++ b/src/knot/zone/zone.c
@@ -180,6 +180,7 @@ zone_t* zone_new(const knot_dname_t *name)
zone->ddns_queue_size = 0;
init_list(&zone->ddns_queue);
+ pthread_mutex_init(&zone->cu_lock, NULL);
knot_sem_init(&zone->cow_lock, 1);
// Preferred master lock
@@ -222,6 +223,7 @@ void zone_free(zone_t **zone_ptr)
free_ddns_queue(zone);
pthread_mutex_destroy(&zone->ddns_lock);
+ pthread_mutex_destroy(&zone->cu_lock);
knot_sem_destroy(&zone->cow_lock);
/* Control update. */
@@ -273,6 +275,12 @@ void zone_reset(conf_t *conf, zone_t *zone)
} \
}
+// UBSAN type punning workaround
+static bool dname_cmp_sweep_wrap(const uint8_t *zone, void *data)
+{
+ return knot_dname_cmp((const knot_dname_t *)zone, (const knot_dname_t *)data) != 0;
+}
+
int selective_zone_purge(conf_t *conf, zone_t *zone, purge_flag_t params)
{
if (conf == NULL || zone == NULL) {
@@ -291,7 +299,7 @@ int selective_zone_purge(conf_t *conf, zone_t *zone, purge_flag_t params)
zone_timers_sanitize(conf, zone);
zone->zonefile.bootstrap_cnt = 0;
ret = zone_timers_sweep(&zone->server->timerdb,
- (sweep_cb)knot_dname_cmp, zone->name);
+ dname_cmp_sweep_wrap, zone->name);
RETURN_IF_FAILED("timers", KNOT_ENOENT);
}
diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h
index 0527c85..a6046de 100644
--- a/src/knot/zone/zone.h
+++ b/src/knot/zone/zone.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -16,6 +16,7 @@
#pragma once
+#include "contrib/atomic.h"
#include "contrib/semaphore.h"
#include "knot/catalog/catalog_update.h"
#include "knot/conf/conf.h"
@@ -114,6 +115,7 @@ typedef struct zone
/*! \brief Control update context. */
struct zone_update *control_update;
+ pthread_mutex_t cu_lock;
/*! \brief Ensue one COW transaction on zone's trees at a time. */
knot_sem_t cow_lock;
@@ -122,7 +124,7 @@ typedef struct zone
struct server *server;
/*! \brief Zone backup context (NULL unless backup pending). */
- struct zone_backup_ctx *backup_ctx;
+ knot_atomic_ptr_t backup_ctx;
/*! \brief Catalog-generate feature. */
knot_dname_t *catalog_gen;
diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c
index d8acd0b..52d9b0f 100644
--- a/src/knot/zone/zonedb-load.c
+++ b/src/knot/zone/zonedb-load.c
@@ -510,7 +510,7 @@ static knot_zonedb_t *create_zonedb(conf_t *conf, server_t *server, reload_t mod
if (forw == NULL) {
knot_dname_txt_storage_t forw_str;
(void)knot_dname_to_str(forw_str, forw_name, sizeof(forw_str));
- log_zone_warning(z->name, "zone to reverse %s doesn't exist",
+ log_zone_warning(z->name, "zone to reverse %s does not exist",
forw_str);
} else {
z->reverse_from = forw;
@@ -587,6 +587,12 @@ catalog_only:
}
}
+// UBSAN type punning workaround
+static void zone_contents_deep_free_wrap(void *contents)
+{
+ zone_contents_deep_free((zone_contents_t *)contents);
+}
+
void zonedb_reload(conf_t *conf, server_t *server, reload_t mode)
{
if (conf == NULL || server == NULL) {
@@ -625,7 +631,7 @@ void zonedb_reload(conf_t *conf, server_t *server, reload_t mode)
/* Wait for readers to finish reading old zone database. */
synchronize_rcu();
- ptrlist_free_custom(&contents_tofree, NULL, (ptrlist_free_cb)zone_contents_deep_free);
+ ptrlist_free_custom(&contents_tofree, NULL, zone_contents_deep_free_wrap);
/* Remove old zone DB. */
remove_old_zonedb(conf, db_old, server, mode);
diff --git a/src/knot/zone/zonedb.c b/src/knot/zone/zonedb.c
index 98cade5..b0388c7 100644
--- a/src/knot/zone/zonedb.c
+++ b/src/knot/zone/zonedb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -153,7 +153,7 @@ zone_t *knot_zonedb_find_suffix(knot_zonedb_t *db, const knot_dname_t *zone_name
return NULL;
}
- zone_name = knot_wire_next_label(zone_name, NULL);
+ zone_name = knot_dname_next_label(zone_name);
}
}
diff --git a/src/knot/zone/zonefile.c b/src/knot/zone/zonefile.c
index d104820..9d0bf97 100644
--- a/src/knot/zone/zonefile.c
+++ b/src/knot/zone/zonefile.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -81,12 +81,6 @@ int zcreator_step(zcreator_t *zc, const knot_rrset_t *rr)
return KNOT_EINVAL;
}
- if (rr->type == KNOT_RRTYPE_SOA &&
- node_rrtype_exists(zc->z->apex, KNOT_RRTYPE_SOA)) {
- // Ignore extra SOA
- return KNOT_EOK;
- }
-
zone_node_t *node = NULL;
int ret = zone_contents_add_rr(zc->z, rr, &node);
if (ret != KNOT_EOK) {
@@ -136,8 +130,8 @@ static void process_data(zs_scanner_t *scanner)
knot_rrset_clear(&rr, NULL);
}
-int zonefile_open(zloader_t *loader, const char *source,
- const knot_dname_t *origin, semcheck_optional_t semantic_checks, time_t time)
+int zonefile_open(zloader_t *loader, const char *source, const knot_dname_t *origin,
+ uint32_t dflt_ttl, semcheck_optional_t semantic_checks, time_t time)
{
if (!loader) {
return KNOT_EINVAL;
@@ -171,7 +165,7 @@ int zonefile_open(zloader_t *loader, const char *source,
return KNOT_ENOMEM;
}
- if (zs_init(&loader->scanner, origin_str, KNOT_CLASS_IN, 3600) != 0 ||
+ if (zs_init(&loader->scanner, origin_str, KNOT_CLASS_IN, dflt_ttl) != 0 ||
zs_set_input_file(&loader->scanner, source) != 0 ||
zs_set_processing(&loader->scanner, process_data, process_error, zc) != 0) {
zs_deinit(&loader->scanner);
@@ -219,10 +213,11 @@ zone_contents_t *zonefile_load(zloader_t *loader)
goto fail;
}
- if (!node_rrtype_exists(loader->creator->z->apex, KNOT_RRTYPE_SOA)) {
+ knot_rdataset_t *soa = node_rdataset(zc->z->apex, KNOT_RRTYPE_SOA);
+ if (soa == NULL || soa->count != 1) {
+ sem_error_t code = (soa == NULL) ? SEM_ERR_SOA_NONE : SEM_ERR_SOA_MULTIPLE;
loader->err_handler->error = true;
- loader->err_handler->cb(loader->err_handler, zc->z, NULL,
- SEM_ERR_SOA_NONE, NULL);
+ loader->err_handler->cb(loader->err_handler, zc->z, NULL, code, NULL);
goto fail;
}
diff --git a/src/knot/zone/zonefile.h b/src/knot/zone/zonefile.h
index c8dbfad..c86f59e 100644
--- a/src/knot/zone/zonefile.h
+++ b/src/knot/zone/zonefile.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -22,6 +22,7 @@
#include "knot/zone/zone.h"
#include "knot/zone/semantic-check.h"
#include "libzscanner/scanner.h"
+
/*!
* \brief Zone creator structure.
*/
@@ -52,14 +53,15 @@ void err_handler_logger(sem_handler_t *handler, const zone_contents_t *zone,
* \param loader Output zone loader.
* \param source Source file name.
* \param origin Zone origin.
+ * \param dflt_ttl Default TTL.
* \param semantic_checks Perform semantic checks.
* \param time Time for semantic check.
*
* \retval Initialized loader on success.
* \retval NULL on error.
*/
-int zonefile_open(zloader_t *loader, const char *source,
- const knot_dname_t *origin, semcheck_optional_t semantic_checks, time_t time);
+int zonefile_open(zloader_t *loader, const char *source, const knot_dname_t *origin,
+ uint32_t dflt_ttl, semcheck_optional_t semantic_checks, time_t time);
/*!
* \brief Loads zone from a zone file.
diff --git a/src/libdnssec/Makefile.inc b/src/libdnssec/Makefile.inc
index 981d841..62050b3 100644
--- a/src/libdnssec/Makefile.inc
+++ b/src/libdnssec/Makefile.inc
@@ -8,6 +8,9 @@ if ENABLE_PKCS11
libdnssec_la_LIBADD += $(pthread_LIBS)
endif
+EXTRA_DIST += \
+ libdnssec/sample_keys.h
+
include_libdnssecdir = $(includedir)/libdnssec
include_libdnssec_HEADERS = \
libdnssec/binary.h \
diff --git a/src/libdnssec/key/algorithm.c b/src/libdnssec/key/algorithm.c
index a9bc3ee..d242442 100644
--- a/src/libdnssec/key/algorithm.c
+++ b/src/libdnssec/key/algorithm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -93,11 +93,9 @@ gnutls_pk_algorithm_t algorithm_to_gnutls(dnssec_key_algorithm_t dnssec)
return GNUTLS_PK_RSA;
case DNSSEC_KEY_ALGORITHM_ECDSA_P256_SHA256:
case DNSSEC_KEY_ALGORITHM_ECDSA_P384_SHA384:
- return GNUTLS_PK_EC;
-#ifdef HAVE_ED25519
+ return GNUTLS_PK_ECDSA;
case DNSSEC_KEY_ALGORITHM_ED25519:
return GNUTLS_PK_EDDSA_ED25519;
-#endif
#ifdef HAVE_ED448
case DNSSEC_KEY_ALGORITHM_ED448:
return GNUTLS_PK_EDDSA_ED448;
@@ -119,11 +117,7 @@ bool dnssec_algorithm_reproducible(dnssec_key_algorithm_t algorithm, bool enable
return true; // those are always reproducible
case DNSSEC_KEY_ALGORITHM_ECDSA_P256_SHA256:
case DNSSEC_KEY_ALGORITHM_ECDSA_P384_SHA384:
-#ifdef HAVE_GNUTLS_REPRODUCIBLE
- return enabled; // Reproducible only if GnuTLS supports && enabled
-#else
- return false;
-#endif
+ return enabled; // reproducible only if GnuTLS supports && enabled
default:
return false;
}
diff --git a/src/libdnssec/key/convert.c b/src/libdnssec/key/convert.c
index 56168f7..d06c25e 100644
--- a/src/libdnssec/key/convert.c
+++ b/src/libdnssec/key/convert.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -104,20 +104,16 @@ static size_t ecdsa_curve_point_size(gnutls_ecc_curve_t curve)
}
}
-#if defined(HAVE_ED25519) || defined(HAVE_ED448)
static size_t eddsa_curve_point_size(gnutls_ecc_curve_t curve)
{
switch (curve) {
-#ifdef HAVE_ED25519
case GNUTLS_ECC_CURVE_ED25519: return 32;
-#endif
#ifdef HAVE_ED448
case GNUTLS_ECC_CURVE_ED448: return 57;
#endif
default: return 0;
}
}
-#endif
/*!
* Convert ECDSA public key to DNSSEC format.
@@ -157,7 +153,6 @@ static int ecdsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata)
/*!
* Convert EDDSA public key to DNSSEC format.
*/
-#if defined(HAVE_ED25519) || defined(HAVE_ED448)
static int eddsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata)
{
assert(key);
@@ -187,7 +182,6 @@ static int eddsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata)
return DNSSEC_EOK;
}
-#endif
/* -- crypto to DNSSEC ------------------------------------------------------*/
@@ -248,20 +242,16 @@ static gnutls_ecc_curve_t ecdsa_curve_from_rdata_size(size_t rdata_size)
/*!
* Get EDDSA curve based on DNSKEY RDATA size.
*/
-#if defined(HAVE_ED25519) || defined(HAVE_ED448)
static gnutls_ecc_curve_t eddsa_curve_from_rdata_size(size_t rdata_size)
{
switch (rdata_size) {
-#ifdef HAVE_ED25519
case 32: return GNUTLS_ECC_CURVE_ED25519;
-#endif
#ifdef HAVE_ED448
case 57: return GNUTLS_ECC_CURVE_ED448;
#endif
default: return GNUTLS_ECC_CURVE_INVALID;
}
}
-#endif
/*!
* Convert ECDSA key in DNSSEC format to crypto key.
@@ -296,7 +286,6 @@ static int ecdsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t k
/*!
* Convert EDDSA key in DNSSEC format to crypto key.
*/
-#if defined(HAVE_ED25519) || defined(HAVE_ED448)
static int eddsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t key)
{
assert(rdata);
@@ -320,7 +309,6 @@ static int eddsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t k
return DNSSEC_EOK;
}
-#endif
/* -- internal API --------------------------------------------------------- */
@@ -339,10 +327,8 @@ int convert_pubkey_to_dnskey(gnutls_pubkey_t key, dnssec_binary_t *rdata)
switch ((gnutls_pk_algorithm_t)algorithm) {
case GNUTLS_PK_RSA: return rsa_pubkey_to_rdata(key, rdata);
- case GNUTLS_PK_EC: return ecdsa_pubkey_to_rdata(key, rdata);
-#ifdef HAVE_ED25519
+ case GNUTLS_PK_ECDSA: return ecdsa_pubkey_to_rdata(key, rdata);
case GNUTLS_PK_EDDSA_ED25519: return eddsa_pubkey_to_rdata(key, rdata);
-#endif
#ifdef HAVE_ED448
case GNUTLS_PK_EDDSA_ED448: return eddsa_pubkey_to_rdata(key, rdata);
#endif
@@ -363,10 +349,8 @@ int convert_dnskey_to_pubkey(uint8_t algorithm, const dnssec_binary_t *rdata,
switch(gnutls_alg) {
case GNUTLS_PK_RSA: return rsa_rdata_to_pubkey(rdata, key);
- case GNUTLS_PK_EC: return ecdsa_rdata_to_pubkey(rdata, key);
-#ifdef HAVE_ED25519
+ case GNUTLS_PK_ECDSA: return ecdsa_rdata_to_pubkey(rdata, key);
case GNUTLS_PK_EDDSA_ED25519: return eddsa_rdata_to_pubkey(rdata, key);
-#endif
#ifdef HAVE_ED448
case GNUTLS_PK_EDDSA_ED448: return eddsa_rdata_to_pubkey(rdata, key);
#endif
diff --git a/src/libdnssec/pem.c b/src/libdnssec/pem.c
index fa463f6..41fd855 100644
--- a/src/libdnssec/pem.c
+++ b/src/libdnssec/pem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -130,29 +130,10 @@ int dnssec_pem_from_x509(gnutls_x509_privkey_t key, dnssec_binary_t *pem)
static int privkey_export_x509(gnutls_privkey_t key, gnutls_x509_privkey_t *_key)
{
-#ifdef HAVE_EXPORT_X509
if (gnutls_privkey_export_x509(key, _key) != GNUTLS_E_SUCCESS) {
return DNSSEC_KEY_EXPORT_ERROR;
}
-#else // Needed for GnuTLS < 3.4.0 (CentOS 7)
- struct privkey { // Extracted needed items only!
- gnutls_privkey_type_t type;
- gnutls_pk_algorithm_t pk_algorithm;
- gnutls_x509_privkey_t x509;
- };
- struct privkey *pkey = (struct privkey *)key;
- assert(pkey->type == GNUTLS_PRIVKEY_X509);
-
- if (gnutls_x509_privkey_init(_key) != GNUTLS_E_SUCCESS) {
- return DNSSEC_KEY_EXPORT_ERROR;
- }
-
- if (gnutls_x509_privkey_cpy(*_key, pkey->x509) != GNUTLS_E_SUCCESS) {
- gnutls_x509_privkey_deinit(*_key);
- return DNSSEC_KEY_EXPORT_ERROR;
- }
-#endif
return DNSSEC_EOK;
}
diff --git a/tests/libdnssec/sample_keys.h b/src/libdnssec/sample_keys.h
index cd9f18f..5b6155e 100644
--- a/tests/libdnssec/sample_keys.h
+++ b/src/libdnssec/sample_keys.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
#pragma once
-#include <binary.h>
+#include "libdnssec/binary.h"
typedef struct key_parameters {
// DNSSEC fields
diff --git a/src/libdnssec/sign/sign.c b/src/libdnssec/sign/sign.c
index 3a7bcba..727f650 100644
--- a/src/libdnssec/sign/sign.c
+++ b/src/libdnssec/sign/sign.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -202,34 +202,6 @@ static const algorithm_functions_t *get_functions(const dnssec_key_t *key)
}
}
-#ifndef HAVE_SIGN_DATA2
-/*!
- * Get digest algorithm used with a given key.
- */
-static gnutls_digest_algorithm_t get_digest_algorithm(const dnssec_key_t *key)
-{
- uint8_t algorithm = dnssec_key_get_algorithm(key);
-
- switch ((dnssec_key_algorithm_t)algorithm) {
- case DNSSEC_KEY_ALGORITHM_RSA_SHA1:
- case DNSSEC_KEY_ALGORITHM_RSA_SHA1_NSEC3:
- return GNUTLS_DIG_SHA1;
- case DNSSEC_KEY_ALGORITHM_RSA_SHA256:
- case DNSSEC_KEY_ALGORITHM_ECDSA_P256_SHA256:
- return GNUTLS_DIG_SHA256;
- case DNSSEC_KEY_ALGORITHM_RSA_SHA512:
- return GNUTLS_DIG_SHA512;
- case DNSSEC_KEY_ALGORITHM_ECDSA_P384_SHA384:
- return GNUTLS_DIG_SHA384;
- case DNSSEC_KEY_ALGORITHM_ED25519:
- case DNSSEC_KEY_ALGORITHM_ED448:
- return GNUTLS_DIG_SHA512;
- default:
- return GNUTLS_DIG_UNKNOWN;
- }
-}
-#endif
-
static gnutls_sign_algorithm_t algo_dnssec2gnutls(dnssec_key_algorithm_t algorithm)
{
switch (algorithm) {
@@ -244,10 +216,8 @@ static gnutls_sign_algorithm_t algo_dnssec2gnutls(dnssec_key_algorithm_t algorit
return GNUTLS_SIGN_RSA_SHA512;
case DNSSEC_KEY_ALGORITHM_ECDSA_P384_SHA384:
return GNUTLS_SIGN_ECDSA_SHA384;
-#ifdef HAVE_ED25519
case DNSSEC_KEY_ALGORITHM_ED25519:
return GNUTLS_SIGN_EDDSA_ED25519;
-#endif
#ifdef HAVE_ED448
case DNSSEC_KEY_ALGORITHM_ED448:
return GNUTLS_SIGN_EDDSA_ED448;
@@ -356,24 +326,15 @@ int dnssec_sign_write(dnssec_sign_ctx_t *ctx, dnssec_sign_flags_t flags, dnssec_
};
unsigned gnutls_flags = 0;
-#ifdef HAVE_GNUTLS_REPRODUCIBLE
if (flags & DNSSEC_SIGN_REPRODUCIBLE) {
gnutls_flags |= GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE;
}
-#endif
assert(ctx->key->private_key);
_cleanup_datum_ gnutls_datum_t raw = { 0 };
-#ifdef HAVE_SIGN_DATA2
int result = gnutls_privkey_sign_data2(ctx->key->private_key,
ctx->sign_algorithm,
gnutls_flags, &data, &raw);
-#else
- gnutls_digest_algorithm_t digest_algorithm = get_digest_algorithm(ctx->key);
- int result = gnutls_privkey_sign_data(ctx->key->private_key,
- digest_algorithm,
- gnutls_flags, &data, &raw);
-#endif
if (result < 0) {
return DNSSEC_SIGN_ERROR;
}
diff --git a/src/libdnssec/version.h b/src/libdnssec/version.h
index c8edcd0..cd5bad2 100644
--- a/src/libdnssec/version.h
+++ b/src/libdnssec/version.h
@@ -17,8 +17,8 @@
#pragma once
#define DNSSEC_VERSION_MAJOR 3
-#define DNSSEC_VERSION_MINOR 3
-#define DNSSEC_VERSION_PATCH 0x07
+#define DNSSEC_VERSION_MINOR 4
+#define DNSSEC_VERSION_PATCH 0x00
#define DNSSEC_VERSION_HEX ((DNSSEC_VERSION_MAJOR << 16) | \
(DNSSEC_VERSION_MINOR << 8) | \
diff --git a/src/libknot/Makefile.inc b/src/libknot/Makefile.inc
index f62d836..d09ff55 100755
--- a/src/libknot/Makefile.inc
+++ b/src/libknot/Makefile.inc
@@ -37,6 +37,8 @@ nobase_include_libknot_HEADERS = \
libknot/packet/wire.h \
libknot/probe/data.h \
libknot/probe/probe.h \
+ libknot/quic/tls.h \
+ libknot/quic/tls_common.h \
libknot/rdata.h \
libknot/rdataset.h \
libknot/rrset-dump.h \
@@ -78,6 +80,8 @@ libknot_la_SOURCES = \
libknot/packet/rrset-wire.c \
libknot/probe/data.c \
libknot/probe/probe.c \
+ libknot/quic/tls.c \
+ libknot/quic/tls_common.c \
libknot/rdataset.c \
libknot/rrset-dump.c \
libknot/rrset.c \
diff --git a/src/libknot/attribute.h b/src/libknot/attribute.h
index 525aef3..ce464fc 100644
--- a/src/libknot/attribute.h
+++ b/src/libknot/attribute.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -35,17 +35,19 @@
/*! \brief GNU C function attributes. */
#if __GNUC__ >= 3
-#define _pure_ __attribute__ ((pure))
-#define _const_ __attribute__ ((const))
-#define _noreturn_ __attribute__ ((noreturn))
-#define _malloc_ __attribute__ ((malloc))
-#define _mustcheck_ __attribute__ ((warn_unused_result))
+#define _pure_ __attribute__ ((pure))
+#define _const_ __attribute__ ((const))
+#define _noreturn_ __attribute__ ((noreturn))
+#define _malloc_ __attribute__ ((malloc))
+#define _mustcheck_ __attribute__ ((warn_unused_result))
+#define _nonnull_(...) __attribute__ ((nonnull(__VA_ARGS__)))
#else
#define _pure_
#define _const_
#define _noreturn_
#define _malloc_
#define _mustcheck_
+#define _nonnull_
#endif
/*! @} */
diff --git a/src/libknot/codes.c b/src/libknot/codes.c
index 9027e6f..b0b78fa 100644
--- a/src/libknot/codes.c
+++ b/src/libknot/codes.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -92,6 +92,7 @@ const knot_lookup_t knot_edns_ede_names[] = {
{ KNOT_EDNS_EDE_NSEC3_ITERS, "Unsupported NSEC3 Iterations Value" },
{ KNOT_EDNS_EDE_NONCONF_POLICY, "Unable to conform to policy" },
{ KNOT_EDNS_EDE_SYNTHESIZED, "Synthesized" },
+ { KNOT_EDNS_EDE_INV_QTYPE, "Invalid Query Type" },
{ 0, NULL }
};
@@ -126,6 +127,8 @@ const knot_lookup_t knot_svcb_param_names[] = {
{ KNOT_SVCB_PARAM_IPV4HINT, "ipv4hint" },
{ KNOT_SVCB_PARAM_ECH, "ech" },
{ KNOT_SVCB_PARAM_IPV6HINT, "ipv6hint" },
+ { KNOT_SVCB_PARAM_DOHPATH, "dohpath" },
+ { KNOT_SVCB_PARAM_OHTTP, "ohttp" },
{ 0, NULL }
};
@@ -139,4 +142,5 @@ const knot_lookup_t knot_edns_opt_names[] = {
{ KNOT_EDNS_OPTION_PADDING, "PADDING" },
{ KNOT_EDNS_OPTION_CHAIN, "CHAIN" },
{ KNOT_EDNS_OPTION_EDE, "EDE" },
+ { 0, NULL }
};
diff --git a/src/libknot/consts.h b/src/libknot/consts.h
index e6041b7..e3be096 100644
--- a/src/libknot/consts.h
+++ b/src/libknot/consts.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -134,6 +134,7 @@ typedef enum {
KNOT_EDNS_EDE_NSEC3_ITERS = 27,
KNOT_EDNS_EDE_NONCONF_POLICY = 28,
KNOT_EDNS_EDE_SYNTHESIZED = 29,
+ KNOT_EDNS_EDE_INV_QTYPE = 30,
} knot_edns_ede_t;
/*!
@@ -148,7 +149,7 @@ typedef enum {
/*!
* \brief Service Binding (SVCB) Parameter Registry
*
- * https://tools.ietf.org/html/draft-ietf-dnsop-svcb-https-05 // FIXME
+ * https://www.iana.org/assignments/dns-svcb/dns-svcb.xhtml
*/
typedef enum {
KNOT_SVCB_PARAM_MANDATORY = 0,
@@ -158,6 +159,8 @@ typedef enum {
KNOT_SVCB_PARAM_IPV4HINT = 4,
KNOT_SVCB_PARAM_ECH = 5,
KNOT_SVCB_PARAM_IPV6HINT = 6,
+ KNOT_SVCB_PARAM_DOHPATH = 7,
+ KNOT_SVCB_PARAM_OHTTP = 8,
} knot_svcb_param_t;
/*! @} */
diff --git a/src/libknot/control/control.c b/src/libknot/control/control.c
index 671896f..8cddd5d 100644
--- a/src/libknot/control/control.c
+++ b/src/libknot/control/control.c
@@ -36,9 +36,6 @@
#define CTL_BUFF_SIZE (256 * 1024)
#endif
-/*! Listen backlog size. */
-#define DEFAULT_LISTEN_BACKLOG 5
-
/*! Default socket operations timeout in milliseconds. */
#define DEFAULT_TIMEOUT (30 * 1000)
@@ -166,6 +163,18 @@ knot_ctl_t* knot_ctl_alloc(void)
}
_public_
+knot_ctl_t* knot_ctl_clone(knot_ctl_t *ctx)
+{
+ knot_ctl_t *res = knot_ctl_alloc();
+ if (res != NULL) {
+ res->timeout = ctx->timeout;
+ res->sock = ctx->sock;
+ ctx->sock = -1;
+ }
+ return res;
+}
+
+_public_
void knot_ctl_free(knot_ctl_t *ctx)
{
if (ctx == NULL) {
@@ -194,13 +203,7 @@ void knot_ctl_set_timeout(knot_ctl_t *ctx, int timeout_ms)
}
_public_
-int knot_ctl_bind(knot_ctl_t *ctx, const char *path)
-{
- return knot_ctl_bind2(ctx, path, DEFAULT_LISTEN_BACKLOG);
-}
-
-_public_
-int knot_ctl_bind2(knot_ctl_t *ctx, const char *path, unsigned backlog)
+int knot_ctl_bind(knot_ctl_t *ctx, const char *path, unsigned backlog)
{
if (ctx == NULL || path == NULL) {
return KNOT_EINVAL;
diff --git a/src/libknot/control/control.h b/src/libknot/control/control.h
index 8ab1e10..f110e3f 100644
--- a/src/libknot/control/control.h
+++ b/src/libknot/control/control.h
@@ -65,6 +65,18 @@ typedef struct knot_ctl knot_ctl_t;
knot_ctl_t* knot_ctl_alloc(void);
/*!
+ * \brief Allocates a control context based on an existing one.
+ *
+ * \param[in,out] ctx Original control context.
+ *
+ * \note The listen_sock is kept at the original, the current sock is taken
+ * by the clone and RESET in the original!
+ *
+ * \return Control context or NULL.
+ */
+knot_ctl_t* knot_ctl_clone(knot_ctl_t *ctx);
+
+/*!
* Deallocates a control context.
*
* \param[in] ctx Control context.
@@ -86,17 +98,13 @@ void knot_ctl_set_timeout(knot_ctl_t *ctx, int timeout_ms);
*
* \note Server operation.
*
- * \param[in] ctx Control context.
- * \param[in] path Control UNIX socket path.
+ * \param[in] ctx Control context.
+ * \param[in] path Control UNIX socket path.
+ * \param[in] backlog Socket listen backlog size.
*
* \return Error code, KNOT_EOK if successful.
*/
-int knot_ctl_bind(knot_ctl_t *ctx, const char *path);
-
-/*!
- * Same as knot_ctl_bind() with socket backlog specification.
- */
-int knot_ctl_bind2(knot_ctl_t *ctx, const char *path, unsigned backlog);
+int knot_ctl_bind(knot_ctl_t *ctx, const char *path, unsigned backlog);
/*!
* Unbinds a control socket.
diff --git a/src/libknot/descriptor.c b/src/libknot/descriptor.c
index 5ff2714..b5b8737 100644
--- a/src/libknot/descriptor.c
+++ b/src/libknot/descriptor.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -150,6 +150,8 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = {
KNOT_RDATA_WF_END }, "URI" },
[KNOT_RRTYPE_CAA] = { { KNOT_RDATA_WF_REMAINDER,
KNOT_RDATA_WF_END }, "CAA" },
+ [KNOT_RRTYPE_WALLET] = { { KNOT_RDATA_WF_REMAINDER,
+ KNOT_RDATA_WF_END }, "WALLET" },
};
#define MAX_RRTYPE sizeof(rdata_descriptors) / sizeof(knot_rdata_descriptor_t) - 1
diff --git a/src/libknot/descriptor.h b/src/libknot/descriptor.h
index 14cd3b3..714bc5e 100644
--- a/src/libknot/descriptor.h
+++ b/src/libknot/descriptor.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -126,6 +126,8 @@ enum knot_rr_type {
KNOT_RRTYPE_ANY = 255, /*!< QTYPE. Any record. */
KNOT_RRTYPE_URI = 256, /*!< Uniform resource identifier. */
KNOT_RRTYPE_CAA = 257, /*!< Certification authority restriction. */
+
+ KNOT_RRTYPE_WALLET = 262, /*!< Public wallet address. */
};
/*!
diff --git a/src/libknot/dname.c b/src/libknot/dname.c
index 31b8a5f..d166f8d 100644
--- a/src/libknot/dname.c
+++ b/src/libknot/dname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -62,11 +62,11 @@ static int dname_align(const uint8_t **d1, uint8_t d1_labels,
assert(d1 && d2);
for (unsigned j = d1_labels; j < d2_labels; ++j) {
- *d2 = knot_wire_next_label(*d2, NULL);
+ *d2 = knot_dname_next_label(*d2);
}
for (unsigned j = d2_labels; j < d1_labels; ++j) {
- *d1 = knot_wire_next_label(*d1, NULL);
+ *d1 = knot_dname_next_label(*d1);
}
return (d1_labels < d2_labels) ? d1_labels : d2_labels;
@@ -190,7 +190,7 @@ _public_
int knot_dname_unpack(uint8_t *dst, const knot_dname_t *src,
size_t maxlen, const uint8_t *pkt)
{
- if (dst == NULL || src == NULL) {
+ if (dst == NULL || src == NULL || pkt == NULL) {
return KNOT_EINVAL;
}
@@ -533,7 +533,7 @@ size_t knot_dname_size(const knot_dname_t *name)
_public_
size_t knot_dname_realsize(const knot_dname_t *name, const uint8_t *pkt)
{
- if (name == NULL) {
+ if (name == NULL || pkt == NULL) {
return 0;
}
@@ -573,8 +573,8 @@ size_t knot_dname_matched_labels(const knot_dname_t *d1, const knot_dname_t *d2)
}
/* Next label. */
- d1 = knot_wire_next_label(d1, NULL);
- d2 = knot_wire_next_label(d2, NULL);
+ d1 = knot_dname_next_label(d1);
+ d2 = knot_dname_next_label(d2);
--common;
}
@@ -596,7 +596,7 @@ knot_dname_t *knot_dname_replace_suffix(const knot_dname_t *name, unsigned label
}
size_t prefix_lbs = dname_lbs - labels;
- size_t prefix_len = knot_dname_prefixlen(name, prefix_lbs, NULL);
+ size_t prefix_len = knot_dname_prefixlen(name, prefix_lbs);
size_t suffix_len = knot_dname_size(suffix);
if (prefix_len == 0 || suffix_len == 0) {
return NULL;
@@ -614,7 +614,7 @@ knot_dname_t *knot_dname_replace_suffix(const knot_dname_t *name, unsigned label
while (prefix_lbs > 0) {
memcpy(dst, name, *name + 1);
dst += *name + 1;
- name = knot_wire_next_label(name, NULL);
+ name = knot_dname_next_label(name);
--prefix_lbs;
}
@@ -622,7 +622,7 @@ knot_dname_t *knot_dname_replace_suffix(const knot_dname_t *name, unsigned label
while (*suffix != '\0') {
memcpy(dst, suffix, *suffix + 1);
dst += *suffix + 1;
- suffix = knot_wire_next_label(suffix, NULL);
+ suffix = knot_dname_next_label(suffix);
}
*dst = '\0';
@@ -684,8 +684,8 @@ inline static bool dname_is_equal(const knot_dname_t *d1, const knot_dname_t *d2
while (*d1 != '\0' || *d2 != '\0') {
if (label_is_equal(d1, d2, no_case)) {
- d1 = knot_wire_next_label(d1, NULL);
- d2 = knot_wire_next_label(d2, NULL);
+ d1 = knot_dname_next_label(d1);
+ d2 = knot_dname_next_label(d2);
} else {
return false;
}
@@ -707,7 +707,7 @@ bool knot_dname_is_case_equal(const knot_dname_t *d1, const knot_dname_t *d2)
}
_public_
-size_t knot_dname_prefixlen(const uint8_t *name, unsigned nlabels, const uint8_t *pkt)
+size_t knot_dname_prefixlen(const uint8_t *name, unsigned nlabels)
{
if (name == NULL) {
return 0;
@@ -718,13 +718,10 @@ size_t knot_dname_prefixlen(const uint8_t *name, unsigned nlabels, const uint8_t
return 0;
}
- /* Seek first real label occurrence. */
- name = knot_wire_seek_label(name, pkt);
-
size_t len = 0;
while (*name != '\0') {
len += *name + 1;
- name = knot_wire_next_label(name, pkt);
+ name = knot_dname_next_label(name);
if (--nlabels == 0) { /* Count N first labels only. */
break;
}
@@ -743,7 +740,8 @@ size_t knot_dname_labels(const uint8_t *name, const uint8_t *pkt)
size_t count = 0;
while (*name != '\0') {
++count;
- name = knot_wire_next_label(name, pkt);
+ name = (pkt == NULL) ? knot_dname_next_label(name) :
+ knot_wire_next_label(name, pkt);
if (name == NULL) {
return 0;
}
@@ -794,7 +792,7 @@ int knot_dname_in_bailiwick(const knot_dname_t *name, const knot_dname_t *bailiw
}
for (int i = 0; i < label_diff; ++i) {
- name = knot_wire_next_label(name, NULL);
+ name = knot_dname_next_label(name);
}
return knot_dname_is_equal(name, bailiwick) ? label_diff : KNOT_EOUTOFZONE;
diff --git a/src/libknot/dname.h b/src/libknot/dname.h
index 5733de9..6d72f90 100644
--- a/src/libknot/dname.h
+++ b/src/libknot/dname.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -48,7 +48,7 @@ typedef char knot_dname_txt_storage_t[KNOT_DNAME_TXT_MAXLEN + 1];
*
* \param name Name on the wire.
* \param endp Name boundary.
- * \param pkt Wire.
+ * \param pkt Wire (can be NULL if not compressed).
*
* \retval (compressed) size of the domain name.
* \retval KNOT_EINVAL
@@ -195,7 +195,7 @@ size_t knot_dname_size(const knot_dname_t *name);
* \brief Returns full size of the given domain name (expanded compression ptrs).
*
* \param name Domain name to get the size of.
- * \param pkt Related packet (or NULL if unpacked)
+ * \param pkt Related packet.
*
* \retval size of the domain name.
* \retval 0 if invalid argument.
@@ -295,12 +295,11 @@ bool knot_dname_is_case_equal(const knot_dname_t *d1, const knot_dname_t *d2);
*
* \param name Domain name.
* \param nlabels First N labels.
- * \param pkt Related packet (or NULL if not compressed).
*
* \return Length of the prefix.
*/
_pure_
-size_t knot_dname_prefixlen(const uint8_t *name, unsigned nlabels, const uint8_t *pkt);
+size_t knot_dname_prefixlen(const uint8_t *name, unsigned nlabels);
/*!
* \brief Return number of labels in the domain name.
diff --git a/src/libknot/errcode.h b/src/libknot/errcode.h
index a9eb65c..3ee326c 100644
--- a/src/libknot/errcode.h
+++ b/src/libknot/errcode.h
@@ -57,6 +57,8 @@ enum knot_error {
KNOT_ERANGE = -ERANGE,
KNOT_EADDRNOTAVAIL = -EADDRNOTAVAIL,
KNOT_ENOTDIR = -ENOTDIR,
+ KNOT_EPERM = -EPERM,
+ KNOT_EROFS = -EROFS,
KNOT_ERRNO_ERROR = -500,
@@ -108,6 +110,7 @@ enum knot_error {
KNOT_EBADCERTKEY,
KNOT_EFACCES,
KNOT_EBACKUPDATA,
+ KNOT_ECPUCOMPAT,
KNOT_GENERAL_ERROR = -900,
@@ -119,6 +122,7 @@ enum knot_error {
KNOT_NET_EADDR,
KNOT_NET_ESOCKET,
KNOT_NET_ECONNECT,
+ KNOT_NET_EHSHAKE,
KNOT_NET_ESEND,
KNOT_NET_ERECV,
KNOT_NET_ETIMEOUT,
@@ -174,7 +178,9 @@ enum knot_error {
KNOT_NO_PUBLIC_KEY,
KNOT_NO_PRIVATE_KEY,
KNOT_NO_READY_KEY,
+ KNOT_ESOON_EXPIRE,
KNOT_DNSSEC_EKEYTAG_LIMIT,
+ KNOT_DNSSEC_EXTRA_NSEC,
KNOT_ERROR_MAX = -501
};
diff --git a/src/libknot/error.c b/src/libknot/error.c
index a148ee7..59f0a7a 100644
--- a/src/libknot/error.c
+++ b/src/libknot/error.c
@@ -58,6 +58,8 @@ static const struct error errors[] = {
{ KNOT_ERANGE, "value is out of range" },
{ KNOT_EADDRNOTAVAIL, "address is not available" },
{ KNOT_ENOTDIR, "not a directory" },
+ { KNOT_EPERM, "operation not permitted" },
+ { KNOT_EROFS, "read-only file system" },
{ KNOT_ERRNO_ERROR, "unknown system error" },
@@ -107,6 +109,7 @@ static const struct error errors[] = {
{ KNOT_EBADCERTKEY, "unknown certificate key" },
{ KNOT_EFACCES, "file permission denied" },
{ KNOT_EBACKUPDATA, "requested data not in backup" },
+ { KNOT_ECPUCOMPAT, "incompatible CPU architecture" },
{ KNOT_GENERAL_ERROR, "unknown general error" },
@@ -118,6 +121,7 @@ static const struct error errors[] = {
{ KNOT_NET_EADDR, "bad address or host name" },
{ KNOT_NET_ESOCKET, "can't create socket" },
{ KNOT_NET_ECONNECT, "can't connect" },
+ { KNOT_NET_EHSHAKE, "handshake failed" },
{ KNOT_NET_ESEND, "can't send data" },
{ KNOT_NET_ERECV, "can't receive data" },
{ KNOT_NET_ETIMEOUT, "network timeout" },
@@ -173,7 +177,9 @@ static const struct error errors[] = {
{ KNOT_NO_PUBLIC_KEY, "no public key" },
{ KNOT_NO_PRIVATE_KEY, "no private key" },
{ KNOT_NO_READY_KEY, "no key ready for submission" },
+ { KNOT_ESOON_EXPIRE, "oncoming RRSIG expiration" },
{ KNOT_DNSSEC_EKEYTAG_LIMIT, "many keys with equal keytag" },
+ { KNOT_DNSSEC_EXTRA_NSEC, "superfluous NSEC(3)" },
/* Terminator */
{ KNOT_ERROR, NULL }
diff --git a/src/libknot/packet/pkt.h b/src/libknot/packet/pkt.h
index 383f55e..da69c8c 100644
--- a/src/libknot/packet/pkt.h
+++ b/src/libknot/packet/pkt.h
@@ -52,7 +52,6 @@ enum {
KNOT_PF_NOCANON = 1 << 5, /*!< Don't canonicalize rrsets during parsing. */
KNOT_PF_ORIGTTL = 1 << 6, /*!< Write RRSIGs with their original TTL. */
KNOT_PF_SOAMINTTL = 1 << 7, /*!< Write SOA with its minimum-ttl as TTL. */
- KNOT_PF_BUFENOUGH = 1 << 8, /*!< The output buffer is big enough for the output. */
};
typedef struct knot_pkt knot_pkt_t;
diff --git a/src/libknot/packet/rrset-wire.c b/src/libknot/packet/rrset-wire.c
index a822cfe..1d4f78e 100644
--- a/src/libknot/packet/rrset-wire.c
+++ b/src/libknot/packet/rrset-wire.c
@@ -73,6 +73,7 @@ static bool dname_equal_wire(const knot_dname_t *d1, const knot_dname_t *d2,
{
assert(d1);
assert(d2);
+ assert(wire);
d2 = knot_wire_seek_label(d2, wire);
@@ -80,7 +81,7 @@ static bool dname_equal_wire(const knot_dname_t *d1, const knot_dname_t *d2,
if (!label_is_equal(d1, d2)) {
return false;
}
- d1 = knot_wire_next_label(d1, NULL);
+ d1 = knot_dname_next_label(d1);
d2 = knot_wire_next_label(d2, wire);
}
@@ -170,7 +171,7 @@ static int write_rdata_naptr_header(const uint8_t **src, size_t *src_avail,
written += (len); \
}
-#define CHECK_NEXT_LABEL(res) \
+#define CHECK_WIRE_NEXT_LABEL(res) \
if (res == NULL) { return KNOT_EINVAL; }
/*!
@@ -201,7 +202,7 @@ static int compr_put_dname(const knot_dname_t *dname, uint8_t *dst, uint16_t max
int suffix_labels = compr->suffix.labels;
while (suffix_labels > name_labels) {
suffix = knot_wire_next_label(suffix, compr->wire);
- CHECK_NEXT_LABEL(suffix);
+ CHECK_WIRE_NEXT_LABEL(suffix);
--suffix_labels;
}
@@ -210,8 +211,7 @@ static int compr_put_dname(const knot_dname_t *dname, uint8_t *dst, uint16_t max
uint16_t written = 0;
while (name_labels > suffix_labels) {
WRITE_LABEL(dst, written, dname, max, (*dname + 1));
- dname = knot_wire_next_label(dname, NULL);
- CHECK_NEXT_LABEL(dname);
+ dname = knot_dname_next_label(dname);
--name_labels;
}
@@ -221,10 +221,9 @@ static int compr_put_dname(const knot_dname_t *dname, uint8_t *dst, uint16_t max
const knot_dname_t *compr_ptr = suffix;
while (dname[0] != '\0') {
// Next labels.
- const knot_dname_t *next_dname = knot_wire_next_label(dname, NULL);
- CHECK_NEXT_LABEL(next_dname);
+ const knot_dname_t *next_dname = knot_dname_next_label(dname);
const knot_dname_t *next_suffix = knot_wire_next_label(suffix, compr->wire);
- CHECK_NEXT_LABEL(next_suffix);
+ CHECK_WIRE_NEXT_LABEL(next_suffix);
// Two labels match, extend suffix length.
if (!label_is_equal(dname, suffix)) {
@@ -324,11 +323,11 @@ static int write_owner(const knot_rrset_t *rrset, uint8_t **dst, size_t *dst_ava
return KNOT_EOK;
}
-static int write_fixed_header(const knot_rrset_t *rrset, uint16_t rrset_index,
+static int write_fixed_header(const knot_rrset_t *rrset, const knot_rdata_t *rdata,
uint8_t **dst, size_t *dst_avail, uint16_t flags)
{
assert(rrset);
- assert(rrset_index < rrset->rrs.count);
+ assert(rdata);
assert(dst && *dst);
assert(dst_avail);
@@ -339,10 +338,8 @@ static int write_fixed_header(const knot_rrset_t *rrset, uint16_t rrset_index,
wire_ctx_write_u16(&write, rrset->rclass);
if ((flags & KNOT_PF_ORIGTTL) && rrset->type == KNOT_RRTYPE_RRSIG) {
- const knot_rdata_t *rdata = knot_rdataset_at(&rrset->rrs, rrset_index);
wire_ctx_write_u32(&write, knot_rrsig_original_ttl(rdata));
} else if ((flags & KNOT_PF_SOAMINTTL) && rrset->type == KNOT_RRTYPE_SOA) {
- const knot_rdata_t *rdata = knot_rdataset_at(&rrset->rrs, rrset_index);
wire_ctx_write_u32(&write, MIN(knot_soa_minimum(rdata), rrset->ttl));
} else {
wire_ctx_write_u32(&write, rrset->ttl);
@@ -433,15 +430,15 @@ static int rdata_traverse_write(const uint8_t **src, size_t *src_avail,
}
static int write_rdata(const knot_rrset_t *rrset, uint16_t rrset_index,
- uint8_t **dst, size_t *dst_avail, knot_compr_t *compr)
+ const knot_rdata_t *rdata, uint8_t **dst, size_t *dst_avail,
+ knot_compr_t *compr)
{
assert(rrset);
assert(rrset_index < rrset->rrs.count);
+ assert(rdata);
assert(dst && *dst);
assert(dst_avail);
- const knot_rdata_t *rdata = knot_rdataset_at(&rrset->rrs, rrset_index);
-
// Reserve space for RDLENGTH.
if (sizeof(uint16_t) > *dst_avail) {
return KNOT_ESPACE;
@@ -478,7 +475,8 @@ static int write_rdata(const knot_rrset_t *rrset, uint16_t rrset_index,
return KNOT_EOK;
}
-static int write_rr(const knot_rrset_t *rrset, uint16_t rrset_index, uint8_t **dst,
+static int write_rr(const knot_rrset_t *rrset, uint16_t rrset_index,
+ const knot_rdata_t *rdata, uint8_t **dst,
size_t *dst_avail, knot_compr_t *compr, uint16_t flags)
{
int ret = write_owner(rrset, dst, dst_avail, compr);
@@ -486,17 +484,17 @@ static int write_rr(const knot_rrset_t *rrset, uint16_t rrset_index, uint8_t **d
return ret;
}
- ret = write_fixed_header(rrset, rrset_index, dst, dst_avail, flags);
+ ret = write_fixed_header(rrset, rdata, dst, dst_avail, flags);
if (ret != KNOT_EOK) {
return ret;
}
- return write_rdata(rrset, rrset_index, dst, dst_avail, compr);
+ return write_rdata(rrset, rrset_index, rdata, dst, dst_avail, compr);
}
_public_
int knot_rrset_to_wire_extra(const knot_rrset_t *rrset, uint8_t *wire,
- uint16_t max_size, uint16_t rotate,
+ uint32_t max_size, uint16_t rotate,
knot_compr_t *compr, uint16_t flags)
{
if (rrset == NULL || wire == NULL) {
@@ -512,15 +510,12 @@ int knot_rrset_to_wire_extra(const knot_rrset_t *rrset, uint8_t *wire,
uint8_t *write = wire;
size_t capacity = max_size;
- // FIXME remove this and make the max_size parameter uint32_t in next major libknot release!
- if ((flags & KNOT_PF_BUFENOUGH)) {
- capacity = SIZE_MAX;
- }
-
uint16_t count = rrset->rrs.count;
+ knot_rdata_t *rdata = rotate > 1 ? knot_rdataset_at(&rrset->rrs, rotate - 1) : rrset->rrs.rdata;
for (int i = rotate; i < count + rotate; i++) {
uint16_t pos = (i < count) ? i : (i - count);
- int ret = write_rr(rrset, pos, &write, &capacity, compr, flags);
+ rdata = pos ? knot_rdataset_next(rdata) : rrset->rrs.rdata;
+ int ret = write_rr(rrset, pos, rdata, &write, &capacity, compr, flags);
if (ret != KNOT_EOK) {
return ret;
}
diff --git a/src/libknot/packet/rrset-wire.h b/src/libknot/packet/rrset-wire.h
index 3be0cba..3247df8 100644
--- a/src/libknot/packet/rrset-wire.h
+++ b/src/libknot/packet/rrset-wire.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -41,12 +41,12 @@
* \return Output size, negative number on error (KNOT_E*).
*/
int knot_rrset_to_wire_extra(const knot_rrset_t *rrset, uint8_t *wire,
- uint16_t max_size, uint16_t rotate,
+ uint32_t max_size, uint16_t rotate,
knot_compr_t *compr, uint16_t flags);
/*! \brief Same as knot_rrset_to_wire_extra but without rrset rotation and flags. */
static inline int knot_rrset_to_wire(const knot_rrset_t *rrset, uint8_t *wire,
- uint16_t max_size, knot_compr_t *compr)
+ uint32_t max_size, knot_compr_t *compr)
{
return knot_rrset_to_wire_extra(rrset, wire, max_size, 0, compr, 0);
}
diff --git a/src/libknot/packet/wire.h b/src/libknot/packet/wire.h
index 630cd83..cff4b21 100644
--- a/src/libknot/packet/wire.h
+++ b/src/libknot/packet/wire.h
@@ -1025,13 +1025,11 @@ static inline uint16_t knot_wire_get_pointer(const uint8_t *pos)
return (knot_wire_read_u16(pos) - KNOT_WIRE_PTR_BASE); // Return offset.
}
-_pure_ _mustcheck_
+_pure_ _mustcheck_ _nonnull_(2)
static inline const uint8_t *knot_wire_seek_label(const uint8_t *lp, const uint8_t *wire)
{
+ assert(wire);
while (knot_wire_is_pointer(lp)) {
- if (!wire) {
- return NULL;
- }
const uint8_t *new_lp = wire + knot_wire_get_pointer(lp);
if (new_lp >= lp) {
assert(0);
@@ -1042,12 +1040,21 @@ static inline const uint8_t *knot_wire_seek_label(const uint8_t *lp, const uint8
return lp;
}
-_pure_ _mustcheck_
+_pure_ _mustcheck_ _nonnull_(1, 2)
static inline const uint8_t *knot_wire_next_label(const uint8_t *lp, const uint8_t *wire)
{
- if (!lp || !lp[0]) /* No label after final label. */
- return NULL;
+ assert(lp);
+ assert(lp[0] > 0); // Not a terminal label.
return knot_wire_seek_label(lp + (lp[0] + sizeof(uint8_t)), wire);
}
+_pure_ _mustcheck_ _nonnull_(1)
+static inline const uint8_t *knot_dname_next_label(const uint8_t *lp)
+{
+ assert(lp);
+ assert(lp[0] > 0); // Not a terminal label.
+ assert(!knot_wire_is_pointer(lp));
+ return lp + (lp[0] + sizeof(uint8_t));
+}
+
/*! @} */
diff --git a/src/libknot/quic/quic.c b/src/libknot/quic/quic.c
index f9d1d1d..4eb84c3 100644
--- a/src/libknot/quic/quic.c
+++ b/src/libknot/quic/quic.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -33,7 +33,6 @@
#include "contrib/macros.h"
#include "contrib/sockaddr.h"
-#include "contrib/string.h"
#include "contrib/ucw/lists.h"
#include "libknot/endian.h"
#include "libdnssec/error.h"
@@ -58,19 +57,6 @@
#define TLS_CALLBACK_ERR (-1)
-const gnutls_datum_t doq_alpn = {
- (unsigned char *)"doq", 3
-};
-
-typedef struct knot_quic_creds {
- gnutls_certificate_credentials_t tls_cert;
- gnutls_anti_replay_t tls_anti_replay;
- gnutls_datum_t tls_ticket_key;
- bool peer;
- uint8_t peer_pin_len;
- uint8_t peer_pin[];
-} knot_quic_creds_t;
-
typedef struct knot_quic_session {
node_t n;
gnutls_datum_t tls_session;
@@ -153,223 +139,6 @@ session_free:
return ret;
}
-static int tls_anti_replay_db_add_func(void *dbf, time_t exp_time,
- const gnutls_datum_t *key,
- const gnutls_datum_t *data)
-{
- return 0;
-}
-
-static void tls_session_ticket_key_free(gnutls_datum_t *ticket)
-{
- gnutls_memset(ticket->data, 0, ticket->size);
- gnutls_free(ticket->data);
-}
-
-static int self_key(gnutls_x509_privkey_t *privkey, const char *key_file)
-{
- gnutls_datum_t data = { 0 };
-
- int ret = gnutls_x509_privkey_init(privkey);
- if (ret != GNUTLS_E_SUCCESS) {
- return ret;
- }
-
- int fd = open(key_file, O_RDONLY);
- if (fd != -1) {
- struct stat stat;
- if (fstat(fd, &stat) != 0 ||
- (data.data = gnutls_malloc(stat.st_size)) == NULL ||
- read(fd, data.data, stat.st_size) != stat.st_size) {
- ret = GNUTLS_E_KEYFILE_ERROR;
- goto finish;
- }
-
- data.size = stat.st_size;
- ret = gnutls_x509_privkey_import_pkcs8(*privkey, &data, GNUTLS_X509_FMT_PEM,
- NULL, GNUTLS_PKCS_PLAIN);
- if (ret != GNUTLS_E_SUCCESS) {
- goto finish;
- }
- } else {
- ret = gnutls_x509_privkey_generate(*privkey, GNUTLS_PK_EDDSA_ED25519,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_ED25519), 0);
- if (ret != GNUTLS_E_SUCCESS) {
- goto finish;
- }
-
- ret = gnutls_x509_privkey_export2_pkcs8(*privkey, GNUTLS_X509_FMT_PEM, NULL,
- GNUTLS_PKCS_PLAIN, &data);
- if (ret != GNUTLS_E_SUCCESS ||
- (fd = open(key_file, O_WRONLY | O_CREAT, 0600)) == -1 ||
- write(fd, data.data, data.size) != data.size) {
- ret = GNUTLS_E_KEYFILE_ERROR;
- goto finish;
- }
- }
-
-finish:
- close(fd);
- gnutls_free(data.data);
- if (ret != GNUTLS_E_SUCCESS) {
- gnutls_x509_privkey_deinit(*privkey);
- *privkey = NULL;
- }
- return ret;
-}
-
-static int self_signed_cert(gnutls_certificate_credentials_t tls_cert,
- const char *key_file)
-{
- gnutls_x509_privkey_t privkey = NULL;
- gnutls_x509_crt_t cert = NULL;
-
- char *hostname = sockaddr_hostname();
- if (hostname == NULL) {
- return GNUTLS_E_MEMORY_ERROR;
- }
-
- int ret;
- uint8_t serial[16];
- gnutls_rnd(GNUTLS_RND_NONCE, serial, sizeof(serial));
- // Clear the left-most bit to be a positive number (two's complement form).
- serial[0] &= 0x7F;
-
-#define CHK(cmd) if ((ret = (cmd)) != GNUTLS_E_SUCCESS) { goto finish; }
-#define NOW_DAYS(days) (time(NULL) + 24 * 3600 * (days))
-
- CHK(self_key(&privkey, key_file));
-
- CHK(gnutls_x509_crt_init(&cert));
- CHK(gnutls_x509_crt_set_version(cert, 3));
- CHK(gnutls_x509_crt_set_serial(cert, serial, sizeof(serial)));
- CHK(gnutls_x509_crt_set_activation_time(cert, NOW_DAYS(-1)));
- CHK(gnutls_x509_crt_set_expiration_time(cert, NOW_DAYS(10 * 365)));
- CHK(gnutls_x509_crt_set_dn_by_oid(cert, GNUTLS_OID_X520_COMMON_NAME, 0,
- hostname, strlen(hostname)));
- CHK(gnutls_x509_crt_set_key(cert, privkey));
- CHK(gnutls_x509_crt_sign2(cert, cert, privkey, GNUTLS_DIG_SHA512, 0));
-
- ret = gnutls_certificate_set_x509_key(tls_cert, &cert, 1, privkey);
-
-finish:
- free(hostname);
- gnutls_x509_crt_deinit(cert);
- gnutls_x509_privkey_deinit(privkey);
-
- return ret;
-}
-
-_public_
-struct knot_quic_creds *knot_quic_init_creds(const char *cert_file,
- const char *key_file)
-{
- knot_quic_creds_t *creds = calloc(1, sizeof(*creds));
- if (creds == NULL) {
- return NULL;
- }
-
- int ret = gnutls_certificate_allocate_credentials(&creds->tls_cert);
- if (ret != GNUTLS_E_SUCCESS) {
- goto fail;
- }
-
- ret = gnutls_anti_replay_init(&creds->tls_anti_replay);
- if (ret != GNUTLS_E_SUCCESS) {
- goto fail;
- }
- gnutls_anti_replay_set_add_function(creds->tls_anti_replay, tls_anti_replay_db_add_func);
- gnutls_anti_replay_set_ptr(creds->tls_anti_replay, NULL);
-
- if (cert_file != NULL) {
- ret = gnutls_certificate_set_x509_key_file(creds->tls_cert,
- cert_file, key_file,
- GNUTLS_X509_FMT_PEM);
- } else {
- ret = self_signed_cert(creds->tls_cert, key_file);
- }
- if (ret != GNUTLS_E_SUCCESS) {
- goto fail;
- }
-
- ret = gnutls_session_ticket_key_generate(&creds->tls_ticket_key);
- if (ret != GNUTLS_E_SUCCESS) {
- goto fail;
- }
-
- return creds;
-fail:
- knot_quic_free_creds(creds);
- return NULL;
-}
-
-_public_
-struct knot_quic_creds *knot_quic_init_creds_peer(const struct knot_quic_creds *local_creds,
- const uint8_t *peer_pin,
- uint8_t peer_pin_len)
-{
- knot_quic_creds_t *creds = calloc(1, sizeof(*creds) + peer_pin_len);
- if (creds == NULL) {
- return NULL;
- }
-
- if (local_creds != NULL) {
- creds->peer = true;
- creds->tls_cert = local_creds->tls_cert;
- } else {
- int ret = gnutls_certificate_allocate_credentials(&creds->tls_cert);
- if (ret != GNUTLS_E_SUCCESS) {
- free(creds);
- return NULL;
- }
- }
-
- if (peer_pin_len > 0 && peer_pin != NULL) {
- memcpy(creds->peer_pin, peer_pin, peer_pin_len);
- creds->peer_pin_len = peer_pin_len;
- }
-
- return creds;
-}
-
-_public_
-int knot_quic_creds_cert(struct knot_quic_creds *creds, struct gnutls_x509_crt_int **cert)
-{
- if (creds == NULL || cert == NULL) {
- return KNOT_EINVAL;
- }
-
- gnutls_x509_crt_t *certs;
- unsigned cert_count;
- int ret = gnutls_certificate_get_x509_crt(creds->tls_cert, 0, &certs, &cert_count);
- if (ret == GNUTLS_E_SUCCESS) {
- if (cert_count == 0) {
- gnutls_x509_crt_deinit(*certs);
- return KNOT_ENOENT;
- }
- *cert = *certs;
- free(certs);
- }
- return ret;
-}
-
-_public_
-void knot_quic_free_creds(struct knot_quic_creds *creds)
-{
- if (creds == NULL) {
- return;
- }
-
- if (!creds->peer && creds->tls_cert != NULL) {
- gnutls_certificate_free_credentials(creds->tls_cert);
- }
- gnutls_anti_replay_deinit(creds->tls_anti_replay);
- if (creds->tls_ticket_key.data != NULL) {
- tls_session_ticket_key_free(&creds->tls_ticket_key);
- }
- free(creds);
-}
-
static ngtcp2_conn *get_conn(ngtcp2_crypto_conn_ref *conn_ref)
{
return ((knot_quic_conn_t *)conn_ref->user_data)->conn;
@@ -377,51 +146,31 @@ static ngtcp2_conn *get_conn(ngtcp2_crypto_conn_ref *conn_ref)
static int tls_init_conn_session(knot_quic_conn_t *conn, bool server)
{
- if (gnutls_init(&conn->tls_session, (server ? GNUTLS_SERVER : GNUTLS_CLIENT) |
- GNUTLS_ENABLE_EARLY_DATA | GNUTLS_NO_AUTO_SEND_TICKET |
- GNUTLS_NO_END_OF_EARLY_DATA) != GNUTLS_E_SUCCESS) {
- return TLS_CALLBACK_ERR;
- }
-
- gnutls_certificate_send_x509_rdn_sequence(conn->tls_session, 1);
- gnutls_certificate_server_set_request(conn->tls_session, GNUTLS_CERT_REQUEST);
-
- if (gnutls_priority_set_direct(conn->tls_session, QUIC_PRIORITIES,
- NULL) != GNUTLS_E_SUCCESS) {
+ int ret = knot_tls_session(&conn->tls_session, conn->quic_table->creds,
+ conn->quic_table->priority, "\x03""doq",
+ true, server);
+ if (ret != KNOT_EOK) {
return TLS_CALLBACK_ERR;
}
- if (server && gnutls_session_ticket_enable_server(conn->tls_session,
- &conn->quic_table->creds->tls_ticket_key) != GNUTLS_E_SUCCESS) {
- return TLS_CALLBACK_ERR;
+ if (server) {
+ ret = ngtcp2_crypto_gnutls_configure_server_session(conn->tls_session);
+ } else {
+ ret = ngtcp2_crypto_gnutls_configure_client_session(conn->tls_session);
}
-
- int ret = ngtcp2_crypto_gnutls_configure_server_session(conn->tls_session);
- if (ret != 0) {
+ if (ret != NGTCP2_NO_ERROR) {
return TLS_CALLBACK_ERR;
}
- gnutls_record_set_max_early_data_size(conn->tls_session, 0xffffffffu);
-
conn->conn_ref = (nc_conn_ref_placeholder_t) {
.get_conn = get_conn,
.user_data = conn
};
- _Static_assert(sizeof(nc_conn_ref_placeholder_t) == sizeof(ngtcp2_crypto_conn_ref), "invalid placeholder for conn_ref");
+ _Static_assert(sizeof(nc_conn_ref_placeholder_t) == sizeof(ngtcp2_crypto_conn_ref),
+ "invalid placeholder for conn_ref");
gnutls_session_set_ptr(conn->tls_session, &conn->conn_ref);
- if (server) {
- gnutls_anti_replay_enable(conn->tls_session, conn->quic_table->creds->tls_anti_replay);
-
- }
- if (gnutls_credentials_set(conn->tls_session, GNUTLS_CRD_CERTIFICATE,
- conn->quic_table->creds->tls_cert) != GNUTLS_E_SUCCESS) {
- return TLS_CALLBACK_ERR;
- }
-
- gnutls_alpn_set_protocols(conn->tls_session, &doq_alpn, 1, GNUTLS_ALPN_MANDATORY);
-
ngtcp2_conn_set_tls_native_handle(conn->conn, conn->tls_session);
return KNOT_EOK;
@@ -477,54 +226,6 @@ uint16_t knot_quic_conn_local_port(knot_quic_conn_t *conn)
return ((const struct sockaddr_in6 *)path->local.addr)->sin6_port;
}
-_public_
-void knot_quic_conn_pin(knot_quic_conn_t *conn, uint8_t *pin, size_t *pin_size, bool local)
-{
- if (conn == NULL) {
- goto error;
- }
-
- const gnutls_datum_t *data = NULL;
- if (local) {
- data = gnutls_certificate_get_ours(conn->tls_session);
- } else {
- unsigned count = 0;
- data = gnutls_certificate_get_peers(conn->tls_session, &count);
- if (count == 0) {
- goto error;
- }
- }
- if (data == NULL) {
- goto error;
- }
-
- gnutls_x509_crt_t cert;
- int ret = gnutls_x509_crt_init(&cert);
- if (ret != GNUTLS_E_SUCCESS) {
- goto error;
- }
-
- ret = gnutls_x509_crt_import(cert, data, GNUTLS_X509_FMT_DER);
- if (ret != GNUTLS_E_SUCCESS) {
- gnutls_x509_crt_deinit(cert);
- goto error;
- }
-
- ret = gnutls_x509_crt_get_key_id(cert, GNUTLS_KEYID_USE_SHA256, pin, pin_size);
- if (ret != GNUTLS_E_SUCCESS) {
- gnutls_x509_crt_deinit(cert);
- goto error;
- }
-
- gnutls_x509_crt_deinit(cert);
-
- return;
-error:
- if (pin_size != NULL) {
- *pin_size = 0;
- }
-}
-
static void knot_quic_rand_cb(uint8_t *dest, size_t destlen, const ngtcp2_rand_ctx *rand_ctx)
{
(void)rand_ctx;
@@ -602,18 +303,8 @@ static int handshake_completed_cb(ngtcp2_conn *conn, void *user_data)
ctx->flags |= KNOT_QUIC_CONN_HANDSHAKE_DONE;
if (!ngtcp2_conn_is_server(conn)) {
- knot_quic_creds_t *creds = ctx->quic_table->creds;
- if (creds->peer_pin_len == 0) {
- return 0;
- }
- uint8_t pin[KNOT_QUIC_PIN_LEN];
- size_t pin_size = sizeof(pin);
- knot_quic_conn_pin(ctx, pin, &pin_size, false);
- if (pin_size != creds->peer_pin_len ||
- const_time_memcmp(pin, creds->peer_pin, pin_size) != 0) {
- return NGTCP2_ERR_CALLBACK_FAILURE;
- }
- return 0;
+ return knot_tls_pin_check(ctx->tls_session, ctx->quic_table->creds)
+ == KNOT_EOK ? 0 : NGTCP2_ERR_CALLBACK_FAILURE;
}
if (gnutls_session_ticket_send(ctx->tls_session, 1, 0) != GNUTLS_E_SUCCESS) {
@@ -945,6 +636,10 @@ int knot_quic_handle(knot_quic_table_t *table, knot_quic_reply_t *reply,
goto finish;
}
+ if (conn != NULL && (conn->flags & KNOT_QUIC_CONN_BLOCKED)) {
+ return KNOT_EOK;
+ }
+
ngtcp2_path path;
path.remote.addr = (struct sockaddr *)reply->ip_rem;
path.remote.addrlen = addr_len((struct sockaddr_in6 *)reply->ip_rem);
@@ -1249,6 +944,8 @@ int knot_quic_send(knot_quic_table_t *quic_table, knot_quic_conn_t *conn,
return KNOT_EINVAL;
} else if (reply->handle_ret < 0) {
return reply->handle_ret;
+ } else if ((conn->flags & KNOT_QUIC_CONN_BLOCKED) && !(flags & KNOT_QUIC_SEND_IGNORE_BLOCKED)) {
+ return KNOT_EOK;
} else if (reply->handle_ret > 0) {
return send_special(quic_table, reply, conn);
} else if (conn == NULL) {
diff --git a/src/libknot/quic/quic.h b/src/libknot/quic/quic.h
index 29a02e0..b4acb33 100644
--- a/src/libknot/quic/quic.h
+++ b/src/libknot/quic/quic.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -29,20 +29,18 @@
#include <netinet/in.h>
#include "libknot/quic/quic_conn.h"
-
-#define KNOT_QUIC_PIN_LEN 32
+#include "libknot/quic/tls_common.h"
#define KNOT_QUIC_HANDLE_RET_CLOSE 2000
// RFC 9250
#define KNOT_QUIC_ERR_EXCESSIVE_LOAD 0x4
-struct gnutls_x509_crt_int;
-struct knot_quic_creds;
struct knot_quic_session;
typedef enum {
KNOT_QUIC_SEND_IGNORE_LASTBYTE = (1 << 0),
+ KNOT_QUIC_SEND_IGNORE_BLOCKED = (1 << 1),
} knot_quic_send_flag_t;
typedef struct knot_quic_reply {
@@ -87,45 +85,6 @@ struct knot_quic_session *knot_quic_session_save(knot_quic_conn_t *conn);
int knot_quic_session_load(knot_quic_conn_t *conn, struct knot_quic_session *session);
/*!
- * \brief Init server TLS certificate for DoQ.
- *
- * \param cert_file X509 certificate PEM file path/name (NULL if auto-generated).
- * \param key_file Key PEM file path/name.
- *
- * \return Initialized creds.
- */
-struct knot_quic_creds *knot_quic_init_creds(const char *cert_file,
- const char *key_file);
-
-/*!
- * \brief Init peer TLS certificate for DoQ.
- *
- * \param local_creds Local credentials if server.
- * \param peer_pin Optional peer certificate pin to check.
- * \param peer_pin_len Length of the peer pin. Set 0 if not specified.
- *
- * \return Initialized creds.
- */
-struct knot_quic_creds *knot_quic_init_creds_peer(const struct knot_quic_creds *local_creds,
- const uint8_t *peer_pin,
- uint8_t peer_pin_len);
-
-/*!
- * \brief Gets the certificate from credentials.
- *
- * \param creds TLS credentials.
- * \param cert Output certificate.
- *
- * \return KNOT_E*
- */
-int knot_quic_creds_cert(struct knot_quic_creds *creds, struct gnutls_x509_crt_int **cert);
-
-/*!
- * \brief Deinit server TLS certificate for DoQ.
- */
-void knot_quic_free_creds(struct knot_quic_creds *creds);
-
-/*!
* \brief Returns timeout value for the connection.
*/
uint64_t quic_conn_get_timeout(knot_quic_conn_t *conn);
@@ -156,18 +115,6 @@ uint32_t knot_quic_conn_rtt(knot_quic_conn_t *conn);
uint16_t knot_quic_conn_local_port(knot_quic_conn_t *conn);
/*!
- * \brief Gets local or remote certificate pin.
- *
- * \note Zero output pin_size value means no certificate available or error.
- *
- * \param conn QUIC connection.
- * \param pin Output certificate pin.
- * \param pin_size Input size of the storage / output size of the stored pin.
- * \param local Local or remote certificate indication.
- */
-void knot_quic_conn_pin(knot_quic_conn_t *conn, uint8_t *pin, size_t *pin_size, bool local);
-
-/*!
* \brief Create new outgoing QUIC connection.
*
* \param table QUIC connections table to be added to.
diff --git a/src/libknot/quic/quic_conn.c b/src/libknot/quic/quic_conn.c
index 6616573..1a3b9df 100644
--- a/src/libknot/quic/quic_conn.c
+++ b/src/libknot/quic/quic_conn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -29,6 +29,7 @@
#include "libdnssec/random.h"
#include "libknot/attribute.h"
#include "libknot/error.h"
+#include "libknot/quic/tls_common.h"
#include "libknot/quic/quic.h"
#include "libknot/xdp/tcp_iobuf.h"
#include "libknot/wire.h"
@@ -45,7 +46,7 @@ static int cmp_expiry_heap_nodes(void *c1, void *c2)
_public_
knot_quic_table_t *knot_quic_table_new(size_t max_conns, size_t max_ibufs, size_t max_obufs,
- size_t udp_payload, struct knot_quic_creds *creds)
+ size_t udp_payload, struct knot_creds *creds)
{
size_t table_size = max_conns * BUCKETS_PER_CONNS;
@@ -61,9 +62,17 @@ knot_quic_table_t *knot_quic_table_new(size_t max_conns, size_t max_ibufs, size_
res->obufs_max = max_obufs;
res->udp_payload_limit = udp_payload;
+ int ret = gnutls_priority_init2(&res->priority, KNOT_TLS_PRIORITIES, NULL,
+ GNUTLS_PRIORITY_INIT_DEF_APPEND);
+ if (ret != GNUTLS_E_SUCCESS) {
+ free(res);
+ return NULL;
+ }
+
res->expiry_heap = malloc(sizeof(struct heap));
if (res->expiry_heap == NULL || !heap_init(res->expiry_heap, cmp_expiry_heap_nodes, 0)) {
free(res->expiry_heap);
+ gnutls_priority_deinit(res->priority);
free(res);
return NULL;
}
@@ -92,6 +101,7 @@ void knot_quic_table_free(knot_quic_table_t *table)
assert(table->ibufs_size == 0);
assert(table->obufs_size == 0);
+ gnutls_priority_deinit(table->priority);
heap_deinit(table->expiry_heap);
free(table->expiry_heap);
free(table);
@@ -118,7 +128,9 @@ void knot_quic_table_sweep(knot_quic_table_t *table, struct knot_quic_reply *swe
while (!EMPTY_HEAP(table->expiry_heap)) {
knot_quic_conn_t *c = *(knot_quic_conn_t **)HHEAD(table->expiry_heap);
- if (table->usage > table->max_conns) {
+ if ((c->flags & KNOT_QUIC_CONN_BLOCKED)) {
+ break; // highly inprobable
+ } else if (table->usage > table->max_conns) {
knot_sweep_stats_incr(stats, KNOT_SWEEP_CTR_LIMIT_CONN);
send_excessive_load(c, sweep_reply, table);
knot_quic_table_rem(c, table);
@@ -476,7 +488,7 @@ uint8_t *knot_quic_stream_add_data(knot_quic_conn_t *conn, int64_t stream_id,
add_tail((list_t *)&s->outbufs, (node_t *)obuf);
s->obufs_size += obuf->len;
conn->obufs_size += obuf->len;
- conn->quic_table->obufs_size += obuf->len;
+ ATOMIC_ADD(conn->quic_table->obufs_size, obuf->len);
return obuf->buf + prefix;
}
@@ -497,7 +509,7 @@ void knot_quic_stream_ack_data(knot_quic_conn_t *conn, int64_t stream_id,
assert(HEAD(*obs) != first); // help CLANG analyzer understand what rem_node did and that further usage of HEAD(*obs) is safe
s->obufs_size -= first->len;
conn->obufs_size -= first->len;
- conn->quic_table->obufs_size -= first->len;
+ ATOMIC_SUB(conn->quic_table->obufs_size, first->len);
s->first_offset += first->len;
free(first);
if (s->unsent_obuf == first) {
@@ -556,6 +568,19 @@ void knot_quic_stream_mark_sent(knot_quic_conn_t *conn, int64_t stream_id,
}
_public_
+void knot_quic_conn_block(knot_quic_conn_t *conn, bool block)
+{
+ if (block) {
+ conn->flags |= KNOT_QUIC_CONN_BLOCKED;
+ conn->next_expiry = UINT64_MAX;
+ conn_heap_reschedule(conn, conn->quic_table);
+ } else {
+ conn->flags &= ~KNOT_QUIC_CONN_BLOCKED;
+ quic_conn_mark_used(conn, conn->quic_table);
+ }
+}
+
+_public_
void knot_quic_cleanup(knot_quic_conn_t *conns[], size_t n_conns)
{
for (size_t i = 0; i < n_conns; i++) {
diff --git a/src/libknot/quic/quic_conn.h b/src/libknot/quic/quic_conn.h
index 64ead51..49e0631 100644
--- a/src/libknot/quic/quic_conn.h
+++ b/src/libknot/quic/quic_conn.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -29,10 +29,13 @@
#include <stdint.h>
#include <sys/uio.h>
+#include "contrib/atomic.h"
+
#define MAX_STREAMS_PER_CONN 10 // this limits the number of un-finished streams per conn (i.e. if response has been recvd with FIN, it doesn't count)
+struct gnutls_priority_st;
struct ngtcp2_cid; // declaration taken from wherever in ngtcp2
-struct knot_quic_creds;
+struct knot_creds;
struct knot_quic_reply;
struct knot_sweep_stats;
@@ -70,6 +73,7 @@ typedef struct {
typedef enum {
KNOT_QUIC_CONN_HANDSHAKE_DONE = (1 << 0),
KNOT_QUIC_CONN_SESSION_TAKEN = (1 << 1),
+ KNOT_QUIC_CONN_BLOCKED = (1 << 2),
} knot_quic_conn_flag_t;
typedef struct knot_quic_conn {
@@ -111,12 +115,13 @@ typedef struct knot_quic_table {
size_t ibufs_max;
size_t obufs_max;
size_t ibufs_size;
- size_t obufs_size;
+ knot_atomic_size_t obufs_size;
size_t udp_payload_limit; // for simplicity not distinguishing IPv4/6
void (*log_cb)(const char *);
const char *qlog_dir;
uint64_t hash_secret[4];
- struct knot_quic_creds *creds;
+ struct knot_creds *creds;
+ struct gnutls_priority_st *priority;
struct heap *expiry_heap;
knot_quic_cid_t *conns[];
} knot_quic_table_t;
@@ -133,7 +138,7 @@ typedef struct knot_quic_table {
* \return Allocated table, or NULL.
*/
knot_quic_table_t *knot_quic_table_new(size_t max_conns, size_t max_ibufs, size_t max_obufs,
- size_t udp_payload, struct knot_quic_creds *creds);
+ size_t udp_payload, struct knot_creds *creds);
/*!
* \brief Free QUIC table including its contents.
@@ -306,6 +311,11 @@ void knot_quic_stream_mark_sent(knot_quic_conn_t *conn, int64_t stream_id,
size_t amount_sent);
/*!
+ * \brief (Un)block the connection for incoming/outgoing traffic and sweep.
+ */
+void knot_quic_conn_block(knot_quic_conn_t *conn, bool block);
+
+/*!
* \brief Free rest of resources of closed conns.
*
* \param conns Array with recently used conns (possibly NULLs).
diff --git a/src/libknot/quic/tls.c b/src/libknot/quic/tls.c
new file mode 100644
index 0000000..01172df
--- /dev/null
+++ b/src/libknot/quic/tls.c
@@ -0,0 +1,262 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#include <arpa/inet.h>
+#include <assert.h>
+#include <gnutls/crypto.h>
+#include <gnutls/gnutls.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+
+#include "libknot/quic/tls.h"
+
+#include "contrib/macros.h"
+#include "contrib/time.h"
+#include "libknot/attribute.h"
+#include "libknot/error.h"
+#include "libknot/quic/tls_common.h"
+
+_public_
+knot_tls_ctx_t *knot_tls_ctx_new(struct knot_creds *creds, unsigned io_timeout,
+ unsigned hs_timeout, bool server)
+{
+ knot_tls_ctx_t *res = calloc(1, sizeof(*res));
+ if (res == NULL) {
+ return NULL;
+ }
+
+ res->creds = creds;
+ res->handshake_timeout = hs_timeout;
+ res->io_timeout = io_timeout;
+ res->server = server;
+
+ int ret = gnutls_priority_init2(&res->priority, KNOT_TLS_PRIORITIES, NULL,
+ GNUTLS_PRIORITY_INIT_DEF_APPEND);
+ if (ret != GNUTLS_E_SUCCESS) {
+ free(res);
+ return NULL;
+ }
+
+ return res;
+}
+
+_public_
+void knot_tls_ctx_free(knot_tls_ctx_t *ctx)
+{
+ if (ctx != NULL) {
+ gnutls_priority_deinit(ctx->priority);
+ free(ctx);
+ }
+}
+
+_public_
+knot_tls_conn_t *knot_tls_conn_new(knot_tls_ctx_t *ctx, int sock_fd)
+{
+ knot_tls_conn_t *res = calloc(1, sizeof(*res));
+ if (res == NULL) {
+ return NULL;
+ }
+ res->ctx = ctx;
+ res->fd = sock_fd;
+
+ int ret = knot_tls_session(&res->session, ctx->creds, ctx->priority,
+ "\x03""dot", false, ctx->server);
+ if (ret != KNOT_EOK) {
+ goto fail;
+ }
+
+ gnutls_transport_set_int(res->session, sock_fd); // Use internal recv/send/poll.
+ gnutls_handshake_set_timeout(res->session, ctx->handshake_timeout);
+
+ return res;
+fail:
+ gnutls_deinit(res->session);
+ free(res);
+ return NULL;
+}
+
+_public_
+void knot_tls_conn_del(knot_tls_conn_t *conn)
+{
+ if (conn != NULL && conn->fd_clones_count-- < 1) {
+ gnutls_deinit(conn->session);
+ free(conn);
+ }
+}
+
+_public_
+int knot_tls_handshake(knot_tls_conn_t *conn, bool oneshot)
+{
+ if (conn->flags & (KNOT_TLS_CONN_HANDSHAKE_DONE | KNOT_TLS_CONN_BLOCKED)) {
+ return KNOT_EOK;
+ }
+
+ /* Check if NB socket is writeable. */
+ int opt;
+ socklen_t opt_len = sizeof(opt);
+ int ret = getsockopt(conn->fd, SOL_SOCKET, SO_ERROR, &opt, &opt_len);
+ if (ret < 0 || opt == ECONNREFUSED) {
+ return KNOT_NET_ECONNECT;
+ }
+
+ gnutls_record_set_timeout(conn->session, conn->ctx->io_timeout);
+ do {
+ ret = gnutls_handshake(conn->session);
+ } while (!oneshot && ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+ switch (ret) {
+ case GNUTLS_E_SUCCESS:
+ conn->flags |= KNOT_TLS_CONN_HANDSHAKE_DONE;
+ return knot_tls_pin_check(conn->session, conn->ctx->creds);
+ case GNUTLS_E_TIMEDOUT:
+ return KNOT_NET_ETIMEOUT;
+ default:
+ if (gnutls_error_is_fatal(ret) == 0) {
+ return KNOT_EAGAIN;
+ } else {
+ return KNOT_NET_EHSHAKE;
+ }
+ }
+}
+
+#define TIMEOUT_CTX_INIT \
+ struct timespec begin, end; \
+ if (*timeout_ptr > 0) { \
+ clock_gettime(CLOCK_MONOTONIC, &begin); \
+ }
+
+#define TIMEOUT_CTX_UPDATE \
+ if (*timeout_ptr > 0) { \
+ clock_gettime(CLOCK_MONOTONIC, &end); \
+ int running_ms = time_diff_ms(&begin, &end); \
+ *timeout_ptr = MAX(*timeout_ptr - running_ms, 0); \
+ }
+
+static ssize_t recv_data(knot_tls_conn_t *conn, void *data, size_t size, int *timeout_ptr)
+{
+ gnutls_record_set_timeout(conn->session, *timeout_ptr);
+
+ size_t total = 0;
+ ssize_t res;
+ while (total < size) {
+ TIMEOUT_CTX_INIT
+ res = gnutls_record_recv(conn->session, data + total, size - total);
+ if (res > 0) {
+ total += res;
+ } else if (res == 0) {
+ return KNOT_ECONNRESET;
+ } else if (gnutls_error_is_fatal(res) != 0) {
+ return KNOT_NET_ERECV;
+ }
+ TIMEOUT_CTX_UPDATE
+ gnutls_record_set_timeout(conn->session, *timeout_ptr);
+ }
+
+ assert(total == size);
+ return size;
+}
+
+_public_
+ssize_t knot_tls_recv_dns(knot_tls_conn_t *conn, void *data, size_t size)
+{
+ if (conn == NULL || data == NULL) {
+ return KNOT_EINVAL;
+ }
+
+ if (conn->flags & KNOT_TLS_CONN_BLOCKED) {
+ return 0;
+ }
+
+ ssize_t ret = knot_tls_handshake(conn, false);
+ if (ret != KNOT_EOK) {
+ return ret;
+ }
+
+ int timeout = conn->ctx->io_timeout;
+
+ uint16_t msg_len;
+ ret = recv_data(conn, &msg_len, sizeof(msg_len), &timeout);
+ if (ret != sizeof(msg_len)) {
+ return ret;
+ }
+
+ msg_len = ntohs(msg_len);
+ if (size < msg_len) {
+ return KNOT_ESPACE;
+ }
+
+ ret = recv_data(conn, data, msg_len, &timeout);
+ if (ret != size) {
+ return ret;
+ }
+
+ return msg_len;
+}
+
+_public_
+ssize_t knot_tls_send_dns(knot_tls_conn_t *conn, void *data, size_t size)
+{
+ if (conn == NULL || data == NULL || size > UINT16_MAX) {
+ return KNOT_EINVAL;
+ }
+
+ ssize_t res = knot_tls_handshake(conn, false);
+ if (res != KNOT_EOK) {
+ return res;
+ }
+
+ // Enable data buffering.
+ gnutls_record_cork(conn->session);
+
+ uint16_t msg_len = htons(size);
+ res = gnutls_record_send(conn->session, &msg_len, sizeof(msg_len));
+ if (res != sizeof(msg_len)) {
+ return KNOT_NET_ESEND;
+ }
+
+ res = gnutls_record_send(conn->session, data, size);
+ if (res != size) {
+ return KNOT_NET_ESEND;
+ }
+
+ int timeout = conn->ctx->io_timeout, *timeout_ptr = &timeout;
+ gnutls_record_set_timeout(conn->session, timeout);
+
+ // Send the buffered data.
+ while (gnutls_record_check_corked(conn->session) > 0) {
+ TIMEOUT_CTX_INIT
+ int ret = gnutls_record_uncork(conn->session, 0);
+ if (ret < 0 && gnutls_error_is_fatal(ret) != 0) {
+ return ret == GNUTLS_E_TIMEDOUT ? KNOT_ETIMEOUT :
+ KNOT_NET_ESEND;
+ }
+ TIMEOUT_CTX_UPDATE
+ gnutls_record_set_timeout(conn->session, timeout);
+ }
+
+ return size;
+}
+
+_public_
+void knot_tls_conn_block(knot_tls_conn_t *conn, bool block)
+{
+ if (block) {
+ conn->flags |= KNOT_TLS_CONN_BLOCKED;
+ } else {
+ conn->flags &= ~KNOT_TLS_CONN_BLOCKED;
+ }
+}
diff --git a/src/libknot/quic/tls.h b/src/libknot/quic/tls.h
new file mode 100644
index 0000000..7801ca8
--- /dev/null
+++ b/src/libknot/quic/tls.h
@@ -0,0 +1,135 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+/*!
+ * \file
+ *
+ * \brief Pure TLS functionality.
+ *
+ * \addtogroup quic
+ * @{
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <sys/types.h>
+
+struct gnutls_priority_st;
+
+typedef enum {
+ KNOT_TLS_CONN_HANDSHAKE_DONE = (1 << 0),
+ KNOT_TLS_CONN_SESSION_TAKEN = (1 << 1), // unused, to be implemeted later
+ KNOT_TLS_CONN_BLOCKED = (1 << 2),
+} knot_tls_conn_flag_t;
+
+typedef struct knot_tls_ctx {
+ struct knot_creds *creds;
+ struct gnutls_priority_st *priority;
+ unsigned handshake_timeout;
+ unsigned io_timeout;
+ bool server;
+} knot_tls_ctx_t;
+
+typedef struct knot_tls_conn {
+ struct gnutls_session_int *session;
+ struct knot_tls_ctx *ctx;
+ int fd;
+ unsigned fd_clones_count;
+ knot_tls_conn_flag_t flags;
+} knot_tls_conn_t;
+
+/*!
+ * \brief Initialize DoT answering context.
+ *
+ * \param creds Certificate credentials.
+ * \param io_timeout Connections' IO-timeout (in milliseconds).
+ * \param hs_timeout Handshake timeout (in milliseconds).
+ * \param server Server context (otherwise client).
+ *
+ * \return Initialized context or NULL.
+ */
+knot_tls_ctx_t *knot_tls_ctx_new(struct knot_creds *creds, unsigned io_timeout,
+ unsigned hs_timeout, bool server);
+
+/*!
+ * \brief Free DoT answering context.
+ */
+void knot_tls_ctx_free(knot_tls_ctx_t *ctx);
+
+/*!
+ * \brief Initialize DoT connection.
+ *
+ * \param ctx DoT answering context.
+ * \param sock_fd Opened TCP connection socket.
+ *
+ * \return Connection struct or NULL.
+ */
+knot_tls_conn_t *knot_tls_conn_new(knot_tls_ctx_t *ctx, int sock_fd);
+
+/*!
+ * \brief Free DoT connection struct.
+ *
+ * \note Doesn't close the TCP connection socket.
+ */
+void knot_tls_conn_del(knot_tls_conn_t *conn);
+
+/*!
+ * \brief Perform the TLS handshake (via gnutls_handshake()).
+ *
+ * \note This is also done by the recv/send functions.
+ *
+ * \param conn DoT connection.
+ * \param oneshot If set, don't wait untill the handshake is finished.
+ *
+ * \retval KNOT_EOK Handshake successfully finished.
+ * \retval KNOT_EGAIN Handshake not finished, call me again.
+ * \retval KNOT_NET_EHSHAKE Handshake error.
+ * \retval KNOT_NET_ECONNECT Socket not connected.
+ */
+int knot_tls_handshake(knot_tls_conn_t *conn, bool oneshot);
+
+/*!
+ * \brief Receive a size-word-prefixed DNS message.
+ *
+ * \param conn DoT connection.
+ * \param data Destination buffer.
+ * \param size Maximum buffer size.
+ *
+ * \return Either the DNS message size received or negative error code.
+ *
+ * \note The two-byte-size-prefix is stripped upon reception, not stored to the buffer.
+ */
+ssize_t knot_tls_recv_dns(knot_tls_conn_t *conn, void *data, size_t size);
+
+/*!
+ * \brief Send a size-word-prefixed DNS message.
+ *
+ * \param conn DoT connection.
+ * \param data DNS payload.
+ * \param size Payload size.
+ *
+ * \return Either exactly 'size' or a negative error code.
+ */
+ssize_t knot_tls_send_dns(knot_tls_conn_t *conn, void *data, size_t size);
+
+/*!
+ * \brief Set or unset the conection's BLOCKED flag.
+ */
+void knot_tls_conn_block(knot_tls_conn_t *conn, bool block);
+
+/*! @} */
diff --git a/src/libknot/quic/tls_common.c b/src/libknot/quic/tls_common.c
new file mode 100644
index 0000000..d1647d8
--- /dev/null
+++ b/src/libknot/quic/tls_common.c
@@ -0,0 +1,472 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#include <fcntl.h>
+#include <gnutls/crypto.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <time.h>
+#include <unistd.h>
+
+#include "libknot/quic/tls_common.h"
+
+#include "contrib/atomic.h"
+#include "contrib/sockaddr.h"
+#include "contrib/string.h"
+#include "libknot/attribute.h"
+#include "libknot/error.h"
+
+typedef struct knot_creds {
+ knot_atomic_ptr_t cert_creds; // Current credentials.
+ gnutls_certificate_credentials_t cert_creds_prev; // Previous credentials (for pending connections).
+ gnutls_anti_replay_t tls_anti_replay;
+ gnutls_datum_t tls_ticket_key;
+ bool peer;
+ uint8_t peer_pin_len;
+ uint8_t peer_pin[];
+} knot_creds_t;
+
+static int tls_anti_replay_db_add_func(void *dbf, time_t exp_time,
+ const gnutls_datum_t *key,
+ const gnutls_datum_t *data)
+{
+ return 0;
+}
+
+static void tls_session_ticket_key_free(gnutls_datum_t *ticket)
+{
+ memzero(ticket->data, ticket->size);
+ gnutls_free(ticket->data);
+}
+
+static int self_key(gnutls_x509_privkey_t *privkey, const char *key_file)
+{
+ gnutls_datum_t data = { 0 };
+
+ int ret = gnutls_x509_privkey_init(privkey);
+ if (ret != GNUTLS_E_SUCCESS) {
+ return ret;
+ }
+
+ int fd = open(key_file, O_RDONLY);
+ if (fd != -1) {
+ struct stat stat;
+ if (fstat(fd, &stat) != 0 ||
+ (data.data = gnutls_malloc(stat.st_size)) == NULL ||
+ read(fd, data.data, stat.st_size) != stat.st_size) {
+ ret = GNUTLS_E_KEYFILE_ERROR;
+ goto finish;
+ }
+
+ data.size = stat.st_size;
+ ret = gnutls_x509_privkey_import_pkcs8(*privkey, &data, GNUTLS_X509_FMT_PEM,
+ NULL, GNUTLS_PKCS_PLAIN);
+ if (ret != GNUTLS_E_SUCCESS) {
+ goto finish;
+ }
+ } else {
+ ret = gnutls_x509_privkey_generate(*privkey, GNUTLS_PK_EDDSA_ED25519,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_ED25519), 0);
+ if (ret != GNUTLS_E_SUCCESS) {
+ goto finish;
+ }
+
+ ret = gnutls_x509_privkey_export2_pkcs8(*privkey, GNUTLS_X509_FMT_PEM, NULL,
+ GNUTLS_PKCS_PLAIN, &data);
+ if (ret != GNUTLS_E_SUCCESS ||
+ (fd = open(key_file, O_WRONLY | O_CREAT, 0600)) == -1 ||
+ write(fd, data.data, data.size) != data.size) {
+ ret = GNUTLS_E_KEYFILE_ERROR;
+ goto finish;
+ }
+ }
+
+finish:
+ if (fd > -1) {
+ close(fd);
+ }
+ gnutls_free(data.data);
+ if (ret != GNUTLS_E_SUCCESS) {
+ gnutls_x509_privkey_deinit(*privkey);
+ *privkey = NULL;
+ }
+ return ret;
+}
+
+static int self_signed_cert(gnutls_certificate_credentials_t tls_cert,
+ const char *key_file)
+{
+ gnutls_x509_privkey_t privkey = NULL;
+ gnutls_x509_crt_t cert = NULL;
+
+ char *hostname = sockaddr_hostname();
+ if (hostname == NULL) {
+ return GNUTLS_E_MEMORY_ERROR;
+ }
+
+ int ret;
+ uint8_t serial[16];
+ gnutls_rnd(GNUTLS_RND_NONCE, serial, sizeof(serial));
+ // Clear the left-most bit to be a positive number (two's complement form).
+ serial[0] &= 0x7F;
+
+#define CHK(cmd) if ((ret = (cmd)) != GNUTLS_E_SUCCESS) { goto finish; }
+#define NOW_DAYS(days) (time(NULL) + 24 * 3600 * (days))
+
+ CHK(self_key(&privkey, key_file));
+
+ CHK(gnutls_x509_crt_init(&cert));
+ CHK(gnutls_x509_crt_set_version(cert, 3));
+ CHK(gnutls_x509_crt_set_serial(cert, serial, sizeof(serial)));
+ CHK(gnutls_x509_crt_set_activation_time(cert, NOW_DAYS(-1)));
+ CHK(gnutls_x509_crt_set_expiration_time(cert, NOW_DAYS(10 * 365)));
+ CHK(gnutls_x509_crt_set_dn_by_oid(cert, GNUTLS_OID_X520_COMMON_NAME, 0,
+ hostname, strlen(hostname)));
+ CHK(gnutls_x509_crt_set_key(cert, privkey));
+ CHK(gnutls_x509_crt_sign2(cert, cert, privkey, GNUTLS_DIG_SHA512, 0));
+
+ ret = gnutls_certificate_set_x509_key(tls_cert, &cert, 1, privkey);
+
+finish:
+ free(hostname);
+ gnutls_x509_crt_deinit(cert);
+ gnutls_x509_privkey_deinit(privkey);
+
+ return ret;
+}
+
+_public_
+struct knot_creds *knot_creds_init(const char *key_file, const char *cert_file)
+{
+ knot_creds_t *creds = calloc(1, sizeof(*creds));
+ if (creds == NULL) {
+ return NULL;
+ }
+
+ int ret = knot_creds_update(creds, key_file, cert_file);
+ if (ret != KNOT_EOK) {
+ goto fail;
+ }
+
+ ret = gnutls_anti_replay_init(&creds->tls_anti_replay);
+ if (ret != GNUTLS_E_SUCCESS) {
+ goto fail;
+ }
+ gnutls_anti_replay_set_add_function(creds->tls_anti_replay, tls_anti_replay_db_add_func);
+ gnutls_anti_replay_set_ptr(creds->tls_anti_replay, NULL);
+
+ ret = gnutls_session_ticket_key_generate(&creds->tls_ticket_key);
+ if (ret != GNUTLS_E_SUCCESS) {
+ goto fail;
+ }
+
+ return creds;
+fail:
+ knot_creds_free(creds);
+ return NULL;
+}
+
+_public_
+struct knot_creds *knot_creds_init_peer(const struct knot_creds *local_creds,
+ const uint8_t *peer_pin,
+ uint8_t peer_pin_len)
+{
+ knot_creds_t *creds = calloc(1, sizeof(*creds) + peer_pin_len);
+ if (creds == NULL) {
+ return NULL;
+ }
+
+ if (local_creds != NULL) {
+ creds->peer = true;
+ creds->cert_creds = ATOMIC_GET(local_creds->cert_creds);
+ } else {
+ gnutls_certificate_credentials_t new_creds;
+ int ret = gnutls_certificate_allocate_credentials(&new_creds);
+ if (ret != GNUTLS_E_SUCCESS) {
+ free(creds);
+ return NULL;
+ }
+ creds->cert_creds = new_creds;
+ }
+
+ if (peer_pin_len > 0 && peer_pin != NULL) {
+ memcpy(creds->peer_pin, peer_pin, peer_pin_len);
+ creds->peer_pin_len = peer_pin_len;
+ }
+
+ return creds;
+}
+
+static int creds_cert(gnutls_certificate_credentials_t creds,
+ struct gnutls_x509_crt_int **cert)
+{
+ gnutls_x509_crt_t *certs;
+ unsigned cert_count;
+ int ret = gnutls_certificate_get_x509_crt(creds, 0, &certs, &cert_count);
+ if (ret == GNUTLS_E_SUCCESS) {
+ if (cert_count == 0) {
+ gnutls_x509_crt_deinit(*certs);
+ return KNOT_ENOENT;
+ }
+ *cert = *certs;
+ free(certs);
+ return KNOT_EOK;
+ }
+ return KNOT_ERROR;
+}
+
+static int creds_changed(gnutls_certificate_credentials_t creds,
+ gnutls_certificate_credentials_t prev,
+ bool self_cert, bool *changed)
+{
+ if (creds == NULL || prev == NULL) {
+ *changed = true;
+ return KNOT_EOK;
+ }
+
+ gnutls_x509_crt_t cert = NULL, cert_prev = NULL;
+
+ int ret = creds_cert(creds, &cert);
+ if (ret != KNOT_EOK) {
+ goto failed;
+ }
+ ret = creds_cert(prev, &cert_prev);
+ if (ret != KNOT_EOK) {
+ goto failed;
+ }
+
+ if (self_cert) {
+ uint8_t pin[KNOT_TLS_PIN_LEN], pin_prev[KNOT_TLS_PIN_LEN];
+ size_t pin_size = sizeof(pin), pin_prev_size = sizeof(pin_prev);
+
+ ret = gnutls_x509_crt_get_key_id(cert, GNUTLS_KEYID_USE_SHA256,
+ pin, &pin_size);
+ if (ret != KNOT_EOK) {
+ goto failed;
+ }
+ ret = gnutls_x509_crt_get_key_id(cert_prev, GNUTLS_KEYID_USE_SHA256,
+ pin_prev, &pin_prev_size);
+ if (ret != KNOT_EOK) {
+ goto failed;
+ }
+
+ *changed = (pin_size != pin_prev_size) ||
+ memcmp(pin, pin_prev, pin_size) != 0;
+ } else {
+ *changed = (gnutls_x509_crt_equals(cert, cert_prev) == 0);
+ }
+
+ ret = KNOT_EOK;
+failed:
+ gnutls_x509_crt_deinit(cert);
+ gnutls_x509_crt_deinit(cert_prev);
+
+ return ret;
+}
+
+_public_
+int knot_creds_update(struct knot_creds *creds, const char *key_file, const char *cert_file)
+{
+ if (creds == NULL || key_file == NULL) {
+ return KNOT_EINVAL;
+ }
+
+ gnutls_certificate_credentials_t new_creds;
+ int ret = gnutls_certificate_allocate_credentials(&new_creds);
+ if (ret != GNUTLS_E_SUCCESS) {
+ return KNOT_ENOMEM;
+ }
+
+ if (cert_file != NULL) {
+ ret = gnutls_certificate_set_x509_key_file(new_creds,
+ cert_file, key_file,
+ GNUTLS_X509_FMT_PEM);
+ } else {
+ ret = self_signed_cert(new_creds, key_file);
+ }
+ if (ret != GNUTLS_E_SUCCESS) {
+ gnutls_certificate_free_credentials(new_creds);
+ return KNOT_EFILE;
+ }
+
+ bool changed = false;
+ ret = creds_changed(new_creds, ATOMIC_GET(creds->cert_creds),
+ cert_file == NULL, &changed);
+ if (ret != KNOT_EOK) {
+ gnutls_certificate_free_credentials(new_creds);
+ return ret;
+ }
+
+ if (changed) {
+ if (creds->cert_creds_prev != NULL) {
+ gnutls_certificate_free_credentials(creds->cert_creds_prev);
+ }
+ creds->cert_creds_prev = ATOMIC_XCHG(creds->cert_creds, new_creds);
+ } else {
+ gnutls_certificate_free_credentials(new_creds);
+ }
+
+ return KNOT_EOK;
+}
+
+_public_
+int knot_creds_cert(struct knot_creds *creds, struct gnutls_x509_crt_int **cert)
+{
+ if (creds == NULL || cert == NULL) {
+ return KNOT_EINVAL;
+ }
+
+ return creds_cert(ATOMIC_GET(creds->cert_creds), cert);
+}
+
+_public_
+void knot_creds_free(struct knot_creds *creds)
+{
+ if (creds == NULL) {
+ return;
+ }
+
+ if (!creds->peer && creds->cert_creds != NULL) {
+ gnutls_certificate_free_credentials(creds->cert_creds);
+ if (creds->cert_creds_prev != NULL) {
+ gnutls_certificate_free_credentials(creds->cert_creds_prev);
+ }
+ }
+ gnutls_anti_replay_deinit(creds->tls_anti_replay);
+ if (creds->tls_ticket_key.data != NULL) {
+ tls_session_ticket_key_free(&creds->tls_ticket_key);
+ }
+ free(creds);
+}
+
+_public_
+int knot_tls_session(struct gnutls_session_int **session,
+ struct knot_creds *creds,
+ struct gnutls_priority_st *priority,
+ const char *alpn,
+ bool early_data,
+ bool server)
+{
+ if (session == NULL || creds == NULL || priority == NULL || alpn == NULL) {
+ return KNOT_EINVAL;
+ }
+
+ gnutls_init_flags_t flags = GNUTLS_NO_SIGNAL;
+ if (early_data) {
+ flags |= GNUTLS_ENABLE_EARLY_DATA;
+#ifdef ENABLE_QUIC // Next flags aren't available in older GnuTLS versions.
+ flags |= GNUTLS_NO_AUTO_SEND_TICKET | GNUTLS_NO_END_OF_EARLY_DATA;
+#endif
+ }
+
+ int ret = gnutls_init(session, (server ? GNUTLS_SERVER : GNUTLS_CLIENT) | flags);
+ if (ret == GNUTLS_E_SUCCESS) {
+ gnutls_certificate_send_x509_rdn_sequence(*session, 1);
+ gnutls_certificate_server_set_request(*session, GNUTLS_CERT_REQUEST);
+ ret = gnutls_priority_set(*session, priority);
+ }
+ if (server && ret == GNUTLS_E_SUCCESS) {
+ ret = gnutls_session_ticket_enable_server(*session, &creds->tls_ticket_key);
+ }
+ if (ret == GNUTLS_E_SUCCESS) {
+ const gnutls_datum_t alpn_datum = { (void *)&alpn[1], alpn[0] };
+ gnutls_alpn_set_protocols(*session, &alpn_datum, 1, GNUTLS_ALPN_MANDATORY);
+ if (early_data) {
+ gnutls_record_set_max_early_data_size(*session, 0xffffffffu);
+ }
+ if (server) {
+ gnutls_anti_replay_enable(*session, creds->tls_anti_replay);
+ }
+ ret = gnutls_credentials_set(*session, GNUTLS_CRD_CERTIFICATE,
+ ATOMIC_GET(creds->cert_creds));
+ }
+ if (ret != GNUTLS_E_SUCCESS) {
+ gnutls_deinit(*session);
+ *session = NULL;
+ }
+ return ret == GNUTLS_E_SUCCESS ? KNOT_EOK : KNOT_ERROR;
+}
+
+_public_
+void knot_tls_pin(struct gnutls_session_int *session, uint8_t *pin,
+ size_t *pin_size, bool local)
+{
+ if (session == NULL) {
+ goto error;
+ }
+
+ const gnutls_datum_t *data = NULL;
+ if (local) {
+ data = gnutls_certificate_get_ours(session);
+ } else {
+ unsigned count = 0;
+ data = gnutls_certificate_get_peers(session, &count);
+ if (count == 0) {
+ goto error;
+ }
+ }
+ if (data == NULL) {
+ goto error;
+ }
+
+ gnutls_x509_crt_t cert;
+ int ret = gnutls_x509_crt_init(&cert);
+ if (ret != GNUTLS_E_SUCCESS) {
+ goto error;
+ }
+
+ ret = gnutls_x509_crt_import(cert, data, GNUTLS_X509_FMT_DER);
+ if (ret != GNUTLS_E_SUCCESS) {
+ gnutls_x509_crt_deinit(cert);
+ goto error;
+ }
+
+ ret = gnutls_x509_crt_get_key_id(cert, GNUTLS_KEYID_USE_SHA256, pin, pin_size);
+ if (ret != GNUTLS_E_SUCCESS) {
+ gnutls_x509_crt_deinit(cert);
+ goto error;
+ }
+
+ gnutls_x509_crt_deinit(cert);
+
+ return;
+error:
+ if (pin_size != NULL) {
+ *pin_size = 0;
+ }
+}
+
+_public_
+int knot_tls_pin_check(struct gnutls_session_int *session,
+ struct knot_creds *creds)
+{
+ if (creds->peer_pin_len == 0) {
+ return KNOT_EOK;
+ }
+
+ uint8_t pin[KNOT_TLS_PIN_LEN];
+ size_t pin_size = sizeof(pin);
+ knot_tls_pin(session, pin, &pin_size, false);
+ if (pin_size != creds->peer_pin_len ||
+ const_time_memcmp(pin, creds->peer_pin, pin_size) != 0) {
+ return KNOT_EBADCERTKEY;
+ }
+
+ return KNOT_EOK;
+}
diff --git a/src/libknot/quic/tls_common.h b/src/libknot/quic/tls_common.h
new file mode 100644
index 0000000..934f256
--- /dev/null
+++ b/src/libknot/quic/tls_common.h
@@ -0,0 +1,134 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+/*!
+ * \file
+ *
+ * \brief Credentials handling common to QUIC and TLS.
+ *
+ * \addtogroup quic
+ * @{
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+
+#define KNOT_TLS_PIN_LEN 32
+#define KNOT_TLS_PRIORITIES "-VERS-ALL:+VERS-TLS1.3:" \
+ "-GROUP-ALL:+GROUP-X25519:+GROUP-SECP256R1:" \
+ "+GROUP-SECP384R1:+GROUP-SECP521R1"
+
+struct gnutls_priority_st;
+struct gnutls_session_int;
+struct gnutls_x509_crt_int;
+struct knot_creds;
+
+/*!
+ * \brief Init server TLS key and certificate for DoQ.
+ *
+ * \param key_file Key PEM file path/name.
+ * \param cert_file X509 certificate PEM file path/name (NULL if auto-generated).
+ *
+ * \return Initialized creds.
+ */
+struct knot_creds *knot_creds_init(const char *key_file, const char *cert_file);
+
+/*!
+ * \brief Init peer TLS key and certificate for DoQ.
+ *
+ * \param local_creds Local credentials if server.
+ * \param peer_pin Optional peer certificate pin to check.
+ * \param peer_pin_len Length of the peer pin. Set 0 if not specified.
+ *
+ * \return Initialized creds.
+ */
+struct knot_creds *knot_creds_init_peer(const struct knot_creds *local_creds,
+ const uint8_t *peer_pin,
+ uint8_t peer_pin_len);
+
+/*!
+ * \brief Load new server TLS key and certificate for DoQ.
+ *
+ * \param creds Server credentials where key/cert pair will be updated.
+ * \param key_file Key PEM file path/name.
+ * \param cert_file X509 certificate PEM file path/name (NULL if auto-generated).
+ *
+ * \return KNOT_E*
+ */
+int knot_creds_update(struct knot_creds *creds, const char *key_file, const char *cert_file);
+
+/*!
+ * \brief Gets the certificate from credentials.
+ *
+ * \param creds TLS credentials.
+ * \param cert Output certificate.
+ *
+ * \return KNOT_E*
+ */
+int knot_creds_cert(struct knot_creds *creds, struct gnutls_x509_crt_int **cert);
+
+/*!
+ * \brief Deinit server TLS certificate for DoQ.
+ */
+void knot_creds_free(struct knot_creds *creds);
+
+/*!
+ * \brief Initialize GnuTLS session with credentials, ALPN, etc.
+ *
+ * \param session Out: initialized GnuTLS session struct.
+ * \param creds Certificate credentials.
+ * \param priority Session priority configuration.
+ * \param alpn ALPN string, first byte is the string length.
+ * \param early_data Allow early data.
+ * \param server Should be server session (otherwise client).
+ *
+ * \return KNOT_E*
+ */
+int knot_tls_session(struct gnutls_session_int **session,
+ struct knot_creds *creds,
+ struct gnutls_priority_st *priority,
+ const char *alpn,
+ bool early_data,
+ bool server);
+
+/*!
+ * \brief Gets local or remote certificate pin.
+ *
+ * \note Zero output pin_size value means no certificate available or error.
+ *
+ * \param session TLS connection.
+ * \param pin Output certificate pin.
+ * \param pin_size Input size of the storage / output size of the stored pin.
+ * \param local Local or remote certificate indication.
+ */
+void knot_tls_pin(struct gnutls_session_int *session, uint8_t *pin,
+ size_t *pin_size, bool local);
+
+/*!
+ * \brief Checks remote certificate pin in the session against credentials.
+ *
+ * \param session TLS connection.
+ * \param creds TLS credentials.
+ *
+ * \return KNOT_EOK or KNOT_EBADCERTKEY
+ */
+int knot_tls_pin_check(struct gnutls_session_int *session,
+ struct knot_creds *creds);
+
+/*! @} */
diff --git a/src/libknot/rrset-dump.c b/src/libknot/rrset-dump.c
index 51a52dd..9fac99d 100644
--- a/src/libknot/rrset-dump.c
+++ b/src/libknot/rrset-dump.c
@@ -508,10 +508,46 @@ static void wire_len_data_encode_to_str(rrset_dump_params_t *p,
}
}
-static void wire_data_omit(rrset_dump_params_t *p)
+static void wire_data_omit(rrset_dump_params_t *p,
+ const size_t len_len,
+ const bool print_len)
{
CHECK_PRET
+ size_t in_len;
+
+ // First len_len bytes are data length.
+ CHECK_INMAX(len_len)
+
+ // Read data length.
+ switch (len_len) {
+ case 0:
+ in_len = p->in_max;
+ break;
+ case 2:
+ in_len = knot_wire_read_u16(p->in);
+ break;
+ default:
+ p->ret = -1;
+ return;
+ }
+
+ // If required print data length.
+ if (print_len == true && len_len != 0) {
+ assert(len_len == 2);
+ wire_num16_to_str(p);
+ CHECK_PRET
+
+ // If something follows, print one space character.
+ if (in_len > 0) {
+ dump_string(p, " ");
+ CHECK_PRET
+ }
+ } else {
+ p->in += len_len;
+ p->in_max -= len_len;
+ }
+
const char *omit_message = "[omitted]";
const size_t omlen = strlen(omit_message);
@@ -527,8 +563,8 @@ static void wire_data_omit(rrset_dump_params_t *p)
STRING_TERMINATION
- p->in += p->in_max;
- p->in_max = 0;
+ p->in += in_len;
+ p->in_max -= in_len;
}
static void wire_dnskey_to_tag(rrset_dump_params_t *p)
@@ -1540,6 +1576,12 @@ static void wire_svcparam_to_str(rrset_dump_params_t *p)
case KNOT_SVCB_PARAM_IPV6HINT:
wire_value_list_to_str(p, wire_ipv6_to_str, p->in + val_len);
break;
+ case KNOT_SVCB_PARAM_DOHPATH:
+ wire_text_to_str(p, val_len, NULL, true, false);
+ break;
+ case KNOT_SVCB_PARAM_OHTTP:
+ p->ret = -1; // must not have value
+ break;
default:
wire_text_to_str(p, val_len, NULL, true, false);
}
@@ -1729,6 +1771,10 @@ static void dnskey_info(const uint8_t *rdata,
#define DUMP_TYPE wire_type_to_str(p); CHECK_RET(p);
#define DUMP_HEX wire_data_encode_to_str(p, &hex_encode, \
&hex_encode_alloc); CHECK_RET(p);
+#define DUMP_OMIT wire_data_omit(p, 0, false); CHECK_RET(p);
+#define DUMP_HEX_OMIT if (p->style->hide_crypto) { DUMP_OMIT; } \
+ else if (p->style->wrap) { WRAP_INIT; DUMP_HEX; WRAP_END; } \
+ else { DUMP_HEX; }
#define DUMP_BASE64 wire_data_encode_to_str(p, &knot_base64_encode, \
&knot_base64_encode_alloc); CHECK_RET(p);
#define DUMP_HASH wire_len_data_encode_to_str(p, &knot_base32hex_encode, \
@@ -1737,9 +1783,9 @@ static void dnskey_info(const uint8_t *rdata,
1, false, "-"); CHECK_RET(p);
#define DUMP_TSIG_DGST wire_len_data_encode_to_str(p, &knot_base64_encode, \
2, true, ""); CHECK_RET(p);
+#define DUMP_TSIG_OMIT wire_data_omit(p, 2, true); CHECK_RET(p);
#define DUMP_TSIG_DATA wire_len_data_encode_to_str(p, &num48_encode, \
2, true, ""); CHECK_RET(p);
-#define DUMP_OMIT wire_data_omit(p); CHECK_RET(p);
#define DUMP_KEY_OMIT wire_dnskey_to_tag(p); CHECK_RET(p);
#define DUMP_TEXT wire_text_to_str1(p, true, false); CHECK_RET(p);
#define DUMP_LONG_TEXT wire_text_to_str(p, p->in_max, NULL, true, false); CHECK_RET(p);
@@ -1917,16 +1963,17 @@ static int dump_naptr(DUMP_PARAMS)
static int dump_cert(DUMP_PARAMS)
{
- if (p->style->wrap) {
- DUMP_NUM16; DUMP_SPACE;
- DUMP_NUM16; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE; WRAP_INIT;
+ DUMP_NUM16; DUMP_SPACE;
+ DUMP_NUM16; DUMP_SPACE;
+ DUMP_NUM8; DUMP_SPACE;
+
+ if (p->style->hide_crypto) {
+ DUMP_OMIT;
+ } else if (p->style->wrap) {
+ WRAP_INIT;
DUMP_BASE64;
WRAP_END;
} else {
- DUMP_NUM16; DUMP_SPACE;
- DUMP_NUM16; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE;
DUMP_BASE64;
}
@@ -1976,34 +2023,19 @@ static int dump_apl(DUMP_PARAMS)
static int dump_ds(DUMP_PARAMS)
{
- if (p->style->wrap) {
- DUMP_NUM16; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE; WRAP_INIT;
- DUMP_HEX;
- WRAP_END;
- } else {
- DUMP_NUM16; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE;
- DUMP_HEX;
- }
+ DUMP_NUM16; DUMP_SPACE;
+ DUMP_NUM8; DUMP_SPACE;
+ DUMP_NUM8; DUMP_SPACE;
+ DUMP_HEX_OMIT;
DUMP_END;
}
static int dump_sshfp(DUMP_PARAMS)
{
- if (p->style->wrap) {
- DUMP_NUM8; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE; WRAP_INIT;
- DUMP_HEX;
- WRAP_END;
- } else {
- DUMP_NUM8; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE;
- DUMP_HEX;
- }
+ DUMP_NUM8; DUMP_SPACE;
+ DUMP_NUM8; DUMP_SPACE;
+ DUMP_HEX_OMIT;
DUMP_END;
}
@@ -2061,7 +2093,9 @@ static int dump_nsec(DUMP_PARAMS)
static int dump_dhcid(DUMP_PARAMS)
{
- if (p->style->wrap) {
+ if (p->style->hide_crypto) {
+ DUMP_OMIT;
+ } else if (p->style->wrap) {
WRAP_INIT;
DUMP_BASE64;
WRAP_END;
@@ -2106,18 +2140,10 @@ static int dump_nsec3param(DUMP_PARAMS)
static int dump_tlsa(DUMP_PARAMS)
{
- if (p->style->wrap) {
- DUMP_NUM8; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE; WRAP_INIT;
- DUMP_HEX;
- WRAP_END;
- } else {
- DUMP_NUM8; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE;
- DUMP_HEX;
- }
+ DUMP_NUM8; DUMP_SPACE;
+ DUMP_NUM8; DUMP_SPACE;
+ DUMP_NUM8; DUMP_SPACE;
+ DUMP_HEX_OMIT;
DUMP_END;
}
@@ -2133,18 +2159,10 @@ static int dump_csync(DUMP_PARAMS)
static int dump_zonemd(DUMP_PARAMS)
{
- if (p->style->wrap) {
- DUMP_NUM32; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE; WRAP_INIT;
- DUMP_HEX;
- WRAP_END;
- } else {
- DUMP_NUM32; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE;
- DUMP_NUM8; DUMP_SPACE;
- DUMP_HEX;
- }
+ DUMP_NUM32; DUMP_SPACE;
+ DUMP_NUM8; DUMP_SPACE;
+ DUMP_NUM8; DUMP_SPACE;
+ DUMP_HEX_OMIT;
DUMP_END;
}
@@ -2178,7 +2196,11 @@ static int dump_tsig(DUMP_PARAMS)
DUMP_DNAME; DUMP_SPACE;
DUMP_NUM48; DUMP_SPACE;
DUMP_NUM16; DUMP_SPACE; WRAP_INIT;
- DUMP_TSIG_DGST; WRAP_LINE;
+ if (p->style->hide_crypto) {
+ DUMP_TSIG_OMIT; WRAP_LINE;
+ } else {
+ DUMP_TSIG_DGST; WRAP_LINE;
+ }
DUMP_NUM16; DUMP_SPACE;
DUMP_TSIG_RCODE; DUMP_SPACE;
DUMP_TSIG_DATA;
@@ -2187,7 +2209,11 @@ static int dump_tsig(DUMP_PARAMS)
DUMP_DNAME; DUMP_SPACE;
DUMP_NUM48; DUMP_SPACE;
DUMP_NUM16; DUMP_SPACE;
- DUMP_TSIG_DGST; DUMP_SPACE;
+ if (p->style->hide_crypto) {
+ DUMP_TSIG_OMIT; DUMP_SPACE;
+ } else {
+ DUMP_TSIG_DGST; DUMP_SPACE;
+ }
DUMP_NUM16; DUMP_SPACE;
DUMP_TSIG_RCODE; DUMP_SPACE;
DUMP_TSIG_DATA;
@@ -2263,6 +2289,7 @@ static int txt_dump_data(rrset_dump_params_t *p, uint16_t type)
return dump_mx(p);
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
+ case KNOT_RRTYPE_WALLET:
return dump_txt(p);
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
diff --git a/src/libknot/rrtype/tsig.c b/src/libknot/rrtype/tsig.c
index 83f8436..0002963 100644
--- a/src/libknot/rrtype/tsig.c
+++ b/src/libknot/rrtype/tsig.c
@@ -245,7 +245,11 @@ int knot_tsig_rdata_set_other_data(knot_rrset_t *tsig, uint16_t len,
_public_
const knot_dname_t *knot_tsig_rdata_alg_name(const knot_rrset_t *tsig)
{
- return knot_rdataset_at(&tsig->rrs, 0)->data;
+ const knot_rdata_t *rr_data = knot_rdataset_at(&tsig->rrs, 0);
+ if (!rr_data) {
+ return NULL;
+ }
+ return rr_data->data;
}
_public_
diff --git a/src/libknot/version.h b/src/libknot/version.h
index cca89f7..8e21f49 100644
--- a/src/libknot/version.h
+++ b/src/libknot/version.h
@@ -17,8 +17,8 @@
#pragma once
#define KNOT_VERSION_MAJOR 3
-#define KNOT_VERSION_MINOR 3
-#define KNOT_VERSION_PATCH 0x07
+#define KNOT_VERSION_MINOR 4
+#define KNOT_VERSION_PATCH 0x00
#define KNOT_VERSION_HEX ((KNOT_VERSION_MAJOR << 16) | \
(KNOT_VERSION_MINOR << 8) | \
diff --git a/src/libknot/xdp/Makefile.in b/src/libknot/xdp/Makefile.in
index 8aa77ce..f065f3e 100644
--- a/src/libknot/xdp/Makefile.in
+++ b/src/libknot/xdp/Makefile.in
@@ -270,6 +270,8 @@ infodir = @infodir@
install_sh = @install_sh@
libbpf_CFLAGS = @libbpf_CFLAGS@
libbpf_LIBS = @libbpf_LIBS@
+libdbus_CFLAGS = @libdbus_CFLAGS@
+libdbus_LIBS = @libdbus_LIBS@
libdir = @libdir@
libdnssec_SONAME = @libdnssec_SONAME@
libdnssec_SOVERSION = @libdnssec_SOVERSION@
@@ -281,8 +283,6 @@ libfstrm_CFLAGS = @libfstrm_CFLAGS@
libfstrm_LIBS = @libfstrm_LIBS@
libidn2_CFLAGS = @libidn2_CFLAGS@
libidn2_LIBS = @libidn2_LIBS@
-libidn_CFLAGS = @libidn_CFLAGS@
-libidn_LIBS = @libidn_LIBS@
libknot_SONAME = @libknot_SONAME@
libknot_SOVERSION = @libknot_SOVERSION@
libknot_VERSION_INFO = @libknot_VERSION_INFO@
@@ -300,7 +300,6 @@ libprotobuf_c_CFLAGS = @libprotobuf_c_CFLAGS@
libprotobuf_c_LIBS = @libprotobuf_c_LIBS@
liburcu_CFLAGS = @liburcu_CFLAGS@
liburcu_LIBS = @liburcu_LIBS@
-liburcu_PKGCONFIG = @liburcu_PKGCONFIG@
libxdp_CFLAGS = @libxdp_CFLAGS@
libxdp_LIBS = @libxdp_LIBS@
libzscanner_SONAME = @libzscanner_SONAME@
diff --git a/src/libknot/xdp/bpf-user.c b/src/libknot/xdp/bpf-user.c
index 449dffe..4963e3d 100644
--- a/src/libknot/xdp/bpf-user.c
+++ b/src/libknot/xdp/bpf-user.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -289,13 +289,13 @@ int kxsk_iface_new(const char *if_name, unsigned if_queue, knot_xdp_load_bpf_t l
ret = get_bpf_maps(ret, iface);
}
if (ret < 0) {
- free(iface);
+ kxsk_iface_free(iface);
return ret;
}
knot_xdp_mode_t mode = knot_eth_xdp_mode(iface->if_index);
if (mode == KNOT_XDP_MODE_NONE) {
- free(iface);
+ kxsk_iface_free(iface);
return KNOT_ENOTSUP;
}
diff --git a/src/libknot/xdp/bpf-user.h b/src/libknot/xdp/bpf-user.h
index 37aac61..b76c9d6 100644
--- a/src/libknot/xdp/bpf-user.h
+++ b/src/libknot/xdp/bpf-user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -60,8 +60,10 @@ struct kxsk_umem {
/*! The memory frames. */
struct umem_frame *frames;
+ /*! Size of RX and TX rings. */
+ uint16_t ring_size;
/*! The number of free frames (for TX). */
- uint32_t tx_free_count;
+ uint16_t tx_free_count;
/*! Stack of indices of the free frames (for TX). */
uint16_t tx_free_indices[];
};
@@ -82,15 +84,15 @@ struct knot_xdp_socket {
/*! If non-NULL, it's a mocked socket with this send function. */
int (*send_mock)(struct knot_xdp_socket *, const knot_xdp_msg_t[], uint32_t, uint32_t *);
- /*! The kernel has to be woken up by a syscall indication. */
- bool kernel_needs_wakeup;
-
/*! The limit of frame size. */
unsigned frame_limit;
/*! Mapping of interface indices to VLAN tags. */
uint16_t *vlan_map;
uint16_t vlan_map_max;
+
+ /*! Enabled preferred busy polling. */
+ bool busy_poll;
};
/*!
diff --git a/src/libknot/xdp/tcp.c b/src/libknot/xdp/tcp.c
index 94d445c..d219db9 100644
--- a/src/libknot/xdp/tcp.c
+++ b/src/libknot/xdp/tcp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -287,169 +287,162 @@ static void conn_update(knot_tcp_conn_t *conn, const knot_xdp_msg_t *msg)
}
_public_
-int knot_tcp_recv(knot_tcp_relay_t *relays, knot_xdp_msg_t msgs[], uint32_t msg_count,
+int knot_tcp_recv(knot_tcp_relay_t *relay, knot_xdp_msg_t *msg,
knot_tcp_table_t *tcp_table, knot_tcp_table_t *syn_table,
knot_tcp_ignore_t ignore)
{
- if (msg_count == 0) {
- return KNOT_EOK;
- }
- if (relays == NULL || msgs == NULL || tcp_table == NULL) {
+ if (relay == NULL || msg == NULL || tcp_table == NULL) {
return KNOT_EINVAL;
}
- memset(relays, 0, msg_count * sizeof(*relays));
+ memset(relay, 0, sizeof(*relay));
- knot_tcp_relay_t *relay = relays;
int ret = KNOT_EOK;
- for (knot_xdp_msg_t *msg = msgs; msg != msgs + msg_count && ret == KNOT_EOK; msg++) {
- if (!(msg->flags & KNOT_XDP_MSG_TCP)) {
- continue;
- }
+ if (!(msg->flags & KNOT_XDP_MSG_TCP)) {
+ return KNOT_EOK;
+ }
- uint64_t conn_hash = 0;
- knot_tcp_conn_t **pconn = tcp_table_lookup(&msg->ip_from, &msg->ip_to,
- &conn_hash, tcp_table);
- knot_tcp_conn_t *conn = *pconn;
- bool seq_ack_match = check_seq_ack(msg, conn);
- if (seq_ack_match) {
- assert(conn->mss != 0);
- conn_update(conn, msg);
-
- rem_align_pointers(conn, tcp_table);
- rem_node(tcp_conn_node(conn));
- add_tail(tcp_table_timeout(tcp_table), tcp_conn_node(conn));
-
- if (msg->flags & KNOT_XDP_MSG_ACK) {
- conn->acked = msg->ackno;
- knot_tcp_outbufs_ack(&conn->outbufs, msg->ackno, &tcp_table->outbufs_total);
- }
+ uint64_t conn_hash = 0;
+ knot_tcp_conn_t **pconn = tcp_table_lookup(&msg->ip_from, &msg->ip_to,
+ &conn_hash, tcp_table);
+ knot_tcp_conn_t *conn = *pconn;
+ bool seq_ack_match = check_seq_ack(msg, conn);
+ if (seq_ack_match) {
+ assert(conn->mss != 0);
+ conn_update(conn, msg);
+
+ rem_align_pointers(conn, tcp_table);
+ rem_node(tcp_conn_node(conn));
+ add_tail(tcp_table_timeout(tcp_table), tcp_conn_node(conn));
+
+ if (msg->flags & KNOT_XDP_MSG_ACK) {
+ conn->acked = msg->ackno;
+ knot_tcp_outbufs_ack(&conn->outbufs, msg->ackno, &tcp_table->outbufs_total);
}
+ }
- relay->msg = msg;
- relay->conn = conn;
+ relay->msg = msg;
+ relay->conn = conn;
- // process incoming data
- if (seq_ack_match && (msg->flags & KNOT_XDP_MSG_ACK) && msg->payload.iov_len > 0) {
- if (!(ignore & XDP_TCP_IGNORE_DATA_ACK)) {
- relay->auto_answer = KNOT_XDP_MSG_ACK;
- }
- ret = knot_tcp_inbufs_upd(&conn->inbuf, msg->payload, false,
- &relay->inbf, &tcp_table->inbufs_total);
- if (ret != KNOT_EOK) {
- break;
- }
- if (conn->inbuf.iov_len > 0 && tcp_table->next_ibuf == NULL) {
- tcp_table->next_ibuf = conn;
- }
+ // process incoming data
+ if (seq_ack_match && (msg->flags & KNOT_XDP_MSG_ACK) && msg->payload.iov_len > 0) {
+ if (!(ignore & XDP_TCP_IGNORE_DATA_ACK)) {
+ relay->auto_answer = KNOT_XDP_MSG_ACK;
+ }
+ ret = knot_tcp_inbufs_upd(&conn->inbuf, msg->payload, false,
+ &relay->inbf, &tcp_table->inbufs_total);
+ if (ret != KNOT_EOK) {
+ return ret;
+ }
+ if (conn->inbuf.iov_len > 0 && tcp_table->next_ibuf == NULL) {
+ tcp_table->next_ibuf = conn;
}
+ }
- // process TCP connection state
- switch (msg->flags & (KNOT_XDP_MSG_SYN | KNOT_XDP_MSG_ACK |
- KNOT_XDP_MSG_FIN | KNOT_XDP_MSG_RST)) {
- case KNOT_XDP_MSG_SYN:
- case (KNOT_XDP_MSG_SYN | KNOT_XDP_MSG_ACK):
- if (conn == NULL) {
- bool synack = (msg->flags & KNOT_XDP_MSG_ACK);
-
- knot_tcp_table_t *add_table = tcp_table;
- if (syn_table != NULL && !synack) {
- add_table = syn_table;
- if (*tcp_table_lookup(&msg->ip_from, &msg->ip_to, &conn_hash, syn_table) != NULL) {
- break;
- }
- }
+ // process TCP connection state
+ switch (msg->flags & (KNOT_XDP_MSG_SYN | KNOT_XDP_MSG_ACK |
+ KNOT_XDP_MSG_FIN | KNOT_XDP_MSG_RST)) {
+ case KNOT_XDP_MSG_SYN:
+ case (KNOT_XDP_MSG_SYN | KNOT_XDP_MSG_ACK):
+ if (conn == NULL) {
+ bool synack = (msg->flags & KNOT_XDP_MSG_ACK);
- ret = tcp_table_add(msg, conn_hash, add_table, &relay->conn);
- if (ret == KNOT_EOK) {
- relay->action = synack ? XDP_TCP_ESTABLISH : XDP_TCP_SYN;
- if (!(ignore & XDP_TCP_IGNORE_ESTABLISH)) {
- relay->auto_answer = synack ? KNOT_XDP_MSG_ACK : (KNOT_XDP_MSG_SYN | KNOT_XDP_MSG_ACK);
- }
-
- conn = relay->conn;
- conn->state = synack ? XDP_TCP_NORMAL: XDP_TCP_ESTABLISHING;
- conn->mss = MAX(msg->mss, 536); // minimal MSS, most importantly not zero!
- conn->window_scale = msg->win_scale;
- conn_update(conn, msg);
- if (!synack) {
- conn->acked = dnssec_random_uint32_t();
- conn->ackno = conn->acked;
- }
+ knot_tcp_table_t *add_table = tcp_table;
+ if (syn_table != NULL) {
+ if (synack) {
+ break; // creating conn based on SYN+ACK is only for kxdpgun, disallow in knotd
+ }
+ add_table = syn_table;
+ if (*tcp_table_lookup(&msg->ip_from, &msg->ip_to, &conn_hash, syn_table) != NULL) {
+ break;
}
- } else {
- relay->auto_answer = KNOT_XDP_MSG_ACK;
}
- break;
- case KNOT_XDP_MSG_ACK:
- if (!seq_ack_match) {
- if (syn_table != NULL && msg->payload.iov_len == 0 &&
- (pconn = tcp_table_lookup(&msg->ip_from, &msg->ip_to, &conn_hash, syn_table)) != NULL &&
- (conn = *pconn) != NULL && check_seq_ack(msg, conn)) {
- // move conn from syn_table to tcp_table
- tcp_table_remove(pconn, syn_table);
- tcp_table_insert(conn, conn_hash, tcp_table);
- relay->conn = conn;
- relay->action = XDP_TCP_ESTABLISH;
- conn->state = XDP_TCP_NORMAL;
- conn_update(conn, msg);
+
+ ret = tcp_table_add(msg, conn_hash, add_table, &relay->conn);
+ if (ret == KNOT_EOK) {
+ relay->action = synack ? XDP_TCP_ESTABLISH : XDP_TCP_SYN;
+ if (!(ignore & XDP_TCP_IGNORE_ESTABLISH)) {
+ relay->auto_answer = synack ? KNOT_XDP_MSG_ACK : (KNOT_XDP_MSG_SYN | KNOT_XDP_MSG_ACK);
}
- } else {
- switch (conn->state) {
- case XDP_TCP_NORMAL:
- case XDP_TCP_CLOSING1: // just a mess, ignore
- break;
- case XDP_TCP_ESTABLISHING:
- conn->state = XDP_TCP_NORMAL;
- relay->action = XDP_TCP_ESTABLISH;
- break;
- case XDP_TCP_CLOSING2:
- if (msg->payload.iov_len == 0) { // otherwise ignore close
- tcp_table_remove(pconn, tcp_table);
- relay->answer = XDP_TCP_FREE;
- }
- break;
+
+ conn = relay->conn;
+ conn->state = synack ? XDP_TCP_NORMAL: XDP_TCP_ESTABLISHING;
+ conn->mss = MAX(msg->mss, 536); // minimal MSS, most importantly not zero!
+ conn->window_scale = msg->win_scale;
+ conn_update(conn, msg);
+ if (!synack) {
+ conn->acked = dnssec_random_uint32_t();
+ conn->ackno = conn->acked;
}
}
- break;
- case (KNOT_XDP_MSG_FIN | KNOT_XDP_MSG_ACK):
- if (ignore & XDP_TCP_IGNORE_FIN) {
- break;
+ } else {
+ relay->auto_answer = KNOT_XDP_MSG_ACK;
+ }
+ break;
+ case KNOT_XDP_MSG_ACK:
+ if (!seq_ack_match) {
+ if (syn_table != NULL && msg->payload.iov_len == 0 && conn == NULL &&
+ (pconn = tcp_table_lookup(&msg->ip_from, &msg->ip_to, &conn_hash, syn_table)) != NULL &&
+ (conn = *pconn) != NULL && check_seq_ack(msg, conn)) {
+ // move conn from syn_table to tcp_table
+ tcp_table_remove(pconn, syn_table);
+ tcp_table_insert(conn, conn_hash, tcp_table);
+ relay->conn = conn;
+ relay->action = XDP_TCP_ESTABLISH;
+ conn->state = XDP_TCP_NORMAL;
+ conn_update(conn, msg);
}
- if (!seq_ack_match) {
- if (conn != NULL) {
- relay->auto_answer = KNOT_XDP_MSG_RST;
- relay->auto_seqno = msg->ackno;
- } // else ignore. It would be better and possible, but no big value for the price of CPU.
- } else {
- if (conn->state == XDP_TCP_CLOSING1) {
- relay->action = XDP_TCP_CLOSE;
- relay->auto_answer = KNOT_XDP_MSG_ACK;
- relay->answer = XDP_TCP_FREE;
+ } else {
+ switch (conn->state) {
+ case XDP_TCP_NORMAL:
+ case XDP_TCP_CLOSING1: // just a mess, ignore
+ break;
+ case XDP_TCP_ESTABLISHING:
+ conn->state = XDP_TCP_NORMAL;
+ relay->action = XDP_TCP_ESTABLISH;
+ break;
+ case XDP_TCP_CLOSING2:
+ if (msg->payload.iov_len == 0) { // otherwise ignore close
tcp_table_remove(pconn, tcp_table);
- } else if (msg->payload.iov_len == 0) { // otherwise ignore FIN
- relay->action = XDP_TCP_CLOSE;
- relay->auto_answer = KNOT_XDP_MSG_FIN | KNOT_XDP_MSG_ACK;
- conn->state = XDP_TCP_CLOSING2;
+ relay->answer = XDP_TCP_FREE;
}
+ break;
}
+ }
+ break;
+ case (KNOT_XDP_MSG_FIN | KNOT_XDP_MSG_ACK):
+ if (ignore & XDP_TCP_IGNORE_FIN) {
break;
- case KNOT_XDP_MSG_RST:
- if (conn != NULL && msg->seqno == conn->seqno) {
- relay->action = XDP_TCP_RESET;
- tcp_table_remove(pconn, tcp_table);
- relay->answer = XDP_TCP_FREE;
- } else if (conn != NULL) {
+ }
+ if (!seq_ack_match) {
+ if (conn != NULL) {
+ relay->auto_answer = KNOT_XDP_MSG_RST;
+ relay->auto_seqno = msg->ackno;
+ } // else ignore. It would be better and possible, but no big value for the price of CPU.
+ } else {
+ if (conn->state == XDP_TCP_CLOSING1) {
+ relay->action = XDP_TCP_CLOSE;
relay->auto_answer = KNOT_XDP_MSG_ACK;
+ relay->answer = XDP_TCP_FREE;
+ tcp_table_remove(pconn, tcp_table);
+ } else if (msg->payload.iov_len == 0) { // otherwise ignore FIN
+ relay->action = XDP_TCP_CLOSE;
+ relay->auto_answer = KNOT_XDP_MSG_FIN | KNOT_XDP_MSG_ACK;
+ conn->state = XDP_TCP_CLOSING2;
}
- break;
- default:
- break;
}
-
- if (!knot_tcp_relay_empty(relay)) {
- relay++;
+ break;
+ case KNOT_XDP_MSG_RST:
+ if (conn != NULL && msg->seqno == conn->seqno) {
+ relay->action = XDP_TCP_RESET;
+ tcp_table_remove(pconn, tcp_table);
+ relay->answer = XDP_TCP_FREE;
+ } else if (conn != NULL) {
+ relay->auto_answer = KNOT_XDP_MSG_ACK;
}
+ break;
+ default:
+ break;
}
return ret;
diff --git a/src/libknot/xdp/tcp.h b/src/libknot/xdp/tcp.h
index 09fe652..39a30fd 100644
--- a/src/libknot/xdp/tcp.h
+++ b/src/libknot/xdp/tcp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -148,18 +148,19 @@ knot_tcp_table_t *knot_tcp_table_new(size_t size, knot_tcp_table_t *secret_share
void knot_tcp_table_free(knot_tcp_table_t *table);
/*!
- * \brief Process received packets, prepare automatic responses (e.g. ACK), pick incoming data.
+ * \brief Process received packet, prepare automatic response (e.g. ACK), pick incoming data.
*
- * \param relays Out: relays to be filled with message/connection details.
- * \param msgs Packets received by knot_xdp_recv().
- * \param msg_count Number of received packets.
+ * \param relay Out: relay to be filled with message/connection details.
+ * \param msg Packet received by knot_xdp_recv().
* \param tcp_table Table of TCP connections.
* \param syn_table Optional: extra table for handling partially established connections.
* \param ignore Ignore specific TCP packets indication.
*
+ * \note resulting relay might be knot_tcp_relay_empty()
+ *
* \return KNOT_E*
*/
-int knot_tcp_recv(knot_tcp_relay_t *relays, knot_xdp_msg_t msgs[], uint32_t msg_count,
+int knot_tcp_recv(knot_tcp_relay_t *relay, knot_xdp_msg_t *msg,
knot_tcp_table_t *tcp_table, knot_tcp_table_t *syn_table,
knot_tcp_ignore_t ignore);
diff --git a/src/libknot/xdp/xdp.c b/src/libknot/xdp/xdp.c
index 8286884..132f5c4 100644
--- a/src/libknot/xdp/xdp.c
+++ b/src/libknot/xdp/xdp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -38,63 +38,68 @@
#include "contrib/net.h"
#define FRAME_SIZE 2048
-
-#define FRAME_COUNT_TX 2048
-#define FRAME_COUNT_RX 2048
-#define FRAME_COUNT (FRAME_COUNT_TX + FRAME_COUNT_RX)
-
-#define RING_LEN_TX FRAME_COUNT_TX
-#define RING_LEN_CQ FRAME_COUNT_TX
-#define RING_LEN_RX FRAME_COUNT_RX
-/* It's recommended that the FQ ring size >= HW RX ring size + AF_XDP RX ring size. */
-#define RING_LEN_FQ (2 * FRAME_COUNT_RX)
-
-#define ALLOC_RETRY_NUM 15
-#define ALLOC_RETRY_DELAY 20 // In nanoseconds.
-
-/* With recent compilers we statically check #defines for settings that
- * get refused by AF_XDP drivers (in current versions, at least). */
-#if (__STDC_VERSION__ >= 201112L)
-#define IS_POWER_OF_2(n) (((n) & (n - 1)) == 0)
-_Static_assert((FRAME_SIZE == 4096 || FRAME_SIZE == 2048)
- && IS_POWER_OF_2(RING_LEN_TX) && IS_POWER_OF_2(RING_LEN_RX)
- && IS_POWER_OF_2(RING_LEN_CQ) && IS_POWER_OF_2(RING_LEN_FQ)
- && FRAME_COUNT_TX <= (1 << 16) /* see tx_free_indices */
- , "Incorrect #define combination for AF_XDP.");
-#endif
+#define DEFAULT_RING_SIZE 2048
+#define RETRY_DELAY 20 // In nanoseconds.
struct umem_frame {
uint8_t bytes[FRAME_SIZE];
};
-static int configure_xsk_umem(struct kxsk_umem **out_umem, bool extra_frames)
+static bool valid_config(const knot_xdp_config_t *config)
+{
+ if (FRAME_SIZE != 2048 && FRAME_SIZE != 4096) {
+ return false;
+ }
+
+ if (config == NULL) {
+ return true;
+ }
+
+ if ((config->ring_size & (config->ring_size - 1)) != 0) {
+ return false;
+ }
+
+ return true;
+}
+
+static uint32_t ring_size(const knot_xdp_config_t *config)
+{
+ return config != NULL ? config->ring_size : DEFAULT_RING_SIZE;
+}
+
+static int configure_xsk_umem(struct kxsk_umem **out_umem, uint32_t ring_size)
{
/* Allocate memory and call driver to create the UMEM. */
struct kxsk_umem *umem = calloc(1,
offsetof(struct kxsk_umem, tx_free_indices)
- + sizeof(umem->tx_free_indices[0]) * FRAME_COUNT_TX);
+ + sizeof(umem->tx_free_indices[0]) * ring_size);
if (umem == NULL) {
return KNOT_ENOMEM;
}
+ umem->ring_size = ring_size;
- size_t frame_count = FRAME_COUNT + (extra_frames ? FRAME_COUNT_RX : 0);
+ /* It's recommended that the FQ ring size >= HW RX ring size + AF_XDP RX ring size.
+ * However, the performance is better if FQ size == AF_XDP RX size. */
+ const uint32_t FQ_SIZE = umem->ring_size;
+ const uint32_t CQ_SIZE = umem->ring_size;
+ const uint32_t FRAMES = FQ_SIZE + CQ_SIZE;
int ret = posix_memalign((void **)&umem->frames, getpagesize(),
- FRAME_SIZE * frame_count);
+ FRAME_SIZE * FRAMES);
if (ret != 0) {
free(umem);
return KNOT_ENOMEM;
}
- const struct xsk_umem_config config = {
- .fill_size = RING_LEN_FQ,
- .comp_size = RING_LEN_CQ,
+ const struct xsk_umem_config umem_config = {
+ .fill_size = FQ_SIZE,
+ .comp_size = CQ_SIZE,
.frame_size = FRAME_SIZE,
.frame_headroom = KNOT_XDP_PKT_ALIGNMENT,
};
- ret = xsk_umem__create(&umem->umem, umem->frames, FRAME_SIZE * frame_count,
- &umem->fq, &umem->cq, &config);
+ ret = xsk_umem__create(&umem->umem, umem->frames, FRAME_SIZE * FRAMES,
+ &umem->fq, &umem->cq, &umem_config);
if (ret != KNOT_EOK) {
free(umem->frames);
free(umem);
@@ -103,23 +108,23 @@ static int configure_xsk_umem(struct kxsk_umem **out_umem, bool extra_frames)
*out_umem = umem;
/* Designate the starting chunk of buffers for TX, and put them onto the stack. */
- umem->tx_free_count = FRAME_COUNT_TX;
- for (uint32_t i = 0; i < FRAME_COUNT_TX; ++i) {
+ umem->tx_free_count = CQ_SIZE;
+ for (uint32_t i = 0; i < CQ_SIZE; ++i) {
umem->tx_free_indices[i] = i;
}
/* Designate the rest of buffers for RX, and pass them to the driver. */
uint32_t idx = 0;
- ret = xsk_ring_prod__reserve(&umem->fq, frame_count - FRAME_COUNT_TX, &idx);
- if (ret != frame_count - FRAME_COUNT_TX) {
+ ret = xsk_ring_prod__reserve(&umem->fq, FQ_SIZE, &idx);
+ if (ret != FQ_SIZE) {
assert(0);
return KNOT_ERROR;
}
assert(idx == 0);
- for (uint32_t i = FRAME_COUNT_TX; i < frame_count; ++i) {
+ for (uint32_t i = CQ_SIZE; i < CQ_SIZE + FQ_SIZE; ++i) {
*xsk_ring_prod__fill_addr(&umem->fq, idx++) = i * FRAME_SIZE;
}
- xsk_ring_prod__submit(&umem->fq, frame_count - FRAME_COUNT_TX);
+ xsk_ring_prod__submit(&umem->fq, FQ_SIZE);
return KNOT_EOK;
}
@@ -131,6 +136,33 @@ static void deconfigure_xsk_umem(struct kxsk_umem *umem)
free(umem);
}
+static int enable_busypoll(int socket, unsigned timeout_us, unsigned budget)
+{
+#if defined(SO_PREFER_BUSY_POLL) && defined(SO_BUSY_POLL_BUDGET)
+ int opt_val = 1;
+ if (setsockopt(socket, SOL_SOCKET, SO_PREFER_BUSY_POLL,
+ &opt_val, sizeof(opt_val)) != 0) {
+ return knot_map_errno();
+ }
+
+ opt_val = timeout_us;
+ if (setsockopt(socket, SOL_SOCKET, SO_BUSY_POLL,
+ &opt_val, sizeof(opt_val)) != 0) {
+ return knot_map_errno();
+ }
+
+ opt_val = budget;
+ if (setsockopt(socket, SOL_SOCKET, SO_BUSY_POLL_BUDGET,
+ &opt_val, sizeof(opt_val)) != 0) {
+ return knot_map_errno();
+ }
+
+ return KNOT_EOK;
+#else
+ return KNOT_ENOTSUP;
+#endif
+}
+
static int configure_xsk_socket(struct kxsk_umem *umem,
const struct kxsk_iface *iface,
knot_xdp_socket_t **out_sock,
@@ -143,14 +175,14 @@ static int configure_xsk_socket(struct kxsk_umem *umem,
xsk_info->iface = iface;
xsk_info->umem = umem;
- uint16_t bind_flags = 0;
+ uint16_t bind_flags = XDP_USE_NEED_WAKEUP;
if (config != NULL && config->force_copy) {
bind_flags |= XDP_COPY;
}
const struct xsk_socket_config sock_conf = {
- .tx_size = RING_LEN_TX,
- .rx_size = RING_LEN_RX,
+ .tx_size = umem->ring_size,
+ .rx_size = umem->ring_size,
.libbpf_flags = XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD,
.bind_flags = bind_flags,
};
@@ -163,6 +195,17 @@ static int configure_xsk_socket(struct kxsk_umem *umem,
return ret;
}
+ if (config != NULL && config->busy_poll_budget > 0) {
+ ret = enable_busypoll(xsk_socket__fd(xsk_info->xsk),
+ config->busy_poll_timeout, config->busy_poll_budget);
+ if (ret != KNOT_EOK) {
+ xsk_socket__delete(xsk_info->xsk);
+ free(xsk_info);
+ return ret;
+ }
+ xsk_info->busy_poll = true;
+ }
+
*out_sock = xsk_info;
return KNOT_EOK;
}
@@ -172,7 +215,7 @@ int knot_xdp_init(knot_xdp_socket_t **socket, const char *if_name, int if_queue,
knot_xdp_filter_flag_t flags, uint16_t udp_port, uint16_t quic_port,
knot_xdp_load_bpf_t load_bpf, const knot_xdp_config_t *xdp_config)
{
- if (socket == NULL || if_name == NULL ||
+ if (socket == NULL || if_name == NULL || !valid_config(xdp_config) ||
(udp_port == quic_port && (flags & KNOT_XDP_FILTER_UDP) && (flags & KNOT_XDP_FILTER_QUIC)) ||
(flags & (KNOT_XDP_FILTER_UDP | KNOT_XDP_FILTER_TCP | KNOT_XDP_FILTER_QUIC)) == 0) {
return KNOT_EINVAL;
@@ -187,7 +230,7 @@ int knot_xdp_init(knot_xdp_socket_t **socket, const char *if_name, int if_queue,
/* Initialize shared packet_buffer for umem usage. */
struct kxsk_umem *umem = NULL;
- ret = configure_xsk_umem(&umem, xdp_config->extra_frames);
+ ret = configure_xsk_umem(&umem, ring_size(xdp_config));
if (ret != KNOT_EOK) {
kxsk_iface_free(iface);
return ret;
@@ -266,7 +309,7 @@ static void tx_free_relative(struct kxsk_umem *umem, uint64_t addr_relative)
{
/* The address may not point to *start* of buffer, but `/` solves that. */
uint64_t index = addr_relative / FRAME_SIZE;
- assert(index < FRAME_COUNT);
+ assert(index < umem->ring_size);
umem->tx_free_indices[umem->tx_free_count++] = index;
}
@@ -285,7 +328,7 @@ void knot_xdp_send_prepare(knot_xdp_socket_t *socket)
if (completed == 0) {
return;
}
- assert(umem->tx_free_count + completed <= FRAME_COUNT_TX);
+ assert(umem->tx_free_count + completed <= umem->ring_size);
for (uint32_t i = 0; i < completed; ++i) {
uint64_t addr_relative = *xsk_ring_cons__comp_addr(cq, idx++);
@@ -301,12 +344,13 @@ static struct umem_frame *alloc_tx_frame(knot_xdp_socket_t *socket)
return malloc(sizeof(struct umem_frame));
}
- const struct timespec delay = { .tv_nsec = ALLOC_RETRY_DELAY };
struct kxsk_umem *umem = socket->umem;
- for (int i = 0; unlikely(umem->tx_free_count == 0); i++) {
- if (i == ALLOC_RETRY_NUM) {
- return NULL;
+ const struct timespec delay = { .tv_nsec = RETRY_DELAY };
+ while (unlikely(umem->tx_free_count == 0)) {
+ if (socket->busy_poll || xsk_ring_prod__needs_wakeup(&socket->tx)) {
+ (void)sendto(xsk_socket__fd(socket->xsk), NULL, 0,
+ MSG_DONTWAIT, NULL, 0);
}
nanosleep(&delay, NULL);
knot_xdp_send_prepare(socket);
@@ -381,9 +425,7 @@ int knot_xdp_send(knot_xdp_socket_t *socket, const knot_xdp_msg_t msgs[],
}
if (unlikely(socket->send_mock != NULL)) {
int ret = socket->send_mock(socket, msgs, count, sent);
- for (uint32_t i = 0; i < count; ++i) {
- free_unsent(socket, &msgs[i]);
- }
+ knot_xdp_send_free(socket, msgs, count);
return ret;
}
@@ -393,12 +435,13 @@ int knot_xdp_send(knot_xdp_socket_t *socket, const knot_xdp_msg_t msgs[],
* and the API doesn't allow "cancelling reservations".
* Therefore we handle `socket->tx.cached_prod` by hand.
*/
- if (xsk_prod_nb_free(&socket->tx, count) < count) {
- /* This situation was sometimes observed in the emulated XDP mode. */
- for (uint32_t i = 0; i < count; ++i) {
- free_unsent(socket, &msgs[i]);
+ const struct timespec delay = { .tv_nsec = RETRY_DELAY };
+ while (unlikely(xsk_prod_nb_free(&socket->tx, count) < count)) {
+ if (socket->busy_poll || xsk_ring_prod__needs_wakeup(&socket->tx)) {
+ (void)sendto(xsk_socket__fd(socket->xsk), NULL, 0,
+ MSG_DONTWAIT, NULL, 0);
}
- return KNOT_ENOBUFS;
+ nanosleep(&delay, NULL);
}
uint32_t idx = socket->tx.cached_prod;
@@ -425,7 +468,6 @@ int knot_xdp_send(knot_xdp_socket_t *socket, const knot_xdp_msg_t msgs[],
assert(*sent <= count);
socket->tx.cached_prod = idx;
xsk_ring_prod__submit(&socket->tx, *sent);
- socket->kernel_needs_wakeup = true;
return KNOT_EOK;
}
@@ -446,34 +488,19 @@ int knot_xdp_send_finish(knot_xdp_socket_t *socket)
return KNOT_EINVAL;
}
- /* Trigger sending queued packets. */
- if (!socket->kernel_needs_wakeup) {
+ if (!socket->busy_poll && !xsk_ring_prod__needs_wakeup(&socket->tx)) {
return KNOT_EOK;
}
int ret = sendto(xsk_socket__fd(socket->xsk), NULL, 0, MSG_DONTWAIT, NULL, 0);
- const bool is_ok = (ret >= 0);
- // List of "safe" errors taken from
- // https://github.com/torvalds/linux/blame/master/samples/bpf/xdpsock_user.c
- const bool is_again = !is_ok && (errno == ENOBUFS || errno == EAGAIN
- || errno == EBUSY || errno == ENETDOWN);
- // Some of the !is_ok cases are a little unclear - what to do about the syscall,
- // including how caller of _sendmsg_finish() should react.
- if (is_ok || !is_again) {
- socket->kernel_needs_wakeup = false;
- }
- if (is_again) {
- return KNOT_EAGAIN;
- } else if (is_ok) {
+ if (ret >= 0) {
return KNOT_EOK;
+ } else if (errno == ENOBUFS || errno == EAGAIN || errno == EBUSY ||
+ errno == ENETDOWN) {
+ return KNOT_EAGAIN;
} else {
return -errno;
}
- /* This syscall might be avoided with a newer kernel feature (>= 5.4):
- https://www.kernel.org/doc/html/latest/networking/af_xdp.html#xdp-use-need-wakeup-bind-flag
- Unfortunately it's not easy to continue supporting older kernels
- when using this feature on newer ones.
- */
}
_public_
@@ -518,7 +545,7 @@ int knot_xdp_recv(knot_xdp_socket_t *socket, knot_xdp_msg_t msgs[],
static uint8_t *msg_uframe_ptr(const knot_xdp_msg_t *msg)
{
- return NULL + ((msg->payload.iov_base - NULL) & ~(FRAME_SIZE - 1));
+ return (uint8_t *)((uintptr_t)msg->payload.iov_base & ~(FRAME_SIZE - 1));
}
_public_
@@ -529,30 +556,32 @@ void knot_xdp_recv_finish(knot_xdp_socket_t *socket, const knot_xdp_msg_t msgs[]
return;
}
- const struct timespec delay = { .tv_nsec = ALLOC_RETRY_DELAY };
-
struct kxsk_umem *const umem = socket->umem;
struct xsk_ring_prod *const fq = &umem->fq;
uint32_t idx = 0;
- uint32_t reserved = xsk_ring_prod__reserve(fq, count, &idx);
- for (int i = 0; unlikely(reserved < count); i++) {
- if (i == ALLOC_RETRY_NUM) {
- return;
+ const struct timespec delay = { .tv_nsec = RETRY_DELAY };
+ while (unlikely(xsk_ring_prod__reserve(fq, count, &idx) != count)) {
+ if (socket->busy_poll || xsk_ring_prod__needs_wakeup(fq)) {
+ (void)recvfrom(xsk_socket__fd(socket->xsk), NULL, 0,
+ MSG_DONTWAIT, NULL, NULL);
}
nanosleep(&delay, NULL);
- reserved = xsk_ring_prod__reserve(fq, count, &idx);
}
- for (uint32_t i = 0; i < reserved; ++i) {
+ for (uint32_t i = 0; i < count; ++i) {
uint8_t *uframe_p = msg_uframe_ptr(&msgs[i]);
uint64_t offset = uframe_p - umem->frames->bytes;
*xsk_ring_prod__fill_addr(fq, idx++) = offset;
}
- xsk_ring_prod__submit(fq, reserved);
+ xsk_ring_prod__submit(fq, count);
+ // recvfrom() here slightly worsens the performance, poll is called later anyway.
}
+// The number of busy frames
+#define RING_BUSY(ring) ((*(ring)->producer - *(ring)->consumer) & (ring)->mask)
+
_public_
void knot_xdp_socket_info(const knot_xdp_socket_t *socket, FILE *file)
{
@@ -560,10 +589,6 @@ void knot_xdp_socket_info(const knot_xdp_socket_t *socket, FILE *file)
return;
}
- // The number of busy frames
- #define RING_BUSY(ring) \
- ((*(ring)->producer - *(ring)->consumer) & (ring)->mask)
-
#define RING_PRINFO(name, ring) \
fprintf(file, "Ring %s: size %4d, busy %4d (prod %4d, cons %4d)\n", \
name, (unsigned)(ring)->size, \
@@ -571,11 +596,11 @@ void knot_xdp_socket_info(const knot_xdp_socket_t *socket, FILE *file)
(unsigned)*(ring)->producer, (unsigned)*(ring)->consumer)
const int rx_busyf = RING_BUSY(&socket->umem->fq) + RING_BUSY(&socket->rx);
- fprintf(file, "\nLOST RX frames: %4d", (int)(FRAME_COUNT_RX - rx_busyf));
+ fprintf(file, "\nLOST RX frames: %4d", (int)(socket->umem->ring_size - rx_busyf));
const int tx_busyf = RING_BUSY(&socket->umem->cq) + RING_BUSY(&socket->tx);
const int tx_freef = socket->umem->tx_free_count;
- fprintf(file, "\nLOST TX frames: %4d\n", (int)(FRAME_COUNT_TX - tx_busyf - tx_freef));
+ fprintf(file, "\nLOST TX frames: %4d\n", (int)(socket->umem->ring_size - tx_busyf - tx_freef));
RING_PRINFO("FQ", &socket->umem->fq);
RING_PRINFO("RX", &socket->rx);
@@ -583,3 +608,39 @@ void knot_xdp_socket_info(const knot_xdp_socket_t *socket, FILE *file)
RING_PRINFO("CQ", &socket->umem->cq);
fprintf(file, "TX free frames: %4d\n", tx_freef);
}
+
+_public_
+int knot_xdp_socket_stats(knot_xdp_socket_t *socket, knot_xdp_stats_t *stats)
+{
+ if (socket == NULL || stats == NULL) {
+ return KNOT_EINVAL;
+ }
+
+ memset(stats, 0, sizeof(*stats));
+
+ stats->if_name = socket->iface->if_name;
+ stats->if_index = socket->iface->if_index;
+ stats->if_queue = socket->iface->if_queue;
+
+ struct xdp_statistics xdp_stats;
+ socklen_t optlen = sizeof(xdp_stats);
+
+ int fd = knot_xdp_socket_fd(socket);
+ int ret = getsockopt(fd, SOL_XDP, XDP_STATISTICS, &xdp_stats, &optlen);
+ if (ret != 0) {
+ return knot_map_errno();
+ } else if (optlen != sizeof(xdp_stats)) {
+ return KNOT_EINVAL;
+ }
+
+ size_t common_size = MIN(sizeof(xdp_stats), sizeof(stats->socket));
+ memcpy(&stats->socket, &xdp_stats, common_size);
+
+ stats->rings.tx_busy = socket->umem->ring_size - socket->umem->tx_free_count;
+ stats->rings.fq_fill = RING_BUSY(&socket->umem->fq);
+ stats->rings.rx_fill = RING_BUSY(&socket->rx);
+ stats->rings.tx_fill = RING_BUSY(&socket->tx);
+ stats->rings.cq_fill = RING_BUSY(&socket->umem->cq);
+
+ return KNOT_EOK;
+}
diff --git a/src/libknot/xdp/xdp.h b/src/libknot/xdp/xdp.h
index 6c8bb1e..5944d44 100644
--- a/src/libknot/xdp/xdp.h
+++ b/src/libknot/xdp/xdp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -53,14 +53,54 @@ typedef struct knot_xdp_socket knot_xdp_socket_t;
/*! \brief Configuration of XDP socket. */
struct knot_xdp_config {
- bool force_generic; /*!< Use generic XDP mode (avoid driver/hadrware implementation). */
- bool force_copy; /*!< Force copying packet data between kernel and user-space (avoid zero-copy). */
- bool extra_frames; /*!< Extra FQ frames. */
+ uint16_t ring_size; /*!< Size of RX and TX rings (must be power of 2). */
+ bool force_generic; /*!< Use generic XDP mode (avoid driver/hardware implementation). */
+ bool force_copy; /*!< Force copying packet data between kernel and user-space (avoid zero-copy). */
+ unsigned busy_poll_timeout; /*!< Preferred busy poll budget (0 means disabled). */
+ unsigned busy_poll_budget; /*!< Preferred busy poll timeout (in microseconds) . */
};
/*! \brief Configuration of XDP socket. */
typedef struct knot_xdp_config knot_xdp_config_t;
+/*! \brief Various statistics of an XDP socket (optimally kernel >=5.9). */
+typedef struct {
+ /*! Interface name. */
+ const char *if_name;
+ /*! Interface name index (derived from ifname). */
+ int if_index;
+ /*! Network card queue id. */
+ unsigned if_queue;
+ /*! Counters (xdp_statistics) retrieved from the kernel via XDP_STATISTICS. */
+ struct {
+ /*! Dropped for other reasons. */
+ uint64_t rx_dropped;
+ /*! Dropped due to invalid descriptor. */
+ uint64_t rx_invalid;
+ /*! Dropped due to invalid descriptor. */
+ uint64_t tx_invalid;
+ /*! Dropped due to rx ring being full. */
+ uint64_t rx_full;
+ /*! Failed to retrieve item from fill ring. */
+ uint64_t fq_empty;
+ /*! Failed to retrieve item from tx ring. */
+ uint64_t tx_empty;
+ } socket;
+ /*! States of rings of the XDP socket. */
+ struct {
+ /*! Busy TX buffers. */
+ uint16_t tx_busy;
+ /*! Free buffers to consume from FQ ring. */
+ uint16_t fq_fill;
+ /*! Pending buffers in TX ring. */
+ uint16_t rx_fill;
+ /*! Pending buffers in RX ring. */
+ uint16_t tx_fill;
+ /*! Pending buffers in CQ ring. */
+ uint16_t cq_fill;
+ } rings;
+} knot_xdp_stats_t;
+
/*!
* \brief Initialize XDP socket.
*
@@ -196,4 +236,14 @@ void knot_xdp_recv_finish(knot_xdp_socket_t *socket, const knot_xdp_msg_t msgs[]
*/
void knot_xdp_socket_info(const knot_xdp_socket_t *socket, FILE *file);
+/*!
+ * \brief Gets various statistics of the XDP socket.
+ *
+ * \param socket XDP socket.
+ * \param stats Output structure.
+ *
+ * \return KNOT_E*
+ */
+int knot_xdp_socket_stats(knot_xdp_socket_t *socket, knot_xdp_stats_t *stats);
+
/*! @} */
diff --git a/src/libknot/yparser/ypschema.h b/src/libknot/yparser/ypschema.h
index 57ced72..7fca93e 100644
--- a/src/libknot/yparser/ypschema.h
+++ b/src/libknot/yparser/ypschema.h
@@ -130,6 +130,8 @@ typedef union {
int64_t dflt;
/*! Possible unit type. */
yp_style_t unit;
+ /*! Alternative default value. */
+ int64_t dflt_alt;
} i;
/*! Boolean variables. */
struct {
diff --git a/src/libknot/yparser/yptrafo.c b/src/libknot/yparser/yptrafo.c
index 60b3717..764a5d1 100644
--- a/src/libknot/yparser/yptrafo.c
+++ b/src/libknot/yparser/yptrafo.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -31,25 +31,31 @@
#include "contrib/wire_ctx.h"
enum {
- UNIT_BYTE = 'B',
- UNIT_KILO = 'K',
- UNIT_MEGA = 'M',
- UNIT_GIGA = 'G',
- UNIT_SEC = 's',
- UNIT_MIN = 'm',
- UNIT_HOUR = 'h',
- UNIT_DAY = 'd'
+ UNIT_BYTE = 'B',
+ UNIT_KILO = 'K',
+ UNIT_MEGA = 'M',
+ UNIT_GIGA = 'G',
+ UNIT_SEC = 's',
+ UNIT_MIN = 'm',
+ UNIT_HOUR = 'h',
+ UNIT_DAY = 'd',
+ UNIT_WEEK = 'w',
+ UNIT_MONTH = 'M',
+ UNIT_YEAR = 'y',
};
enum {
- MULTI_BYTE = 1,
- MULTI_KILO = 1024,
- MULTI_MEGA = 1024 * 1024,
- MULTI_GIGA = 1024 * 1024 * 1024,
- MULTI_SEC = 1,
- MULTI_MIN = 60,
- MULTI_HOUR = 3600,
- MULTI_DAY = 24 * 3600
+ MULTI_BYTE = 1,
+ MULTI_KILO = 1024,
+ MULTI_MEGA = 1024 * 1024,
+ MULTI_GIGA = 1024 * 1024 * 1024,
+ MULTI_SEC = 1,
+ MULTI_MIN = 60,
+ MULTI_HOUR = 3600,
+ MULTI_DAY = 24 * 3600,
+ MULTI_WEEK = MULTI_DAY * 7,
+ MULTI_MONTH = MULTI_DAY * 30,
+ MULTI_YEAR = MULTI_DAY * 365,
};
static wire_ctx_t copy_in(
@@ -186,6 +192,15 @@ static int remove_unit(
case UNIT_DAY:
multiplier = MULTI_DAY;
break;
+ case UNIT_WEEK:
+ multiplier = MULTI_WEEK;
+ break;
+ case UNIT_MONTH:
+ multiplier = MULTI_MONTH;
+ break;
+ case UNIT_YEAR:
+ multiplier = MULTI_YEAR;
+ break;
default:
return KNOT_EINVAL;
}
@@ -295,9 +310,18 @@ static void add_unit(
} else if (*number < MULTI_DAY) {
multiplier = MULTI_HOUR;
new_unit = UNIT_HOUR;
- } else {
+ } else if (*number < MULTI_WEEK) {
multiplier = MULTI_DAY;
new_unit = UNIT_DAY;
+ } else if (*number < MULTI_MONTH) {
+ multiplier = MULTI_WEEK;
+ new_unit = UNIT_WEEK;
+ } else if (*number < MULTI_YEAR) {
+ multiplier = MULTI_MONTH;
+ new_unit = UNIT_MONTH;
+ } else {
+ multiplier = MULTI_YEAR;
+ new_unit = UNIT_YEAR;
}
}
diff --git a/src/libzscanner/scanner.c.g2 b/src/libzscanner/scanner.c.g2
index f97c3ae..1edb9f4 100644
--- a/src/libzscanner/scanner.c.g2
+++ b/src/libzscanner/scanner.c.g2
@@ -109,7 +109,7 @@ int zs_init(
memset(s, 0, sizeof(*s));
// Nonzero initial scanner state.
- s->cs = 1396;
+ s->cs = 1444;
// Reset the file descriptor.
s->file.descriptor = -1;
@@ -435,7 +435,7 @@ static void parse(
_again:
switch ( cs ) {
- case 1396: goto st1396;
+ case 1444: goto st1444;
case 0: goto st0;
case 1: goto st1;
case 2: goto st2;
@@ -450,7 +450,7 @@ _again:
case 11: goto st11;
case 12: goto st12;
case 13: goto st13;
- case 1397: goto st1397;
+ case 1445: goto st1445;
case 14: goto st14;
case 15: goto st15;
case 16: goto st16;
@@ -611,54 +611,54 @@ _again:
case 171: goto st171;
case 172: goto st172;
case 173: goto st173;
- case 1398: goto st1398;
case 174: goto st174;
case 175: goto st175;
case 176: goto st176;
case 177: goto st177;
case 178: goto st178;
case 179: goto st179;
+ case 1446: goto st1446;
case 180: goto st180;
case 181: goto st181;
case 182: goto st182;
case 183: goto st183;
- case 1399: goto st1399;
case 184: goto st184;
case 185: goto st185;
case 186: goto st186;
case 187: goto st187;
case 188: goto st188;
case 189: goto st189;
+ case 1447: goto st1447;
case 190: goto st190;
case 191: goto st191;
- case 1400: goto st1400;
case 192: goto st192;
case 193: goto st193;
case 194: goto st194;
- case 1401: goto st1401;
case 195: goto st195;
case 196: goto st196;
case 197: goto st197;
+ case 1448: goto st1448;
case 198: goto st198;
case 199: goto st199;
case 200: goto st200;
+ case 1449: goto st1449;
case 201: goto st201;
case 202: goto st202;
case 203: goto st203;
case 204: goto st204;
case 205: goto st205;
- case 1402: goto st1402;
case 206: goto st206;
case 207: goto st207;
case 208: goto st208;
case 209: goto st209;
- case 1403: goto st1403;
case 210: goto st210;
case 211: goto st211;
+ case 1450: goto st1450;
case 212: goto st212;
case 213: goto st213;
case 214: goto st214;
case 215: goto st215;
+ case 1451: goto st1451;
case 216: goto st216;
case 217: goto st217;
case 218: goto st218;
@@ -671,7 +671,6 @@ _again:
case 225: goto st225;
case 226: goto st226;
case 227: goto st227;
- case 1404: goto st1404;
case 228: goto st228;
case 229: goto st229;
case 230: goto st230;
@@ -679,6 +678,7 @@ _again:
case 232: goto st232;
case 233: goto st233;
case 234: goto st234;
+ case 1452: goto st1452;
case 235: goto st235;
case 236: goto st236;
case 237: goto st237;
@@ -688,7 +688,6 @@ _again:
case 241: goto st241;
case 242: goto st242;
case 243: goto st243;
- case 1405: goto st1405;
case 244: goto st244;
case 245: goto st245;
case 246: goto st246;
@@ -696,6 +695,7 @@ _again:
case 248: goto st248;
case 249: goto st249;
case 250: goto st250;
+ case 1453: goto st1453;
case 251: goto st251;
case 252: goto st252;
case 253: goto st253;
@@ -752,24 +752,22 @@ _again:
case 304: goto st304;
case 305: goto st305;
case 306: goto st306;
- case 1406: goto st1406;
case 307: goto st307;
case 308: goto st308;
- case 1407: goto st1407;
case 309: goto st309;
case 310: goto st310;
- case 1408: goto st1408;
case 311: goto st311;
case 312: goto st312;
case 313: goto st313;
case 314: goto st314;
case 315: goto st315;
+ case 1454: goto st1454;
case 316: goto st316;
case 317: goto st317;
+ case 1455: goto st1455;
case 318: goto st318;
case 319: goto st319;
- case 1409: goto st1409;
- case 1410: goto st1410;
+ case 1456: goto st1456;
case 320: goto st320;
case 321: goto st321;
case 322: goto st322;
@@ -779,13 +777,14 @@ _again:
case 326: goto st326;
case 327: goto st327;
case 328: goto st328;
+ case 1457: goto st1457;
+ case 1458: goto st1458;
case 329: goto st329;
case 330: goto st330;
case 331: goto st331;
case 332: goto st332;
case 333: goto st333;
case 334: goto st334;
- case 1411: goto st1411;
case 335: goto st335;
case 336: goto st336;
case 337: goto st337;
@@ -795,8 +794,8 @@ _again:
case 341: goto st341;
case 342: goto st342;
case 343: goto st343;
+ case 1459: goto st1459;
case 344: goto st344;
- case 1412: goto st1412;
case 345: goto st345;
case 346: goto st346;
case 347: goto st347;
@@ -806,12 +805,12 @@ _again:
case 351: goto st351;
case 352: goto st352;
case 353: goto st353;
+ case 1460: goto st1460;
case 354: goto st354;
case 355: goto st355;
case 356: goto st356;
case 357: goto st357;
case 358: goto st358;
- case 1413: goto st1413;
case 359: goto st359;
case 360: goto st360;
case 361: goto st361;
@@ -819,9 +818,9 @@ _again:
case 363: goto st363;
case 364: goto st364;
case 365: goto st365;
- case 1414: goto st1414;
case 366: goto st366;
case 367: goto st367;
+ case 1461: goto st1461;
case 368: goto st368;
case 369: goto st369;
case 370: goto st370;
@@ -829,9 +828,7 @@ _again:
case 372: goto st372;
case 373: goto st373;
case 374: goto st374;
- case 1415: goto st1415;
- case 1416: goto st1416;
- case 1417: goto st1417;
+ case 1462: goto st1462;
case 375: goto st375;
case 376: goto st376;
case 377: goto st377;
@@ -840,21 +837,24 @@ _again:
case 380: goto st380;
case 381: goto st381;
case 382: goto st382;
- case 1418: goto st1418;
- case 1419: goto st1419;
case 383: goto st383;
+ case 1463: goto st1463;
+ case 1464: goto st1464;
+ case 1465: goto st1465;
case 384: goto st384;
case 385: goto st385;
- case 1420: goto st1420;
case 386: goto st386;
case 387: goto st387;
case 388: goto st388;
case 389: goto st389;
case 390: goto st390;
case 391: goto st391;
+ case 1466: goto st1466;
+ case 1467: goto st1467;
case 392: goto st392;
case 393: goto st393;
case 394: goto st394;
+ case 1468: goto st1468;
case 395: goto st395;
case 396: goto st396;
case 397: goto st397;
@@ -1007,47 +1007,47 @@ _again:
case 544: goto st544;
case 545: goto st545;
case 546: goto st546;
- case 1421: goto st1421;
- case 1422: goto st1422;
- case 1423: goto st1423;
case 547: goto st547;
case 548: goto st548;
case 549: goto st549;
case 550: goto st550;
case 551: goto st551;
- case 1424: goto st1424;
case 552: goto st552;
case 553: goto st553;
case 554: goto st554;
case 555: goto st555;
- case 1425: goto st1425;
- case 1426: goto st1426;
- case 1427: goto st1427;
case 556: goto st556;
case 557: goto st557;
- case 1428: goto st1428;
case 558: goto st558;
case 559: goto st559;
case 560: goto st560;
case 561: goto st561;
+ case 1469: goto st1469;
+ case 1470: goto st1470;
+ case 1471: goto st1471;
case 562: goto st562;
case 563: goto st563;
- case 1429: goto st1429;
case 564: goto st564;
case 565: goto st565;
case 566: goto st566;
+ case 1472: goto st1472;
case 567: goto st567;
case 568: goto st568;
case 569: goto st569;
case 570: goto st570;
+ case 1473: goto st1473;
+ case 1474: goto st1474;
+ case 1475: goto st1475;
case 571: goto st571;
case 572: goto st572;
+ case 1476: goto st1476;
case 573: goto st573;
case 574: goto st574;
case 575: goto st575;
case 576: goto st576;
case 577: goto st577;
case 578: goto st578;
+ case 1477: goto st1477;
case 579: goto st579;
case 580: goto st580;
case 581: goto st581;
@@ -1081,8 +1081,6 @@ _again:
case 609: goto st609;
case 610: goto st610;
case 611: goto st611;
- case 1430: goto st1430;
- case 1431: goto st1431;
case 612: goto st612;
case 613: goto st613;
case 614: goto st614;
@@ -1093,7 +1091,6 @@ _again:
case 619: goto st619;
case 620: goto st620;
case 621: goto st621;
- case 1432: goto st1432;
case 622: goto st622;
case 623: goto st623;
case 624: goto st624;
@@ -1111,6 +1108,8 @@ _again:
case 636: goto st636;
case 637: goto st637;
case 638: goto st638;
+ case 1478: goto st1478;
+ case 1479: goto st1479;
case 639: goto st639;
case 640: goto st640;
case 641: goto st641;
@@ -1120,6 +1119,7 @@ _again:
case 645: goto st645;
case 646: goto st646;
case 647: goto st647;
+ case 1480: goto st1480;
case 648: goto st648;
case 649: goto st649;
case 650: goto st650;
@@ -1173,7 +1173,6 @@ _again:
case 698: goto st698;
case 699: goto st699;
case 700: goto st700;
- case 1433: goto st1433;
case 701: goto st701;
case 702: goto st702;
case 703: goto st703;
@@ -1216,6 +1215,7 @@ _again:
case 740: goto st740;
case 741: goto st741;
case 742: goto st742;
+ case 1481: goto st1481;
case 743: goto st743;
case 744: goto st744;
case 745: goto st745;
@@ -1278,7 +1278,6 @@ _again:
case 802: goto st802;
case 803: goto st803;
case 804: goto st804;
- case 1434: goto st1434;
case 805: goto st805;
case 806: goto st806;
case 807: goto st807;
@@ -1320,10 +1319,9 @@ _again:
case 843: goto st843;
case 844: goto st844;
case 845: goto st845;
- case 1435: goto st1435;
case 846: goto st846;
+ case 1482: goto st1482;
case 847: goto st847;
- case 1436: goto st1436;
case 848: goto st848;
case 849: goto st849;
case 850: goto st850;
@@ -1338,7 +1336,6 @@ _again:
case 859: goto st859;
case 860: goto st860;
case 861: goto st861;
- case 1437: goto st1437;
case 862: goto st862;
case 863: goto st863;
case 864: goto st864;
@@ -1361,33 +1358,29 @@ _again:
case 881: goto st881;
case 882: goto st882;
case 883: goto st883;
- case 1438: goto st1438;
case 884: goto st884;
case 885: goto st885;
case 886: goto st886;
case 887: goto st887;
+ case 1483: goto st1483;
case 888: goto st888;
- case 1439: goto st1439;
case 889: goto st889;
+ case 1484: goto st1484;
case 890: goto st890;
case 891: goto st891;
case 892: goto st892;
case 893: goto st893;
- case 1440: goto st1440;
case 894: goto st894;
case 895: goto st895;
case 896: goto st896;
case 897: goto st897;
case 898: goto st898;
- case 1441: goto st1441;
- case 1442: goto st1442;
- case 1443: goto st1443;
case 899: goto st899;
case 900: goto st900;
- case 1444: goto st1444;
case 901: goto st901;
case 902: goto st902;
case 903: goto st903;
+ case 1485: goto st1485;
case 904: goto st904;
case 905: goto st905;
case 906: goto st906;
@@ -1410,32 +1403,30 @@ _again:
case 923: goto st923;
case 924: goto st924;
case 925: goto st925;
+ case 1486: goto st1486;
case 926: goto st926;
case 927: goto st927;
- case 1445: goto st1445;
- case 1446: goto st1446;
- case 1447: goto st1447;
case 928: goto st928;
case 929: goto st929;
case 930: goto st930;
- case 1448: goto st1448;
- case 1449: goto st1449;
+ case 1487: goto st1487;
case 931: goto st931;
case 932: goto st932;
case 933: goto st933;
case 934: goto st934;
- case 1450: goto st1450;
- case 1451: goto st1451;
case 935: goto st935;
+ case 1488: goto st1488;
case 936: goto st936;
case 937: goto st937;
case 938: goto st938;
- case 1452: goto st1452;
- case 1453: goto st1453;
case 939: goto st939;
case 940: goto st940;
+ case 1489: goto st1489;
+ case 1490: goto st1490;
+ case 1491: goto st1491;
case 941: goto st941;
case 942: goto st942;
+ case 1492: goto st1492;
case 943: goto st943;
case 944: goto st944;
case 945: goto st945;
@@ -1457,25 +1448,32 @@ _again:
case 961: goto st961;
case 962: goto st962;
case 963: goto st963;
- case 1454: goto st1454;
case 964: goto st964;
case 965: goto st965;
case 966: goto st966;
case 967: goto st967;
case 968: goto st968;
case 969: goto st969;
+ case 1493: goto st1493;
+ case 1494: goto st1494;
+ case 1495: goto st1495;
case 970: goto st970;
case 971: goto st971;
case 972: goto st972;
+ case 1496: goto st1496;
+ case 1497: goto st1497;
case 973: goto st973;
case 974: goto st974;
case 975: goto st975;
case 976: goto st976;
+ case 1498: goto st1498;
+ case 1499: goto st1499;
case 977: goto st977;
case 978: goto st978;
- case 1455: goto st1455;
case 979: goto st979;
case 980: goto st980;
+ case 1500: goto st1500;
+ case 1501: goto st1501;
case 981: goto st981;
case 982: goto st982;
case 983: goto st983;
@@ -1487,7 +1485,6 @@ _again:
case 989: goto st989;
case 990: goto st990;
case 991: goto st991;
- case 1456: goto st1456;
case 992: goto st992;
case 993: goto st993;
case 994: goto st994;
@@ -1499,12 +1496,10 @@ _again:
case 1000: goto st1000;
case 1001: goto st1001;
case 1002: goto st1002;
- case 1457: goto st1457;
- case 1458: goto st1458;
case 1003: goto st1003;
case 1004: goto st1004;
case 1005: goto st1005;
- case 1459: goto st1459;
+ case 1502: goto st1502;
case 1006: goto st1006;
case 1007: goto st1007;
case 1008: goto st1008;
@@ -1515,23 +1510,18 @@ _again:
case 1013: goto st1013;
case 1014: goto st1014;
case 1015: goto st1015;
- case 1460: goto st1460;
- case 1461: goto st1461;
- case 1462: goto st1462;
case 1016: goto st1016;
case 1017: goto st1017;
case 1018: goto st1018;
case 1019: goto st1019;
case 1020: goto st1020;
+ case 1503: goto st1503;
case 1021: goto st1021;
case 1022: goto st1022;
case 1023: goto st1023;
case 1024: goto st1024;
case 1025: goto st1025;
case 1026: goto st1026;
- case 1463: goto st1463;
- case 1464: goto st1464;
- case 1465: goto st1465;
case 1027: goto st1027;
case 1028: goto st1028;
case 1029: goto st1029;
@@ -1539,27 +1529,24 @@ _again:
case 1031: goto st1031;
case 1032: goto st1032;
case 1033: goto st1033;
+ case 1504: goto st1504;
case 1034: goto st1034;
case 1035: goto st1035;
case 1036: goto st1036;
case 1037: goto st1037;
case 1038: goto st1038;
- case 1466: goto st1466;
case 1039: goto st1039;
case 1040: goto st1040;
case 1041: goto st1041;
- case 1467: goto st1467;
- case 1468: goto st1468;
case 1042: goto st1042;
- case 1469: goto st1469;
- case 1470: goto st1470;
case 1043: goto st1043;
- case 1471: goto st1471;
- case 1472: goto st1472;
case 1044: goto st1044;
+ case 1505: goto st1505;
+ case 1506: goto st1506;
case 1045: goto st1045;
case 1046: goto st1046;
case 1047: goto st1047;
+ case 1507: goto st1507;
case 1048: goto st1048;
case 1049: goto st1049;
case 1050: goto st1050;
@@ -1570,6 +1557,9 @@ _again:
case 1055: goto st1055;
case 1056: goto st1056;
case 1057: goto st1057;
+ case 1508: goto st1508;
+ case 1509: goto st1509;
+ case 1510: goto st1510;
case 1058: goto st1058;
case 1059: goto st1059;
case 1060: goto st1060;
@@ -1581,6 +1571,9 @@ _again:
case 1066: goto st1066;
case 1067: goto st1067;
case 1068: goto st1068;
+ case 1511: goto st1511;
+ case 1512: goto st1512;
+ case 1513: goto st1513;
case 1069: goto st1069;
case 1070: goto st1070;
case 1071: goto st1071;
@@ -1593,12 +1586,18 @@ _again:
case 1078: goto st1078;
case 1079: goto st1079;
case 1080: goto st1080;
+ case 1514: goto st1514;
case 1081: goto st1081;
case 1082: goto st1082;
case 1083: goto st1083;
+ case 1515: goto st1515;
+ case 1516: goto st1516;
case 1084: goto st1084;
+ case 1517: goto st1517;
+ case 1518: goto st1518;
case 1085: goto st1085;
- case 1473: goto st1473;
+ case 1519: goto st1519;
+ case 1520: goto st1520;
case 1086: goto st1086;
case 1087: goto st1087;
case 1088: goto st1088;
@@ -1641,6 +1640,7 @@ _again:
case 1125: goto st1125;
case 1126: goto st1126;
case 1127: goto st1127;
+ case 1521: goto st1521;
case 1128: goto st1128;
case 1129: goto st1129;
case 1130: goto st1130;
@@ -1770,7 +1770,6 @@ _again:
case 1254: goto st1254;
case 1255: goto st1255;
case 1256: goto st1256;
- case 1474: goto st1474;
case 1257: goto st1257;
case 1258: goto st1258;
case 1259: goto st1259;
@@ -1779,13 +1778,11 @@ _again:
case 1262: goto st1262;
case 1263: goto st1263;
case 1264: goto st1264;
- case 1475: goto st1475;
case 1265: goto st1265;
case 1266: goto st1266;
case 1267: goto st1267;
case 1268: goto st1268;
case 1269: goto st1269;
- case 1476: goto st1476;
case 1270: goto st1270;
case 1271: goto st1271;
case 1272: goto st1272;
@@ -1804,7 +1801,6 @@ _again:
case 1285: goto st1285;
case 1286: goto st1286;
case 1287: goto st1287;
- case 1477: goto st1477;
case 1288: goto st1288;
case 1289: goto st1289;
case 1290: goto st1290;
@@ -1822,27 +1818,26 @@ _again:
case 1302: goto st1302;
case 1303: goto st1303;
case 1304: goto st1304;
+ case 1522: goto st1522;
case 1305: goto st1305;
case 1306: goto st1306;
- case 1478: goto st1478;
case 1307: goto st1307;
case 1308: goto st1308;
case 1309: goto st1309;
case 1310: goto st1310;
case 1311: goto st1311;
case 1312: goto st1312;
+ case 1523: goto st1523;
case 1313: goto st1313;
case 1314: goto st1314;
case 1315: goto st1315;
case 1316: goto st1316;
case 1317: goto st1317;
+ case 1524: goto st1524;
case 1318: goto st1318;
case 1319: goto st1319;
case 1320: goto st1320;
case 1321: goto st1321;
- case 1479: goto st1479;
- case 1480: goto st1480;
- case 1481: goto st1481;
case 1322: goto st1322;
case 1323: goto st1323;
case 1324: goto st1324;
@@ -1851,21 +1846,18 @@ _again:
case 1327: goto st1327;
case 1328: goto st1328;
case 1329: goto st1329;
- case 1482: goto st1482;
case 1330: goto st1330;
case 1331: goto st1331;
case 1332: goto st1332;
case 1333: goto st1333;
case 1334: goto st1334;
case 1335: goto st1335;
+ case 1525: goto st1525;
case 1336: goto st1336;
case 1337: goto st1337;
case 1338: goto st1338;
case 1339: goto st1339;
case 1340: goto st1340;
- case 1483: goto st1483;
- case 1484: goto st1484;
- case 1485: goto st1485;
case 1341: goto st1341;
case 1342: goto st1342;
case 1343: goto st1343;
@@ -1873,7 +1865,6 @@ _again:
case 1345: goto st1345;
case 1346: goto st1346;
case 1347: goto st1347;
- case 1486: goto st1486;
case 1348: goto st1348;
case 1349: goto st1349;
case 1350: goto st1350;
@@ -1881,13 +1872,13 @@ _again:
case 1352: goto st1352;
case 1353: goto st1353;
case 1354: goto st1354;
+ case 1526: goto st1526;
case 1355: goto st1355;
case 1356: goto st1356;
case 1357: goto st1357;
case 1358: goto st1358;
case 1359: goto st1359;
case 1360: goto st1360;
- case 1487: goto st1487;
case 1361: goto st1361;
case 1362: goto st1362;
case 1363: goto st1363;
@@ -1895,21 +1886,22 @@ _again:
case 1365: goto st1365;
case 1366: goto st1366;
case 1367: goto st1367;
- case 1488: goto st1488;
case 1368: goto st1368;
case 1369: goto st1369;
+ case 1527: goto st1527;
+ case 1528: goto st1528;
+ case 1529: goto st1529;
case 1370: goto st1370;
case 1371: goto st1371;
case 1372: goto st1372;
case 1373: goto st1373;
- case 1489: goto st1489;
case 1374: goto st1374;
case 1375: goto st1375;
case 1376: goto st1376;
case 1377: goto st1377;
+ case 1530: goto st1530;
case 1378: goto st1378;
case 1379: goto st1379;
- case 1490: goto st1490;
case 1380: goto st1380;
case 1381: goto st1381;
case 1382: goto st1382;
@@ -1918,16 +1910,72 @@ _again:
case 1385: goto st1385;
case 1386: goto st1386;
case 1387: goto st1387;
- case 1491: goto st1491;
case 1388: goto st1388;
+ case 1531: goto st1531;
+ case 1532: goto st1532;
+ case 1533: goto st1533;
case 1389: goto st1389;
case 1390: goto st1390;
case 1391: goto st1391;
case 1392: goto st1392;
case 1393: goto st1393;
case 1394: goto st1394;
- case 1492: goto st1492;
case 1395: goto st1395;
+ case 1534: goto st1534;
+ case 1396: goto st1396;
+ case 1397: goto st1397;
+ case 1398: goto st1398;
+ case 1399: goto st1399;
+ case 1400: goto st1400;
+ case 1401: goto st1401;
+ case 1402: goto st1402;
+ case 1403: goto st1403;
+ case 1404: goto st1404;
+ case 1405: goto st1405;
+ case 1406: goto st1406;
+ case 1407: goto st1407;
+ case 1408: goto st1408;
+ case 1535: goto st1535;
+ case 1409: goto st1409;
+ case 1410: goto st1410;
+ case 1411: goto st1411;
+ case 1412: goto st1412;
+ case 1413: goto st1413;
+ case 1414: goto st1414;
+ case 1415: goto st1415;
+ case 1536: goto st1536;
+ case 1416: goto st1416;
+ case 1417: goto st1417;
+ case 1418: goto st1418;
+ case 1419: goto st1419;
+ case 1420: goto st1420;
+ case 1421: goto st1421;
+ case 1537: goto st1537;
+ case 1422: goto st1422;
+ case 1423: goto st1423;
+ case 1424: goto st1424;
+ case 1425: goto st1425;
+ case 1426: goto st1426;
+ case 1427: goto st1427;
+ case 1538: goto st1538;
+ case 1428: goto st1428;
+ case 1429: goto st1429;
+ case 1430: goto st1430;
+ case 1431: goto st1431;
+ case 1432: goto st1432;
+ case 1433: goto st1433;
+ case 1434: goto st1434;
+ case 1435: goto st1435;
+ case 1539: goto st1539;
+ case 1436: goto st1436;
+ case 1437: goto st1437;
+ case 1438: goto st1438;
+ case 1439: goto st1439;
+ case 1440: goto st1440;
+ case 1441: goto st1441;
+ case 1442: goto st1442;
+ case 1540: goto st1540;
+ case 1443: goto st1443;
default: break;
}
@@ -1936,12 +1984,12 @@ _again:
_resume:
switch ( cs )
{
-tr22:
+tr23:
{
s->line_counter++;
}
- goto st1396;
-tr87:
+ goto st1444;
+tr89:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -1949,7 +1997,7 @@ tr87:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -1962,23 +2010,23 @@ tr87:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1396; goto _out;}
+ {p++; cs = 1444; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1396; goto _out;}
+ p--; {p++; cs = 1444; goto _out;}
}
}
{
s->line_counter++;
}
- goto st1396;
-tr93:
+ goto st1444;
+tr95:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -1991,19 +2039,19 @@ tr93:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1396; goto _out;}
+ {p++; cs = 1444; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1396; goto _out;}
+ p--; {p++; cs = 1444; goto _out;}
}
}
{
s->line_counter++;
}
- goto st1396;
-tr96:
+ goto st1444;
+tr98:
{
s->buffer[s->buffer_length++] = 0;
@@ -2013,14 +2061,14 @@ tr96:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1396; goto _out;}
+ {p++; cs = 1444; goto _out;}
}
}
}
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -2033,19 +2081,19 @@ tr96:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1396; goto _out;}
+ {p++; cs = 1444; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1396; goto _out;}
+ p--; {p++; cs = 1444; goto _out;}
}
}
{
s->line_counter++;
}
- goto st1396;
-tr754:
+ goto st1444;
+tr772:
{
s->buffer[s->buffer_length++] = 0;
@@ -2055,15 +2103,15 @@ tr754:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1396; goto _out;}
+ {p++; cs = 1444; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1396;
-tr848:
+ goto st1444;
+tr866:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -2077,14 +2125,14 @@ tr848:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1396; goto _out;}
+ {p++; cs = 1444; goto _out;}
}
}
}
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -2097,19 +2145,19 @@ tr848:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1396; goto _out;}
+ {p++; cs = 1444; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1396; goto _out;}
+ p--; {p++; cs = 1444; goto _out;}
}
}
{
s->line_counter++;
}
- goto st1396;
-tr966:
+ goto st1444;
+tr984:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -2117,7 +2165,7 @@ tr966:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -2130,12 +2178,12 @@ tr966:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1396; goto _out;}
+ {p++; cs = 1444; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1396; goto _out;}
+ p--; {p++; cs = 1444; goto _out;}
}
}
{
@@ -2150,16 +2198,16 @@ tr966:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1396; goto _out;}
+ {p++; cs = 1444; goto _out;}
}
}
}
- goto st1396;
-tr970:
+ goto st1444;
+tr988:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -2172,12 +2220,12 @@ tr970:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1396; goto _out;}
+ {p++; cs = 1444; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1396; goto _out;}
+ p--; {p++; cs = 1444; goto _out;}
}
}
{
@@ -2192,12 +2240,12 @@ tr970:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1396; goto _out;}
+ {p++; cs = 1444; goto _out;}
}
}
}
- goto st1396;
-tr4211:
+ goto st1444;
+tr4291:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -2205,8 +2253,8 @@ tr4211:
{
s->line_counter++;
}
- goto st1396;
-tr4275:
+ goto st1444;
+tr4357:
{
NOERR;
}
@@ -2217,11 +2265,11 @@ tr4275:
{
s->line_counter++;
}
- goto st1396;
-st1396:
+ goto st1444;
+st1444:
if ( ++p == pe )
- goto _test_eof1396;
-case 1396:
+ goto _test_eof1444;
+case 1444:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -2235,928 +2283,928 @@ case 1396:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4206;
- case 32: goto tr4206;
- case 36: goto st184;
- case 40: goto tr4208;
- case 41: goto tr4209;
- case 42: goto tr4210;
- case 92: goto tr4210;
- case 95: goto tr4210;
- case 1802: goto tr4211;
- case 1851: goto tr4212;
- case 2058: goto tr4213;
- case 2107: goto tr4214;
+ case 9: goto tr4286;
+ case 32: goto tr4286;
+ case 36: goto st190;
+ case 40: goto tr4288;
+ case 41: goto tr4289;
+ case 42: goto tr4290;
+ case 92: goto tr4290;
+ case 95: goto tr4290;
+ case 1802: goto tr4291;
+ case 1851: goto tr4292;
+ case 2058: goto tr4293;
+ case 2107: goto tr4294;
}
if ( _widec < 64 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr4210;
+ goto tr4290;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr4210;
+ goto tr4290;
} else
- goto tr4210;
- goto tr4205;
+ goto tr4290;
+ goto tr4285;
tr0:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr26:
+tr27:
{
WARN(ZS_BAD_TIME_UNIT);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr38:
+tr39:
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr61:
+tr63:
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr75:
+tr77:
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr83:
+tr85:
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr89:
+tr91:
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr118:
+tr120:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr145:
+tr148:
{
WARN(ZS_BAD_TIME_UNIT);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr151:
+tr154:
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr656:
+tr660:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr658:
+tr662:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr755:
+tr773:
{
ERR(ZS_BAD_DIRECTIVE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr766:
+tr784:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr780:
+tr798:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_TIME_UNIT);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr808:
+tr826:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr823:
+tr841:
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr861:
+tr879:
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
ERR(ZS_BAD_DIRECTIVE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr871:
+tr889:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr877:
+tr895:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_TIME_UNIT);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr890:
+tr908:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr904:
+tr922:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr996:
+tr1014:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1011:
+tr1029:
{
WARN(ZS_BAD_DNAME_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1024:
+tr1042:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_DNAME_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1032:
+tr1050:
{
WARN(ZS_BAD_TEXT_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_TEXT);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1040:
+tr1058:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_TEXT_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_TEXT);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1056:
+tr1074:
{
WARN(ZS_BAD_TEXT);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1065:
+tr1083:
{
ERR(ZS_BAD_TTL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1071:
+tr1089:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
ERR(ZS_BAD_TTL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1073:
+tr1091:
{
WARN(ZS_BAD_TIME_UNIT);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
ERR(ZS_BAD_TTL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1085:
+tr1103:
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
ERR(ZS_BAD_TTL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1094:
+tr1112:
{
WARN(ZS_BAD_TIME_UNIT);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
ERR(ZS_BAD_TTL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1109:
+tr1127:
{
ERR(ZS_BAD_ORIGIN);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1121:
+tr1139:
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
ERR(ZS_BAD_ORIGIN);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1137:
+tr1155:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
ERR(ZS_BAD_ORIGIN);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1151:
+tr1169:
{
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1152:
+tr1170:
{
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1159:
+tr1177:
{
ERR(ZS_BAD_INCLUDE_ORIGIN);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1169:
+tr1187:
{
ERR(ZS_BAD_INCLUDE_ORIGIN);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1186:
+tr1204:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
ERR(ZS_BAD_INCLUDE_ORIGIN);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1203:
+tr1221:
{
WARN(ZS_BAD_BASE64_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1219:
+tr1237:
{
WARN(ZS_BAD_BITMAP);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1792:
+tr1824:
{
WARN(ZS_BAD_HEX_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1798:
+tr1830:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_HEX_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1806:
+tr1838:
{
WARN(ZS_BAD_HEX_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_HEX_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_HEX_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1868:
+tr1900:
{
WARN(ZS_BAD_SVCB_MANDATORY);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1898:
+tr1939:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_SVCB_MANDATORY);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr1921:
+tr1967:
{
WARN(ZS_BAD_SVCB_PARAM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr2005:
+tr2063:
{
WARN(ZS_BAD_ADDRESS_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_SVCB_PARAM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr2049:
+tr2107:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_SVCB_PARAM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr2129:
+tr2198:
{
WARN(ZS_BAD_ALGORITHM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr2251:
+tr2320:
{
WARN(ZS_BAD_CERT_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr2304:
+tr2373:
{
WARN(ZS_BAD_ADDRESS_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr2327:
+tr2396:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr2346:
+tr2415:
{
WARN(ZS_BAD_TIME_UNIT);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr2512:
+tr2581:
{
s->long_string = false;
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr2535:
+tr2604:
{
WARN(ZS_BAD_LOC_DATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr2938:
+tr3007:
{
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr2953:
+tr3022:
{
WARN(ZS_BAD_ADDRESS_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr2998:
+tr3067:
{
WARN(ZS_BAD_HEX_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr3069:
+tr3138:
{
WARN(ZS_BAD_GATEWAY);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr3084:
+tr3153:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_GATEWAY);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr3098:
+tr3167:
{
WARN(ZS_BAD_GATEWAY);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_GATEWAY_KEY);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr3121:
+tr3190:
{
WARN(ZS_BAD_GATEWAY_KEY);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr3145:
+tr3214:
{
WARN(ZS_BAD_ADDRESS_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_GATEWAY);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr3152:
+tr3221:
{
WARN(ZS_BAD_ADDRESS_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_GATEWAY);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_GATEWAY_KEY);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr3271:
+tr3340:
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr3327:
+tr3397:
{
WARN(ZS_BAD_TIMESTAMP_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr3756:
+tr3826:
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr3867:
+tr3947:
{
WARN(ZS_BAD_BASE32HEX_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr4106:
+tr4186:
{
WARN(ZS_BAD_HEX_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_CHAR_COLON);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr4112:
+tr4192:
{
WARN(ZS_BAD_CHAR_COLON);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_HEX_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr4118:
+tr4198:
{
WARN(ZS_BAD_CHAR_DASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_HEX_CHAR);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr4205:
+tr4285:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr4227:
+tr4307:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr4250:
+tr4331:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr4269:
+tr4351:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
ERR(ZS_BAD_DIRECTIVE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
-tr4293:
+tr4375:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_RDATA);
- p--; {goto st307;}
+ p--; {goto st316;}
}
{
WARN(ZS_BAD_REST);
- p--; {goto st307;}
+ p--; {goto st316;}
}
goto st0;
st0:
@@ -3166,7 +3214,7 @@ tr2:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -3175,16 +3223,16 @@ tr3:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st1;
-tr4206:
+tr4286:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -3192,17 +3240,17 @@ tr4206:
s->buffer_length = 0;
}
goto st1;
-tr4208:
+tr4288:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -3211,17 +3259,17 @@ tr4208:
s->buffer_length = 0;
}
goto st1;
-tr4209:
+tr4289:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -3230,18 +3278,18 @@ tr4209:
s->buffer_length = 0;
}
goto st1;
-tr4279:
+tr4361:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -3249,18 +3297,18 @@ tr4279:
s->buffer_length = 0;
}
goto st1;
-tr4280:
+tr4362:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -3268,14 +3316,14 @@ tr4280:
s->buffer_length = 0;
}
goto st1;
-tr4270:
+tr4352:
{
NOERR;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -3283,20 +3331,20 @@ tr4270:
s->buffer_length = 0;
}
goto st1;
-tr4272:
+tr4354:
{
NOERR;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -3305,20 +3353,20 @@ tr4272:
s->buffer_length = 0;
}
goto st1;
-tr4273:
+tr4355:
{
NOERR;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -3364,7 +3412,8 @@ case 1:
case 83: goto tr18;
case 84: goto tr19;
case 85: goto tr20;
- case 90: goto tr21;
+ case 87: goto tr21;
+ case 90: goto tr22;
case 97: goto tr5;
case 99: goto tr6;
case 100: goto tr7;
@@ -3381,11 +3430,12 @@ case 1:
case 115: goto tr18;
case 116: goto tr19;
case 117: goto tr20;
- case 122: goto tr21;
- case 1802: goto tr22;
- case 1851: goto tr23;
- case 2058: goto tr24;
- case 2107: goto tr25;
+ case 119: goto tr21;
+ case 122: goto tr22;
+ case 1802: goto tr23;
+ case 1851: goto tr24;
+ case 2058: goto tr25;
+ case 2107: goto tr26;
}
if ( 48 <= _widec && _widec <= 57 )
goto tr4;
@@ -3405,11 +3455,11 @@ tr4:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
goto st2;
-tr30:
+tr31:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -3421,7 +3471,7 @@ tr30:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
goto st2;
@@ -3442,107 +3492,107 @@ case 2:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr27;
- case 32: goto tr27;
- case 40: goto tr28;
- case 41: goto tr29;
- case 68: goto tr31;
- case 72: goto tr32;
- case 77: goto tr33;
- case 83: goto st198;
- case 87: goto tr35;
- case 100: goto tr31;
- case 104: goto tr32;
- case 109: goto tr33;
- case 115: goto st198;
- case 119: goto tr35;
- case 2058: goto tr36;
- case 2107: goto tr37;
+ case 9: goto tr28;
+ case 32: goto tr28;
+ case 40: goto tr29;
+ case 41: goto tr30;
+ case 68: goto tr32;
+ case 72: goto tr33;
+ case 77: goto tr34;
+ case 83: goto st204;
+ case 87: goto tr36;
+ case 100: goto tr32;
+ case 104: goto tr33;
+ case 109: goto tr34;
+ case 115: goto st204;
+ case 119: goto tr36;
+ case 2058: goto tr37;
+ case 2107: goto tr38;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr30;
- goto tr26;
-tr40:
+ goto tr31;
+ goto tr27;
+tr41:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st3;
-tr41:
+tr42:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st3;
-tr59:
+tr61:
{
s->line_counter++;
}
goto st3;
-tr27:
+tr28:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
goto st3;
-tr28:
+tr29:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st3;
-tr29:
+tr30:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st3;
-tr36:
+tr37:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
goto st3;
-tr807:
+tr825:
{
s->buffer[s->buffer_length++] = 0;
@@ -3560,13 +3610,13 @@ tr807:
s->line_counter++;
}
goto st3;
-tr800:
+tr818:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -3574,17 +3624,17 @@ tr800:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
goto st3;
-tr801:
+tr819:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -3592,24 +3642,24 @@ tr801:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st3;
-tr802:
+tr820:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -3617,24 +3667,24 @@ tr802:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st3;
-tr804:
+tr822:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -3642,7 +3692,7 @@ tr804:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -3668,46 +3718,48 @@ case 3:
switch( _widec ) {
case 9: goto st3;
case 32: goto st3;
- case 40: goto tr40;
- case 41: goto tr41;
- case 65: goto tr42;
- case 67: goto tr43;
- case 68: goto tr44;
- case 69: goto tr45;
- case 72: goto tr46;
- case 73: goto tr47;
- case 75: goto tr48;
- case 76: goto tr49;
- case 77: goto tr50;
- case 78: goto tr51;
- case 79: goto tr52;
- case 80: goto tr53;
- case 82: goto tr54;
- case 83: goto tr55;
- case 84: goto tr56;
- case 85: goto tr57;
- case 90: goto tr58;
- case 97: goto tr42;
- case 99: goto tr43;
- case 100: goto tr44;
- case 101: goto tr45;
- case 104: goto tr46;
- case 105: goto tr47;
- case 107: goto tr48;
- case 108: goto tr49;
- case 109: goto tr50;
- case 110: goto tr51;
- case 111: goto tr52;
- case 112: goto tr53;
- case 114: goto tr54;
- case 115: goto tr55;
- case 116: goto tr56;
- case 117: goto tr57;
- case 122: goto tr58;
- case 2058: goto tr59;
- case 2107: goto tr60;
- }
- goto tr38;
+ case 40: goto tr41;
+ case 41: goto tr42;
+ case 65: goto tr43;
+ case 67: goto tr44;
+ case 68: goto tr45;
+ case 69: goto tr46;
+ case 72: goto tr47;
+ case 73: goto tr48;
+ case 75: goto tr49;
+ case 76: goto tr50;
+ case 77: goto tr51;
+ case 78: goto tr52;
+ case 79: goto tr53;
+ case 80: goto tr54;
+ case 82: goto tr55;
+ case 83: goto tr56;
+ case 84: goto tr57;
+ case 85: goto tr58;
+ case 87: goto tr59;
+ case 90: goto tr60;
+ case 97: goto tr43;
+ case 99: goto tr44;
+ case 100: goto tr45;
+ case 101: goto tr46;
+ case 104: goto tr47;
+ case 105: goto tr48;
+ case 107: goto tr49;
+ case 108: goto tr50;
+ case 109: goto tr51;
+ case 110: goto tr52;
+ case 111: goto tr53;
+ case 112: goto tr54;
+ case 114: goto tr55;
+ case 115: goto tr56;
+ case 116: goto tr57;
+ case 117: goto tr58;
+ case 119: goto tr59;
+ case 122: goto tr60;
+ case 2058: goto tr61;
+ case 2107: goto tr62;
+ }
+ goto tr39;
tr5:
{
s->r_class = s->default_class;
@@ -3716,12 +3768,12 @@ tr5:
s->r_ttl = s->default_ttl;
}
goto st4;
-tr42:
+tr43:
{
s->r_class = s->default_class;
}
goto st4;
-tr708:
+tr725:
{
s->r_ttl = s->default_ttl;
}
@@ -3747,54 +3799,54 @@ case 4:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr62;
- case 32: goto tr62;
- case 40: goto tr63;
- case 41: goto tr64;
- case 65: goto st266;
- case 70: goto st269;
- case 80: goto st273;
- case 97: goto st266;
- case 102: goto st269;
- case 112: goto st273;
- case 3082: goto tr68;
- case 3131: goto tr69;
- case 3338: goto tr70;
- case 3387: goto tr70;
- case 3594: goto tr71;
- case 3643: goto tr72;
- }
- goto tr61;
-tr76:
+ case 9: goto tr64;
+ case 32: goto tr64;
+ case 40: goto tr65;
+ case 41: goto tr66;
+ case 65: goto st274;
+ case 70: goto st277;
+ case 80: goto st281;
+ case 97: goto st274;
+ case 102: goto st277;
+ case 112: goto st281;
+ case 3082: goto tr70;
+ case 3131: goto tr71;
+ case 3338: goto tr72;
+ case 3387: goto tr72;
+ case 3594: goto tr73;
+ case 3643: goto tr74;
+ }
+ goto tr63;
+tr78:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr77:
+tr79:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr79:
+tr81:
{
s->line_counter++;
}
goto st5;
-tr62:
+tr64:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr63:
+tr65:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -3802,12 +3854,12 @@ tr63:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr64:
+tr66:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -3815,12 +3867,12 @@ tr64:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr68:
+tr70:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -3829,7 +3881,7 @@ tr68:
s->line_counter++;
}
goto st5;
-tr100:
+tr102:
{
s->buffer[s->buffer_length++] = 0;
@@ -3847,13 +3899,13 @@ tr100:
s->line_counter++;
}
goto st5;
-tr163:
+tr166:
{ s->r_type = KNOT_RRTYPE_CAA; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr164:
+tr167:
{ s->r_type = KNOT_RRTYPE_CAA; }
{
rdata_tail = s->r_data;
@@ -3861,12 +3913,12 @@ tr164:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr165:
+tr168:
{ s->r_type = KNOT_RRTYPE_CAA; }
{
rdata_tail = s->r_data;
@@ -3874,12 +3926,12 @@ tr165:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr166:
+tr169:
{ s->r_type = KNOT_RRTYPE_CAA; }
{
rdata_tail = s->r_data;
@@ -3888,13 +3940,13 @@ tr166:
s->line_counter++;
}
goto st5;
-tr185:
+tr188:
{ s->r_type = KNOT_RRTYPE_CDNSKEY; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr186:
+tr189:
{ s->r_type = KNOT_RRTYPE_CDNSKEY; }
{
rdata_tail = s->r_data;
@@ -3902,12 +3954,12 @@ tr186:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr187:
+tr190:
{ s->r_type = KNOT_RRTYPE_CDNSKEY; }
{
rdata_tail = s->r_data;
@@ -3915,12 +3967,12 @@ tr187:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr188:
+tr191:
{ s->r_type = KNOT_RRTYPE_CDNSKEY; }
{
rdata_tail = s->r_data;
@@ -3929,13 +3981,13 @@ tr188:
s->line_counter++;
}
goto st5;
-tr193:
+tr196:
{ s->r_type = KNOT_RRTYPE_CDS; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr194:
+tr197:
{ s->r_type = KNOT_RRTYPE_CDS; }
{
rdata_tail = s->r_data;
@@ -3943,12 +3995,12 @@ tr194:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr195:
+tr198:
{ s->r_type = KNOT_RRTYPE_CDS; }
{
rdata_tail = s->r_data;
@@ -3956,12 +4008,12 @@ tr195:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr196:
+tr199:
{ s->r_type = KNOT_RRTYPE_CDS; }
{
rdata_tail = s->r_data;
@@ -3970,13 +4022,13 @@ tr196:
s->line_counter++;
}
goto st5;
-tr203:
+tr206:
{ s->r_type = KNOT_RRTYPE_CERT; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr204:
+tr207:
{ s->r_type = KNOT_RRTYPE_CERT; }
{
rdata_tail = s->r_data;
@@ -3984,12 +4036,12 @@ tr204:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr205:
+tr208:
{ s->r_type = KNOT_RRTYPE_CERT; }
{
rdata_tail = s->r_data;
@@ -3997,12 +4049,12 @@ tr205:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr206:
+tr209:
{ s->r_type = KNOT_RRTYPE_CERT; }
{
rdata_tail = s->r_data;
@@ -4011,13 +4063,13 @@ tr206:
s->line_counter++;
}
goto st5;
-tr214:
+tr217:
{ s->r_type = KNOT_RRTYPE_CNAME; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr215:
+tr218:
{ s->r_type = KNOT_RRTYPE_CNAME; }
{
rdata_tail = s->r_data;
@@ -4025,12 +4077,12 @@ tr215:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr216:
+tr219:
{ s->r_type = KNOT_RRTYPE_CNAME; }
{
rdata_tail = s->r_data;
@@ -4038,12 +4090,12 @@ tr216:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr217:
+tr220:
{ s->r_type = KNOT_RRTYPE_CNAME; }
{
rdata_tail = s->r_data;
@@ -4052,13 +4104,13 @@ tr217:
s->line_counter++;
}
goto st5;
-tr225:
+tr228:
{ s->r_type = KNOT_RRTYPE_CSYNC; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr226:
+tr229:
{ s->r_type = KNOT_RRTYPE_CSYNC; }
{
rdata_tail = s->r_data;
@@ -4066,12 +4118,12 @@ tr226:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr227:
+tr230:
{ s->r_type = KNOT_RRTYPE_CSYNC; }
{
rdata_tail = s->r_data;
@@ -4079,12 +4131,12 @@ tr227:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr228:
+tr231:
{ s->r_type = KNOT_RRTYPE_CSYNC; }
{
rdata_tail = s->r_data;
@@ -4093,13 +4145,13 @@ tr228:
s->line_counter++;
}
goto st5;
-tr239:
+tr242:
{ s->r_type = KNOT_RRTYPE_DHCID; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr240:
+tr243:
{ s->r_type = KNOT_RRTYPE_DHCID; }
{
rdata_tail = s->r_data;
@@ -4107,12 +4159,12 @@ tr240:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr241:
+tr244:
{ s->r_type = KNOT_RRTYPE_DHCID; }
{
rdata_tail = s->r_data;
@@ -4120,12 +4172,12 @@ tr241:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr242:
+tr245:
{ s->r_type = KNOT_RRTYPE_DHCID; }
{
rdata_tail = s->r_data;
@@ -4134,13 +4186,13 @@ tr242:
s->line_counter++;
}
goto st5;
-tr251:
+tr254:
{ s->r_type = KNOT_RRTYPE_DNAME; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr252:
+tr255:
{ s->r_type = KNOT_RRTYPE_DNAME; }
{
rdata_tail = s->r_data;
@@ -4148,12 +4200,12 @@ tr252:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr253:
+tr256:
{ s->r_type = KNOT_RRTYPE_DNAME; }
{
rdata_tail = s->r_data;
@@ -4161,12 +4213,12 @@ tr253:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr254:
+tr257:
{ s->r_type = KNOT_RRTYPE_DNAME; }
{
rdata_tail = s->r_data;
@@ -4175,13 +4227,13 @@ tr254:
s->line_counter++;
}
goto st5;
-tr262:
+tr265:
{ s->r_type = KNOT_RRTYPE_DNSKEY; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr263:
+tr266:
{ s->r_type = KNOT_RRTYPE_DNSKEY; }
{
rdata_tail = s->r_data;
@@ -4189,12 +4241,12 @@ tr263:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr264:
+tr267:
{ s->r_type = KNOT_RRTYPE_DNSKEY; }
{
rdata_tail = s->r_data;
@@ -4202,12 +4254,12 @@ tr264:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr265:
+tr268:
{ s->r_type = KNOT_RRTYPE_DNSKEY; }
{
rdata_tail = s->r_data;
@@ -4216,13 +4268,13 @@ tr265:
s->line_counter++;
}
goto st5;
-tr270:
+tr273:
{ s->r_type = KNOT_RRTYPE_DS; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr271:
+tr274:
{ s->r_type = KNOT_RRTYPE_DS; }
{
rdata_tail = s->r_data;
@@ -4230,12 +4282,12 @@ tr271:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr272:
+tr275:
{ s->r_type = KNOT_RRTYPE_DS; }
{
rdata_tail = s->r_data;
@@ -4243,12 +4295,12 @@ tr272:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr273:
+tr276:
{ s->r_type = KNOT_RRTYPE_DS; }
{
rdata_tail = s->r_data;
@@ -4257,13 +4309,13 @@ tr273:
s->line_counter++;
}
goto st5;
-tr283:
+tr286:
{ s->r_type = KNOT_RRTYPE_EUI48; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr284:
+tr287:
{ s->r_type = KNOT_RRTYPE_EUI48; }
{
rdata_tail = s->r_data;
@@ -4271,12 +4323,12 @@ tr284:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr285:
+tr288:
{ s->r_type = KNOT_RRTYPE_EUI48; }
{
rdata_tail = s->r_data;
@@ -4284,12 +4336,12 @@ tr285:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr286:
+tr289:
{ s->r_type = KNOT_RRTYPE_EUI48; }
{
rdata_tail = s->r_data;
@@ -4298,13 +4350,13 @@ tr286:
s->line_counter++;
}
goto st5;
-tr292:
+tr295:
{ s->r_type = KNOT_RRTYPE_EUI64; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr293:
+tr296:
{ s->r_type = KNOT_RRTYPE_EUI64; }
{
rdata_tail = s->r_data;
@@ -4312,12 +4364,12 @@ tr293:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr294:
+tr297:
{ s->r_type = KNOT_RRTYPE_EUI64; }
{
rdata_tail = s->r_data;
@@ -4325,12 +4377,12 @@ tr294:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr295:
+tr298:
{ s->r_type = KNOT_RRTYPE_EUI64; }
{
rdata_tail = s->r_data;
@@ -4339,13 +4391,13 @@ tr295:
s->line_counter++;
}
goto st5;
-tr305:
+tr308:
{ s->r_type = KNOT_RRTYPE_HINFO; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr306:
+tr309:
{ s->r_type = KNOT_RRTYPE_HINFO; }
{
rdata_tail = s->r_data;
@@ -4353,12 +4405,12 @@ tr306:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr307:
+tr310:
{ s->r_type = KNOT_RRTYPE_HINFO; }
{
rdata_tail = s->r_data;
@@ -4366,12 +4418,12 @@ tr307:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr308:
+tr311:
{ s->r_type = KNOT_RRTYPE_HINFO; }
{
rdata_tail = s->r_data;
@@ -4380,13 +4432,13 @@ tr308:
s->line_counter++;
}
goto st5;
-tr316:
+tr319:
{ s->r_type = KNOT_RRTYPE_HTTPS; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr317:
+tr320:
{ s->r_type = KNOT_RRTYPE_HTTPS; }
{
rdata_tail = s->r_data;
@@ -4394,12 +4446,12 @@ tr317:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr318:
+tr321:
{ s->r_type = KNOT_RRTYPE_HTTPS; }
{
rdata_tail = s->r_data;
@@ -4407,12 +4459,12 @@ tr318:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr319:
+tr322:
{ s->r_type = KNOT_RRTYPE_HTTPS; }
{
rdata_tail = s->r_data;
@@ -4421,13 +4473,13 @@ tr319:
s->line_counter++;
}
goto st5;
-tr359:
+tr363:
{ s->r_type = KNOT_RRTYPE_IPSECKEY; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr360:
+tr364:
{ s->r_type = KNOT_RRTYPE_IPSECKEY; }
{
rdata_tail = s->r_data;
@@ -4435,12 +4487,12 @@ tr360:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr361:
+tr365:
{ s->r_type = KNOT_RRTYPE_IPSECKEY; }
{
rdata_tail = s->r_data;
@@ -4448,12 +4500,12 @@ tr361:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr362:
+tr366:
{ s->r_type = KNOT_RRTYPE_IPSECKEY; }
{
rdata_tail = s->r_data;
@@ -4462,13 +4514,13 @@ tr362:
s->line_counter++;
}
goto st5;
-tr370:
+tr374:
{ s->r_type = KNOT_RRTYPE_KEY; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr371:
+tr375:
{ s->r_type = KNOT_RRTYPE_KEY; }
{
rdata_tail = s->r_data;
@@ -4476,12 +4528,12 @@ tr371:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr372:
+tr376:
{ s->r_type = KNOT_RRTYPE_KEY; }
{
rdata_tail = s->r_data;
@@ -4489,12 +4541,12 @@ tr372:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr373:
+tr377:
{ s->r_type = KNOT_RRTYPE_KEY; }
{
rdata_tail = s->r_data;
@@ -4503,13 +4555,13 @@ tr373:
s->line_counter++;
}
goto st5;
-tr378:
+tr382:
{ s->r_type = KNOT_RRTYPE_KX; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr379:
+tr383:
{ s->r_type = KNOT_RRTYPE_KX; }
{
rdata_tail = s->r_data;
@@ -4517,12 +4569,12 @@ tr379:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr380:
+tr384:
{ s->r_type = KNOT_RRTYPE_KX; }
{
rdata_tail = s->r_data;
@@ -4530,12 +4582,12 @@ tr380:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr381:
+tr385:
{ s->r_type = KNOT_RRTYPE_KX; }
{
rdata_tail = s->r_data;
@@ -4544,13 +4596,13 @@ tr381:
s->line_counter++;
}
goto st5;
-tr391:
+tr395:
{ s->r_type = KNOT_RRTYPE_L32; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr392:
+tr396:
{ s->r_type = KNOT_RRTYPE_L32; }
{
rdata_tail = s->r_data;
@@ -4558,12 +4610,12 @@ tr392:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr393:
+tr397:
{ s->r_type = KNOT_RRTYPE_L32; }
{
rdata_tail = s->r_data;
@@ -4571,12 +4623,12 @@ tr393:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr394:
+tr398:
{ s->r_type = KNOT_RRTYPE_L32; }
{
rdata_tail = s->r_data;
@@ -4585,13 +4637,13 @@ tr394:
s->line_counter++;
}
goto st5;
-tr400:
+tr404:
{ s->r_type = KNOT_RRTYPE_L64; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr401:
+tr405:
{ s->r_type = KNOT_RRTYPE_L64; }
{
rdata_tail = s->r_data;
@@ -4599,12 +4651,12 @@ tr401:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr402:
+tr406:
{ s->r_type = KNOT_RRTYPE_L64; }
{
rdata_tail = s->r_data;
@@ -4612,12 +4664,12 @@ tr402:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr403:
+tr407:
{ s->r_type = KNOT_RRTYPE_L64; }
{
rdata_tail = s->r_data;
@@ -4626,13 +4678,13 @@ tr403:
s->line_counter++;
}
goto st5;
-tr409:
+tr413:
{ s->r_type = KNOT_RRTYPE_LOC; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr410:
+tr414:
{ s->r_type = KNOT_RRTYPE_LOC; }
{
rdata_tail = s->r_data;
@@ -4640,12 +4692,12 @@ tr410:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr411:
+tr415:
{ s->r_type = KNOT_RRTYPE_LOC; }
{
rdata_tail = s->r_data;
@@ -4653,12 +4705,12 @@ tr411:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr412:
+tr416:
{ s->r_type = KNOT_RRTYPE_LOC; }
{
rdata_tail = s->r_data;
@@ -4667,13 +4719,13 @@ tr412:
s->line_counter++;
}
goto st5;
-tr417:
+tr421:
{ s->r_type = KNOT_RRTYPE_LP; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr418:
+tr422:
{ s->r_type = KNOT_RRTYPE_LP; }
{
rdata_tail = s->r_data;
@@ -4681,12 +4733,12 @@ tr418:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr419:
+tr423:
{ s->r_type = KNOT_RRTYPE_LP; }
{
rdata_tail = s->r_data;
@@ -4694,12 +4746,12 @@ tr419:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr420:
+tr424:
{ s->r_type = KNOT_RRTYPE_LP; }
{
rdata_tail = s->r_data;
@@ -4708,13 +4760,13 @@ tr420:
s->line_counter++;
}
goto st5;
-tr430:
+tr434:
{ s->r_type = KNOT_RRTYPE_MINFO; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr431:
+tr435:
{ s->r_type = KNOT_RRTYPE_MINFO; }
{
rdata_tail = s->r_data;
@@ -4722,12 +4774,12 @@ tr431:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr432:
+tr436:
{ s->r_type = KNOT_RRTYPE_MINFO; }
{
rdata_tail = s->r_data;
@@ -4735,12 +4787,12 @@ tr432:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr433:
+tr437:
{ s->r_type = KNOT_RRTYPE_MINFO; }
{
rdata_tail = s->r_data;
@@ -4749,13 +4801,13 @@ tr433:
s->line_counter++;
}
goto st5;
-tr438:
+tr442:
{ s->r_type = KNOT_RRTYPE_MX; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr439:
+tr443:
{ s->r_type = KNOT_RRTYPE_MX; }
{
rdata_tail = s->r_data;
@@ -4763,12 +4815,12 @@ tr439:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr440:
+tr444:
{ s->r_type = KNOT_RRTYPE_MX; }
{
rdata_tail = s->r_data;
@@ -4776,12 +4828,12 @@ tr440:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr441:
+tr445:
{ s->r_type = KNOT_RRTYPE_MX; }
{
rdata_tail = s->r_data;
@@ -4790,13 +4842,13 @@ tr441:
s->line_counter++;
}
goto st5;
-tr452:
+tr456:
{ s->r_type = KNOT_RRTYPE_NAPTR; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr453:
+tr457:
{ s->r_type = KNOT_RRTYPE_NAPTR; }
{
rdata_tail = s->r_data;
@@ -4804,12 +4856,12 @@ tr453:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr454:
+tr458:
{ s->r_type = KNOT_RRTYPE_NAPTR; }
{
rdata_tail = s->r_data;
@@ -4817,12 +4869,12 @@ tr454:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr455:
+tr459:
{ s->r_type = KNOT_RRTYPE_NAPTR; }
{
rdata_tail = s->r_data;
@@ -4831,13 +4883,13 @@ tr455:
s->line_counter++;
}
goto st5;
-tr461:
+tr465:
{ s->r_type = KNOT_RRTYPE_NID; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr462:
+tr466:
{ s->r_type = KNOT_RRTYPE_NID; }
{
rdata_tail = s->r_data;
@@ -4845,12 +4897,12 @@ tr462:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr463:
+tr467:
{ s->r_type = KNOT_RRTYPE_NID; }
{
rdata_tail = s->r_data;
@@ -4858,12 +4910,12 @@ tr463:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr464:
+tr468:
{ s->r_type = KNOT_RRTYPE_NID; }
{
rdata_tail = s->r_data;
@@ -4872,13 +4924,13 @@ tr464:
s->line_counter++;
}
goto st5;
-tr469:
+tr473:
{ s->r_type = KNOT_RRTYPE_NS; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr470:
+tr474:
{ s->r_type = KNOT_RRTYPE_NS; }
{
rdata_tail = s->r_data;
@@ -4886,12 +4938,12 @@ tr470:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr471:
+tr475:
{ s->r_type = KNOT_RRTYPE_NS; }
{
rdata_tail = s->r_data;
@@ -4899,12 +4951,12 @@ tr471:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr473:
+tr477:
{ s->r_type = KNOT_RRTYPE_NS; }
{
rdata_tail = s->r_data;
@@ -4913,13 +4965,13 @@ tr473:
s->line_counter++;
}
goto st5;
-tr479:
+tr483:
{ s->r_type = KNOT_RRTYPE_NSEC; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr480:
+tr484:
{ s->r_type = KNOT_RRTYPE_NSEC; }
{
rdata_tail = s->r_data;
@@ -4927,12 +4979,12 @@ tr480:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr481:
+tr485:
{ s->r_type = KNOT_RRTYPE_NSEC; }
{
rdata_tail = s->r_data;
@@ -4940,12 +4992,12 @@ tr481:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr483:
+tr487:
{ s->r_type = KNOT_RRTYPE_NSEC; }
{
rdata_tail = s->r_data;
@@ -4954,13 +5006,13 @@ tr483:
s->line_counter++;
}
goto st5;
-tr488:
+tr492:
{ s->r_type = KNOT_RRTYPE_NSEC3; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr489:
+tr493:
{ s->r_type = KNOT_RRTYPE_NSEC3; }
{
rdata_tail = s->r_data;
@@ -4968,12 +5020,12 @@ tr489:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr490:
+tr494:
{ s->r_type = KNOT_RRTYPE_NSEC3; }
{
rdata_tail = s->r_data;
@@ -4981,12 +5033,12 @@ tr490:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr492:
+tr496:
{ s->r_type = KNOT_RRTYPE_NSEC3; }
{
rdata_tail = s->r_data;
@@ -4995,13 +5047,13 @@ tr492:
s->line_counter++;
}
goto st5;
-tr501:
+tr505:
{ s->r_type = KNOT_RRTYPE_NSEC3PARAM; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr502:
+tr506:
{ s->r_type = KNOT_RRTYPE_NSEC3PARAM; }
{
rdata_tail = s->r_data;
@@ -5009,12 +5061,12 @@ tr502:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr503:
+tr507:
{ s->r_type = KNOT_RRTYPE_NSEC3PARAM; }
{
rdata_tail = s->r_data;
@@ -5022,12 +5074,12 @@ tr503:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr504:
+tr508:
{ s->r_type = KNOT_RRTYPE_NSEC3PARAM; }
{
rdata_tail = s->r_data;
@@ -5036,13 +5088,13 @@ tr504:
s->line_counter++;
}
goto st5;
-tr518:
+tr522:
{ s->r_type = KNOT_RRTYPE_OPENPGPKEY; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr519:
+tr523:
{ s->r_type = KNOT_RRTYPE_OPENPGPKEY; }
{
rdata_tail = s->r_data;
@@ -5050,12 +5102,12 @@ tr519:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr520:
+tr524:
{ s->r_type = KNOT_RRTYPE_OPENPGPKEY; }
{
rdata_tail = s->r_data;
@@ -5063,12 +5115,12 @@ tr520:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr521:
+tr525:
{ s->r_type = KNOT_RRTYPE_OPENPGPKEY; }
{
rdata_tail = s->r_data;
@@ -5077,13 +5129,13 @@ tr521:
s->line_counter++;
}
goto st5;
-tr528:
+tr532:
{ s->r_type = KNOT_RRTYPE_PTR; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr529:
+tr533:
{ s->r_type = KNOT_RRTYPE_PTR; }
{
rdata_tail = s->r_data;
@@ -5091,12 +5143,12 @@ tr529:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr530:
+tr534:
{ s->r_type = KNOT_RRTYPE_PTR; }
{
rdata_tail = s->r_data;
@@ -5104,12 +5156,12 @@ tr530:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr531:
+tr535:
{ s->r_type = KNOT_RRTYPE_PTR; }
{
rdata_tail = s->r_data;
@@ -5118,13 +5170,13 @@ tr531:
s->line_counter++;
}
goto st5;
-tr539:
+tr543:
{ s->r_type = KNOT_RRTYPE_RP; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr540:
+tr544:
{ s->r_type = KNOT_RRTYPE_RP; }
{
rdata_tail = s->r_data;
@@ -5132,12 +5184,12 @@ tr540:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr541:
+tr545:
{ s->r_type = KNOT_RRTYPE_RP; }
{
rdata_tail = s->r_data;
@@ -5145,12 +5197,12 @@ tr541:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr542:
+tr546:
{ s->r_type = KNOT_RRTYPE_RP; }
{
rdata_tail = s->r_data;
@@ -5159,13 +5211,13 @@ tr542:
s->line_counter++;
}
goto st5;
-tr550:
+tr554:
{ s->r_type = KNOT_RRTYPE_RRSIG; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr551:
+tr555:
{ s->r_type = KNOT_RRTYPE_RRSIG; }
{
rdata_tail = s->r_data;
@@ -5173,12 +5225,12 @@ tr551:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr552:
+tr556:
{ s->r_type = KNOT_RRTYPE_RRSIG; }
{
rdata_tail = s->r_data;
@@ -5186,12 +5238,12 @@ tr552:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr553:
+tr557:
{ s->r_type = KNOT_RRTYPE_RRSIG; }
{
rdata_tail = s->r_data;
@@ -5200,13 +5252,13 @@ tr553:
s->line_counter++;
}
goto st5;
-tr558:
+tr562:
{ s->r_type = KNOT_RRTYPE_RT; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr559:
+tr563:
{ s->r_type = KNOT_RRTYPE_RT; }
{
rdata_tail = s->r_data;
@@ -5214,12 +5266,12 @@ tr559:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr560:
+tr564:
{ s->r_type = KNOT_RRTYPE_RT; }
{
rdata_tail = s->r_data;
@@ -5227,12 +5279,12 @@ tr560:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr561:
+tr565:
{ s->r_type = KNOT_RRTYPE_RT; }
{
rdata_tail = s->r_data;
@@ -5241,13 +5293,13 @@ tr561:
s->line_counter++;
}
goto st5;
-tr576:
+tr580:
{ s->r_type = KNOT_RRTYPE_SMIMEA; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr577:
+tr581:
{ s->r_type = KNOT_RRTYPE_SMIMEA; }
{
rdata_tail = s->r_data;
@@ -5255,12 +5307,12 @@ tr577:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr578:
+tr582:
{ s->r_type = KNOT_RRTYPE_SMIMEA; }
{
rdata_tail = s->r_data;
@@ -5268,12 +5320,12 @@ tr578:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr579:
+tr583:
{ s->r_type = KNOT_RRTYPE_SMIMEA; }
{
rdata_tail = s->r_data;
@@ -5282,13 +5334,13 @@ tr579:
s->line_counter++;
}
goto st5;
-tr585:
+tr589:
{ s->r_type = KNOT_RRTYPE_SOA; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr586:
+tr590:
{ s->r_type = KNOT_RRTYPE_SOA; }
{
rdata_tail = s->r_data;
@@ -5296,12 +5348,12 @@ tr586:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr587:
+tr591:
{ s->r_type = KNOT_RRTYPE_SOA; }
{
rdata_tail = s->r_data;
@@ -5309,12 +5361,12 @@ tr587:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr588:
+tr592:
{ s->r_type = KNOT_RRTYPE_SOA; }
{
rdata_tail = s->r_data;
@@ -5323,13 +5375,13 @@ tr588:
s->line_counter++;
}
goto st5;
-tr594:
+tr598:
{ s->r_type = KNOT_RRTYPE_SPF; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr595:
+tr599:
{ s->r_type = KNOT_RRTYPE_SPF; }
{
rdata_tail = s->r_data;
@@ -5337,12 +5389,12 @@ tr595:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr596:
+tr600:
{ s->r_type = KNOT_RRTYPE_SPF; }
{
rdata_tail = s->r_data;
@@ -5350,12 +5402,12 @@ tr596:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr597:
+tr601:
{ s->r_type = KNOT_RRTYPE_SPF; }
{
rdata_tail = s->r_data;
@@ -5364,13 +5416,13 @@ tr597:
s->line_counter++;
}
goto st5;
-tr603:
+tr607:
{ s->r_type = KNOT_RRTYPE_SRV; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr604:
+tr608:
{ s->r_type = KNOT_RRTYPE_SRV; }
{
rdata_tail = s->r_data;
@@ -5378,12 +5430,12 @@ tr604:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr605:
+tr609:
{ s->r_type = KNOT_RRTYPE_SRV; }
{
rdata_tail = s->r_data;
@@ -5391,12 +5443,12 @@ tr605:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr606:
+tr610:
{ s->r_type = KNOT_RRTYPE_SRV; }
{
rdata_tail = s->r_data;
@@ -5405,13 +5457,13 @@ tr606:
s->line_counter++;
}
goto st5;
-tr614:
+tr618:
{ s->r_type = KNOT_RRTYPE_SSHFP; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr615:
+tr619:
{ s->r_type = KNOT_RRTYPE_SSHFP; }
{
rdata_tail = s->r_data;
@@ -5419,12 +5471,12 @@ tr615:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr616:
+tr620:
{ s->r_type = KNOT_RRTYPE_SSHFP; }
{
rdata_tail = s->r_data;
@@ -5432,12 +5484,12 @@ tr616:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr617:
+tr621:
{ s->r_type = KNOT_RRTYPE_SSHFP; }
{
rdata_tail = s->r_data;
@@ -5446,13 +5498,13 @@ tr617:
s->line_counter++;
}
goto st5;
-tr624:
+tr628:
{ s->r_type = KNOT_RRTYPE_SVCB; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr625:
+tr629:
{ s->r_type = KNOT_RRTYPE_SVCB; }
{
rdata_tail = s->r_data;
@@ -5460,12 +5512,12 @@ tr625:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr626:
+tr630:
{ s->r_type = KNOT_RRTYPE_SVCB; }
{
rdata_tail = s->r_data;
@@ -5473,12 +5525,12 @@ tr626:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr627:
+tr631:
{ s->r_type = KNOT_RRTYPE_SVCB; }
{
rdata_tail = s->r_data;
@@ -5487,13 +5539,13 @@ tr627:
s->line_counter++;
}
goto st5;
-tr637:
+tr641:
{ s->r_type = KNOT_RRTYPE_TLSA; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr638:
+tr642:
{ s->r_type = KNOT_RRTYPE_TLSA; }
{
rdata_tail = s->r_data;
@@ -5501,12 +5553,12 @@ tr638:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr639:
+tr643:
{ s->r_type = KNOT_RRTYPE_TLSA; }
{
rdata_tail = s->r_data;
@@ -5514,12 +5566,12 @@ tr639:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr640:
+tr644:
{ s->r_type = KNOT_RRTYPE_TLSA; }
{
rdata_tail = s->r_data;
@@ -5528,13 +5580,13 @@ tr640:
s->line_counter++;
}
goto st5;
-tr646:
+tr650:
{ s->r_type = KNOT_RRTYPE_TXT; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr647:
+tr651:
{ s->r_type = KNOT_RRTYPE_TXT; }
{
rdata_tail = s->r_data;
@@ -5542,12 +5594,12 @@ tr647:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr648:
+tr652:
{ s->r_type = KNOT_RRTYPE_TXT; }
{
rdata_tail = s->r_data;
@@ -5555,12 +5607,12 @@ tr648:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr649:
+tr653:
{ s->r_type = KNOT_RRTYPE_TXT; }
{
rdata_tail = s->r_data;
@@ -5569,26 +5621,26 @@ tr649:
s->line_counter++;
}
goto st5;
-tr659:
+tr663:
{
if (s->number64 <= UINT16_MAX) {
s->r_type = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
rdata_tail = s->r_data;
}
goto st5;
-tr660:
+tr664:
{
if (s->number64 <= UINT16_MAX) {
s->r_type = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -5597,18 +5649,18 @@ tr660:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr661:
+tr665:
{
if (s->number64 <= UINT16_MAX) {
s->r_type = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -5617,18 +5669,18 @@ tr661:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr663:
+tr667:
{
if (s->number64 <= UINT16_MAX) {
s->r_type = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -5638,13 +5690,13 @@ tr663:
s->line_counter++;
}
goto st5;
-tr670:
+tr674:
{ s->r_type = KNOT_RRTYPE_URI; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr671:
+tr675:
{ s->r_type = KNOT_RRTYPE_URI; }
{
rdata_tail = s->r_data;
@@ -5652,12 +5704,12 @@ tr671:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr672:
+tr676:
{ s->r_type = KNOT_RRTYPE_URI; }
{
rdata_tail = s->r_data;
@@ -5665,12 +5717,12 @@ tr672:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr673:
+tr677:
{ s->r_type = KNOT_RRTYPE_URI; }
{
rdata_tail = s->r_data;
@@ -5679,13 +5731,54 @@ tr673:
s->line_counter++;
}
goto st5;
-tr683:
+tr687:
+ { s->r_type = KNOT_RRTYPE_WALLET; }
+ {
+ rdata_tail = s->r_data;
+ }
+ goto st5;
+tr688:
+ { s->r_type = KNOT_RRTYPE_WALLET; }
+ {
+ rdata_tail = s->r_data;
+ }
+ {
+ if (s->multiline == true) {
+ ERR(ZS_LEFT_PARENTHESIS);
+ p--; {goto st316;}
+ }
+ s->multiline = true;
+ }
+ goto st5;
+tr689:
+ { s->r_type = KNOT_RRTYPE_WALLET; }
+ {
+ rdata_tail = s->r_data;
+ }
+ {
+ if (s->multiline == false) {
+ ERR(ZS_RIGHT_PARENTHESIS);
+ p--; {goto st316;}
+ }
+ s->multiline = false;
+ }
+ goto st5;
+tr690:
+ { s->r_type = KNOT_RRTYPE_WALLET; }
+ {
+ rdata_tail = s->r_data;
+ }
+ {
+ s->line_counter++;
+ }
+ goto st5;
+tr700:
{ s->r_type = KNOT_RRTYPE_ZONEMD; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr684:
+tr701:
{ s->r_type = KNOT_RRTYPE_ZONEMD; }
{
rdata_tail = s->r_data;
@@ -5693,12 +5786,12 @@ tr684:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr685:
+tr702:
{ s->r_type = KNOT_RRTYPE_ZONEMD; }
{
rdata_tail = s->r_data;
@@ -5706,12 +5799,12 @@ tr685:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr686:
+tr703:
{ s->r_type = KNOT_RRTYPE_ZONEMD; }
{
rdata_tail = s->r_data;
@@ -5720,13 +5813,13 @@ tr686:
s->line_counter++;
}
goto st5;
-tr933:
+tr951:
{ s->r_type = KNOT_RRTYPE_AAAA; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr934:
+tr952:
{ s->r_type = KNOT_RRTYPE_AAAA; }
{
rdata_tail = s->r_data;
@@ -5734,12 +5827,12 @@ tr934:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr935:
+tr953:
{ s->r_type = KNOT_RRTYPE_AAAA; }
{
rdata_tail = s->r_data;
@@ -5747,12 +5840,12 @@ tr935:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr936:
+tr954:
{ s->r_type = KNOT_RRTYPE_AAAA; }
{
rdata_tail = s->r_data;
@@ -5761,13 +5854,13 @@ tr936:
s->line_counter++;
}
goto st5;
-tr944:
+tr962:
{ s->r_type = KNOT_RRTYPE_AFSDB; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr945:
+tr963:
{ s->r_type = KNOT_RRTYPE_AFSDB; }
{
rdata_tail = s->r_data;
@@ -5775,12 +5868,12 @@ tr945:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr946:
+tr964:
{ s->r_type = KNOT_RRTYPE_AFSDB; }
{
rdata_tail = s->r_data;
@@ -5788,12 +5881,12 @@ tr946:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr947:
+tr965:
{ s->r_type = KNOT_RRTYPE_AFSDB; }
{
rdata_tail = s->r_data;
@@ -5802,13 +5895,13 @@ tr947:
s->line_counter++;
}
goto st5;
-tr953:
+tr971:
{ s->r_type = KNOT_RRTYPE_APL; }
{
rdata_tail = s->r_data;
}
goto st5;
-tr954:
+tr972:
{ s->r_type = KNOT_RRTYPE_APL; }
{
rdata_tail = s->r_data;
@@ -5816,12 +5909,12 @@ tr954:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st5;
-tr955:
+tr973:
{ s->r_type = KNOT_RRTYPE_APL; }
{
rdata_tail = s->r_data;
@@ -5829,12 +5922,12 @@ tr955:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st5;
-tr956:
+tr974:
{ s->r_type = KNOT_RRTYPE_APL; }
{
rdata_tail = s->r_data;
@@ -5866,26 +5959,26 @@ case 5:
switch( _widec ) {
case 9: goto st5;
case 32: goto st5;
- case 40: goto tr76;
- case 41: goto tr77;
- case 92: goto tr78;
- case 3082: goto tr79;
- case 3131: goto tr80;
- case 3338: goto tr73;
- case 3387: goto tr73;
- case 3594: goto tr81;
- case 3643: goto tr82;
+ case 40: goto tr78;
+ case 41: goto tr79;
+ case 92: goto tr80;
+ case 3082: goto tr81;
+ case 3131: goto tr82;
+ case 3338: goto tr75;
+ case 3387: goto tr75;
+ case 3594: goto tr83;
+ case 3643: goto tr84;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr73;
+ goto tr75;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr73;
+ goto tr75;
} else
- goto tr73;
- goto tr75;
-tr70:
+ goto tr75;
+ goto tr77;
+tr72:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -5894,182 +5987,184 @@ tr70:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr73:
+tr75:
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr97:
+tr99:
{
if (*wrap == WRAP_NONE) {
p--;
@@ -6079,92 +6174,93 @@ tr97:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr98:
+tr100:
{
switch (s->r_type) {
// Next types must not have empty rdata.
@@ -6215,15 +6311,16 @@ tr98:
case KNOT_RRTYPE_CAA:
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st540;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st555;}
// Next types can have empty rdata.
case KNOT_RRTYPE_APL:
default:
- {stack[top++] = 6;goto st549;}
+ {stack[top++] = 6;goto st564;}
}
}
goto st6;
-tr168:
+tr171:
{ s->r_type = KNOT_RRTYPE_CAA; }
{
rdata_tail = s->r_data;
@@ -6232,92 +6329,93 @@ tr168:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr190:
+tr193:
{ s->r_type = KNOT_RRTYPE_CDNSKEY; }
{
rdata_tail = s->r_data;
@@ -6326,92 +6424,93 @@ tr190:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr198:
+tr201:
{ s->r_type = KNOT_RRTYPE_CDS; }
{
rdata_tail = s->r_data;
@@ -6420,92 +6519,93 @@ tr198:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr208:
+tr211:
{ s->r_type = KNOT_RRTYPE_CERT; }
{
rdata_tail = s->r_data;
@@ -6514,92 +6614,93 @@ tr208:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr219:
+tr222:
{ s->r_type = KNOT_RRTYPE_CNAME; }
{
rdata_tail = s->r_data;
@@ -6608,92 +6709,93 @@ tr219:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr230:
+tr233:
{ s->r_type = KNOT_RRTYPE_CSYNC; }
{
rdata_tail = s->r_data;
@@ -6702,92 +6804,93 @@ tr230:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr244:
+tr247:
{ s->r_type = KNOT_RRTYPE_DHCID; }
{
rdata_tail = s->r_data;
@@ -6796,92 +6899,93 @@ tr244:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr256:
+tr259:
{ s->r_type = KNOT_RRTYPE_DNAME; }
{
rdata_tail = s->r_data;
@@ -6890,92 +6994,93 @@ tr256:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr267:
+tr270:
{ s->r_type = KNOT_RRTYPE_DNSKEY; }
{
rdata_tail = s->r_data;
@@ -6984,92 +7089,93 @@ tr267:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr275:
+tr278:
{ s->r_type = KNOT_RRTYPE_DS; }
{
rdata_tail = s->r_data;
@@ -7078,92 +7184,93 @@ tr275:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr288:
+tr291:
{ s->r_type = KNOT_RRTYPE_EUI48; }
{
rdata_tail = s->r_data;
@@ -7172,92 +7279,93 @@ tr288:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr297:
+tr300:
{ s->r_type = KNOT_RRTYPE_EUI64; }
{
rdata_tail = s->r_data;
@@ -7266,92 +7374,93 @@ tr297:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr310:
+tr313:
{ s->r_type = KNOT_RRTYPE_HINFO; }
{
rdata_tail = s->r_data;
@@ -7360,92 +7469,93 @@ tr310:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr321:
+tr324:
{ s->r_type = KNOT_RRTYPE_HTTPS; }
{
rdata_tail = s->r_data;
@@ -7454,92 +7564,93 @@ tr321:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr364:
+tr368:
{ s->r_type = KNOT_RRTYPE_IPSECKEY; }
{
rdata_tail = s->r_data;
@@ -7548,92 +7659,93 @@ tr364:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr375:
+tr379:
{ s->r_type = KNOT_RRTYPE_KEY; }
{
rdata_tail = s->r_data;
@@ -7642,92 +7754,93 @@ tr375:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr383:
+tr387:
{ s->r_type = KNOT_RRTYPE_KX; }
{
rdata_tail = s->r_data;
@@ -7736,92 +7849,93 @@ tr383:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr396:
+tr400:
{ s->r_type = KNOT_RRTYPE_L32; }
{
rdata_tail = s->r_data;
@@ -7830,92 +7944,93 @@ tr396:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr405:
+tr409:
{ s->r_type = KNOT_RRTYPE_L64; }
{
rdata_tail = s->r_data;
@@ -7924,92 +8039,93 @@ tr405:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr414:
+tr418:
{ s->r_type = KNOT_RRTYPE_LOC; }
{
rdata_tail = s->r_data;
@@ -8018,92 +8134,93 @@ tr414:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr422:
+tr426:
{ s->r_type = KNOT_RRTYPE_LP; }
{
rdata_tail = s->r_data;
@@ -8112,92 +8229,93 @@ tr422:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr435:
+tr439:
{ s->r_type = KNOT_RRTYPE_MINFO; }
{
rdata_tail = s->r_data;
@@ -8206,92 +8324,93 @@ tr435:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr443:
+tr447:
{ s->r_type = KNOT_RRTYPE_MX; }
{
rdata_tail = s->r_data;
@@ -8300,92 +8419,93 @@ tr443:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr457:
+tr461:
{ s->r_type = KNOT_RRTYPE_NAPTR; }
{
rdata_tail = s->r_data;
@@ -8394,92 +8514,93 @@ tr457:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr466:
+tr470:
{ s->r_type = KNOT_RRTYPE_NID; }
{
rdata_tail = s->r_data;
@@ -8488,92 +8609,93 @@ tr466:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr475:
+tr479:
{ s->r_type = KNOT_RRTYPE_NS; }
{
rdata_tail = s->r_data;
@@ -8582,92 +8704,93 @@ tr475:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr485:
+tr489:
{ s->r_type = KNOT_RRTYPE_NSEC; }
{
rdata_tail = s->r_data;
@@ -8676,92 +8799,93 @@ tr485:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr494:
+tr498:
{ s->r_type = KNOT_RRTYPE_NSEC3; }
{
rdata_tail = s->r_data;
@@ -8770,92 +8894,93 @@ tr494:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr506:
+tr510:
{ s->r_type = KNOT_RRTYPE_NSEC3PARAM; }
{
rdata_tail = s->r_data;
@@ -8864,92 +8989,93 @@ tr506:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr523:
+tr527:
{ s->r_type = KNOT_RRTYPE_OPENPGPKEY; }
{
rdata_tail = s->r_data;
@@ -8958,92 +9084,93 @@ tr523:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr533:
+tr537:
{ s->r_type = KNOT_RRTYPE_PTR; }
{
rdata_tail = s->r_data;
@@ -9052,92 +9179,93 @@ tr533:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr544:
+tr548:
{ s->r_type = KNOT_RRTYPE_RP; }
{
rdata_tail = s->r_data;
@@ -9146,92 +9274,93 @@ tr544:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr555:
+tr559:
{ s->r_type = KNOT_RRTYPE_RRSIG; }
{
rdata_tail = s->r_data;
@@ -9240,92 +9369,93 @@ tr555:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr563:
+tr567:
{ s->r_type = KNOT_RRTYPE_RT; }
{
rdata_tail = s->r_data;
@@ -9334,92 +9464,93 @@ tr563:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr581:
+tr585:
{ s->r_type = KNOT_RRTYPE_SMIMEA; }
{
rdata_tail = s->r_data;
@@ -9428,92 +9559,93 @@ tr581:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr590:
+tr594:
{ s->r_type = KNOT_RRTYPE_SOA; }
{
rdata_tail = s->r_data;
@@ -9522,92 +9654,93 @@ tr590:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr599:
+tr603:
{ s->r_type = KNOT_RRTYPE_SPF; }
{
rdata_tail = s->r_data;
@@ -9616,92 +9749,93 @@ tr599:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr608:
+tr612:
{ s->r_type = KNOT_RRTYPE_SRV; }
{
rdata_tail = s->r_data;
@@ -9710,92 +9844,93 @@ tr608:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr619:
+tr623:
{ s->r_type = KNOT_RRTYPE_SSHFP; }
{
rdata_tail = s->r_data;
@@ -9804,92 +9939,93 @@ tr619:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr629:
+tr633:
{ s->r_type = KNOT_RRTYPE_SVCB; }
{
rdata_tail = s->r_data;
@@ -9898,92 +10034,93 @@ tr629:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr642:
+tr646:
{ s->r_type = KNOT_RRTYPE_TLSA; }
{
rdata_tail = s->r_data;
@@ -9992,92 +10129,93 @@ tr642:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr651:
+tr655:
{ s->r_type = KNOT_RRTYPE_TXT; }
{
rdata_tail = s->r_data;
@@ -10086,98 +10224,99 @@ tr651:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr665:
+tr669:
{
if (s->number64 <= UINT16_MAX) {
s->r_type = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -10187,92 +10326,93 @@ tr665:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr675:
+tr679:
{ s->r_type = KNOT_RRTYPE_URI; }
{
rdata_tail = s->r_data;
@@ -10281,92 +10421,188 @@ tr675:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
+ {stack[top++] = 6;goto st932;}
+ case KNOT_RRTYPE_TXT:
+ case KNOT_RRTYPE_SPF:
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
+ case KNOT_RRTYPE_AAAA:
+ {stack[top++] = 6;goto st941;}
+ case KNOT_RRTYPE_LOC:
+ {stack[top++] = 6;goto st943;}
+ case KNOT_RRTYPE_SRV:
+ {stack[top++] = 6;goto st998;}
+ case KNOT_RRTYPE_NAPTR:
+ {stack[top++] = 6;goto st1009;}
+ case KNOT_RRTYPE_CERT:
+ {stack[top++] = 6;goto st1026;}
+ case KNOT_RRTYPE_APL:
+ {stack[top++] = 6;goto st1037;}
+ case KNOT_RRTYPE_DS:
+ case KNOT_RRTYPE_CDS:
+ {stack[top++] = 6;goto st1048;}
+ case KNOT_RRTYPE_SSHFP:
+ {stack[top++] = 6;goto st1061;}
+ case KNOT_RRTYPE_IPSECKEY:
+ {stack[top++] = 6;goto st1071;}
+ case KNOT_RRTYPE_RRSIG:
+ {stack[top++] = 6;goto st1110;}
+ case KNOT_RRTYPE_NSEC:
+ {stack[top++] = 6;goto st1302;}
+ case KNOT_RRTYPE_KEY:
+ case KNOT_RRTYPE_DNSKEY:
+ case KNOT_RRTYPE_CDNSKEY:
+ {stack[top++] = 6;goto st1305;}
+ case KNOT_RRTYPE_DHCID:
+ case KNOT_RRTYPE_OPENPGPKEY:
+ {stack[top++] = 6;goto st1316;}
+ case KNOT_RRTYPE_NSEC3:
+ {stack[top++] = 6;goto st1318;}
+ case KNOT_RRTYPE_NSEC3PARAM:
+ {stack[top++] = 6;goto st1347;}
+ case KNOT_RRTYPE_TLSA:
+ case KNOT_RRTYPE_SMIMEA:
+ {stack[top++] = 6;goto st1360;}
+ case KNOT_RRTYPE_CSYNC:
+ {stack[top++] = 6;goto st1373;}
+ case KNOT_RRTYPE_ZONEMD:
+ {stack[top++] = 6;goto st1379;}
+ case KNOT_RRTYPE_NID:
+ case KNOT_RRTYPE_L64:
+ {stack[top++] = 6;goto st1397;}
+ case KNOT_RRTYPE_L32:
+ {stack[top++] = 6;goto st1392;}
+ case KNOT_RRTYPE_EUI48:
+ {stack[top++] = 6;goto st1410;}
+ case KNOT_RRTYPE_EUI64:
+ {stack[top++] = 6;goto st1416;}
+ case KNOT_RRTYPE_URI:
+ {stack[top++] = 6;goto st1422;}
+ case KNOT_RRTYPE_CAA:
+ {stack[top++] = 6;goto st1430;}
+ case KNOT_RRTYPE_SVCB:
+ case KNOT_RRTYPE_HTTPS:
+ {stack[top++] = 6;goto st1438;}
+ default:
+ WARN(ZS_CANNOT_TEXT_DATA);
+ {goto st316;}
+ }
+ }
+ goto st6;
+tr692:
+ { s->r_type = KNOT_RRTYPE_WALLET; }
+ {
+ rdata_tail = s->r_data;
+ }
+ {
+ p--;
+ switch (s->r_type) {
+ case KNOT_RRTYPE_A:
+ {stack[top++] = 6;goto st886;}
+ case KNOT_RRTYPE_NS:
+ case KNOT_RRTYPE_CNAME:
+ case KNOT_RRTYPE_PTR:
+ case KNOT_RRTYPE_DNAME:
+ {stack[top++] = 6;goto st888;}
+ case KNOT_RRTYPE_SOA:
{stack[top++] = 6;goto st890;}
+ case KNOT_RRTYPE_HINFO:
+ {stack[top++] = 6;goto st922;}
+ case KNOT_RRTYPE_MINFO:
+ case KNOT_RRTYPE_RP:
+ {stack[top++] = 6;goto st927;}
+ case KNOT_RRTYPE_MX:
+ case KNOT_RRTYPE_AFSDB:
+ case KNOT_RRTYPE_RT:
+ case KNOT_RRTYPE_KX:
+ case KNOT_RRTYPE_LP:
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr688:
+tr705:
{ s->r_type = KNOT_RRTYPE_ZONEMD; }
{
rdata_tail = s->r_data;
@@ -10375,92 +10611,93 @@ tr688:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr938:
+tr956:
{ s->r_type = KNOT_RRTYPE_AAAA; }
{
rdata_tail = s->r_data;
@@ -10469,92 +10706,93 @@ tr938:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr949:
+tr967:
{ s->r_type = KNOT_RRTYPE_AFSDB; }
{
rdata_tail = s->r_data;
@@ -10563,92 +10801,93 @@ tr949:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
-tr958:
+tr976:
{ s->r_type = KNOT_RRTYPE_APL; }
{
rdata_tail = s->r_data;
@@ -10657,88 +10896,89 @@ tr958:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 6;goto st844;}
+ {stack[top++] = 6;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 6;goto st846;}
+ {stack[top++] = 6;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 6;goto st848;}
+ {stack[top++] = 6;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 6;goto st880;}
+ {stack[top++] = 6;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 6;goto st885;}
+ {stack[top++] = 6;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 6;goto st890;}
+ {stack[top++] = 6;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 6;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 6;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 6;goto st899;}
+ {stack[top++] = 6;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 6;goto st901;}
+ {stack[top++] = 6;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 6;goto st956;}
+ {stack[top++] = 6;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 6;goto st967;}
+ {stack[top++] = 6;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 6;goto st984;}
+ {stack[top++] = 6;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 6;goto st995;}
+ {stack[top++] = 6;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 6;goto st1006;}
+ {stack[top++] = 6;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 6;goto st1019;}
+ {stack[top++] = 6;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 6;goto st1029;}
+ {stack[top++] = 6;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 6;goto st1068;}
+ {stack[top++] = 6;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 6;goto st1254;}
+ {stack[top++] = 6;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 6;goto st1257;}
+ {stack[top++] = 6;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 6;goto st1268;}
+ {stack[top++] = 6;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 6;goto st1270;}
+ {stack[top++] = 6;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 6;goto st1299;}
+ {stack[top++] = 6;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 6;goto st1312;}
+ {stack[top++] = 6;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 6;goto st1325;}
+ {stack[top++] = 6;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 6;goto st1331;}
+ {stack[top++] = 6;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 6;goto st1349;}
+ {stack[top++] = 6;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 6;goto st1344;}
+ {stack[top++] = 6;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 6;goto st1362;}
+ {stack[top++] = 6;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 6;goto st1368;}
+ {stack[top++] = 6;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 6;goto st1374;}
+ {stack[top++] = 6;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 6;goto st1382;}
+ {stack[top++] = 6;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 6;goto st1390;}
+ {stack[top++] = 6;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st6;
@@ -10759,41 +10999,41 @@ case 6:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr83;
-tr91:
+ goto tr85;
+tr93:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st7;
-tr92:
+tr94:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st7;
-tr84:
+tr86:
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
goto st7;
-tr85:
+tr87:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -10801,12 +11041,12 @@ tr85:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st7;
-tr86:
+tr88:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -10814,7 +11054,7 @@ tr86:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -10838,20 +11078,20 @@ case 7:
switch( _widec ) {
case 9: goto st7;
case 32: goto st7;
- case 40: goto tr91;
- case 41: goto tr92;
- case 1802: goto tr93;
- case 1851: goto tr94;
- case 2058: goto tr93;
- case 2107: goto tr94;
- }
- goto tr89;
-tr94:
+ case 40: goto tr93;
+ case 41: goto tr94;
+ case 1802: goto tr95;
+ case 1851: goto tr96;
+ case 2058: goto tr95;
+ case 2107: goto tr96;
+ }
+ goto tr91;
+tr96:
{
s->buffer_length = 0;
}
goto st8;
-tr88:
+tr90:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -10860,14 +11100,14 @@ tr88:
s->buffer_length = 0;
}
goto st8;
-tr95:
+tr97:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
goto st8;
-tr849:
+tr867:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -10881,7 +11121,7 @@ tr849:
}
}
goto st8;
-tr853:
+tr871:
{
s->buffer_length = 0;
}
@@ -10896,9 +11136,9 @@ st8:
goto _test_eof8;
case 8:
if ( (*p) == 10 )
- goto tr96;
- goto tr95;
-tr78:
+ goto tr98;
+ goto tr97;
+tr80:
{
if (pe - p == 1) {
*wrap = WRAP_DETECTED;
@@ -10910,14 +11150,14 @@ st9:
goto _test_eof9;
case 9:
if ( (*p) == 35 )
- goto tr98;
- goto tr97;
-tr80:
+ goto tr100;
+ goto tr99;
+tr82:
{
s->buffer_length = 0;
}
goto st10;
-tr69:
+tr71:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -10926,14 +11166,14 @@ tr69:
s->buffer_length = 0;
}
goto st10;
-tr99:
+tr101:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
goto st10;
-tr167:
+tr170:
{ s->r_type = KNOT_RRTYPE_CAA; }
{
rdata_tail = s->r_data;
@@ -10942,7 +11182,7 @@ tr167:
s->buffer_length = 0;
}
goto st10;
-tr189:
+tr192:
{ s->r_type = KNOT_RRTYPE_CDNSKEY; }
{
rdata_tail = s->r_data;
@@ -10951,7 +11191,7 @@ tr189:
s->buffer_length = 0;
}
goto st10;
-tr197:
+tr200:
{ s->r_type = KNOT_RRTYPE_CDS; }
{
rdata_tail = s->r_data;
@@ -10960,7 +11200,7 @@ tr197:
s->buffer_length = 0;
}
goto st10;
-tr207:
+tr210:
{ s->r_type = KNOT_RRTYPE_CERT; }
{
rdata_tail = s->r_data;
@@ -10969,7 +11209,7 @@ tr207:
s->buffer_length = 0;
}
goto st10;
-tr218:
+tr221:
{ s->r_type = KNOT_RRTYPE_CNAME; }
{
rdata_tail = s->r_data;
@@ -10978,7 +11218,7 @@ tr218:
s->buffer_length = 0;
}
goto st10;
-tr229:
+tr232:
{ s->r_type = KNOT_RRTYPE_CSYNC; }
{
rdata_tail = s->r_data;
@@ -10987,7 +11227,7 @@ tr229:
s->buffer_length = 0;
}
goto st10;
-tr243:
+tr246:
{ s->r_type = KNOT_RRTYPE_DHCID; }
{
rdata_tail = s->r_data;
@@ -10996,7 +11236,7 @@ tr243:
s->buffer_length = 0;
}
goto st10;
-tr255:
+tr258:
{ s->r_type = KNOT_RRTYPE_DNAME; }
{
rdata_tail = s->r_data;
@@ -11005,7 +11245,7 @@ tr255:
s->buffer_length = 0;
}
goto st10;
-tr266:
+tr269:
{ s->r_type = KNOT_RRTYPE_DNSKEY; }
{
rdata_tail = s->r_data;
@@ -11014,7 +11254,7 @@ tr266:
s->buffer_length = 0;
}
goto st10;
-tr274:
+tr277:
{ s->r_type = KNOT_RRTYPE_DS; }
{
rdata_tail = s->r_data;
@@ -11023,7 +11263,7 @@ tr274:
s->buffer_length = 0;
}
goto st10;
-tr287:
+tr290:
{ s->r_type = KNOT_RRTYPE_EUI48; }
{
rdata_tail = s->r_data;
@@ -11032,7 +11272,7 @@ tr287:
s->buffer_length = 0;
}
goto st10;
-tr296:
+tr299:
{ s->r_type = KNOT_RRTYPE_EUI64; }
{
rdata_tail = s->r_data;
@@ -11041,7 +11281,7 @@ tr296:
s->buffer_length = 0;
}
goto st10;
-tr309:
+tr312:
{ s->r_type = KNOT_RRTYPE_HINFO; }
{
rdata_tail = s->r_data;
@@ -11050,7 +11290,7 @@ tr309:
s->buffer_length = 0;
}
goto st10;
-tr320:
+tr323:
{ s->r_type = KNOT_RRTYPE_HTTPS; }
{
rdata_tail = s->r_data;
@@ -11059,7 +11299,7 @@ tr320:
s->buffer_length = 0;
}
goto st10;
-tr363:
+tr367:
{ s->r_type = KNOT_RRTYPE_IPSECKEY; }
{
rdata_tail = s->r_data;
@@ -11068,7 +11308,7 @@ tr363:
s->buffer_length = 0;
}
goto st10;
-tr374:
+tr378:
{ s->r_type = KNOT_RRTYPE_KEY; }
{
rdata_tail = s->r_data;
@@ -11077,7 +11317,7 @@ tr374:
s->buffer_length = 0;
}
goto st10;
-tr382:
+tr386:
{ s->r_type = KNOT_RRTYPE_KX; }
{
rdata_tail = s->r_data;
@@ -11086,7 +11326,7 @@ tr382:
s->buffer_length = 0;
}
goto st10;
-tr395:
+tr399:
{ s->r_type = KNOT_RRTYPE_L32; }
{
rdata_tail = s->r_data;
@@ -11095,7 +11335,7 @@ tr395:
s->buffer_length = 0;
}
goto st10;
-tr404:
+tr408:
{ s->r_type = KNOT_RRTYPE_L64; }
{
rdata_tail = s->r_data;
@@ -11104,7 +11344,7 @@ tr404:
s->buffer_length = 0;
}
goto st10;
-tr413:
+tr417:
{ s->r_type = KNOT_RRTYPE_LOC; }
{
rdata_tail = s->r_data;
@@ -11113,7 +11353,7 @@ tr413:
s->buffer_length = 0;
}
goto st10;
-tr421:
+tr425:
{ s->r_type = KNOT_RRTYPE_LP; }
{
rdata_tail = s->r_data;
@@ -11122,7 +11362,7 @@ tr421:
s->buffer_length = 0;
}
goto st10;
-tr434:
+tr438:
{ s->r_type = KNOT_RRTYPE_MINFO; }
{
rdata_tail = s->r_data;
@@ -11131,7 +11371,7 @@ tr434:
s->buffer_length = 0;
}
goto st10;
-tr442:
+tr446:
{ s->r_type = KNOT_RRTYPE_MX; }
{
rdata_tail = s->r_data;
@@ -11140,7 +11380,7 @@ tr442:
s->buffer_length = 0;
}
goto st10;
-tr456:
+tr460:
{ s->r_type = KNOT_RRTYPE_NAPTR; }
{
rdata_tail = s->r_data;
@@ -11149,7 +11389,7 @@ tr456:
s->buffer_length = 0;
}
goto st10;
-tr465:
+tr469:
{ s->r_type = KNOT_RRTYPE_NID; }
{
rdata_tail = s->r_data;
@@ -11158,7 +11398,7 @@ tr465:
s->buffer_length = 0;
}
goto st10;
-tr474:
+tr478:
{ s->r_type = KNOT_RRTYPE_NS; }
{
rdata_tail = s->r_data;
@@ -11167,7 +11407,7 @@ tr474:
s->buffer_length = 0;
}
goto st10;
-tr484:
+tr488:
{ s->r_type = KNOT_RRTYPE_NSEC; }
{
rdata_tail = s->r_data;
@@ -11176,7 +11416,7 @@ tr484:
s->buffer_length = 0;
}
goto st10;
-tr493:
+tr497:
{ s->r_type = KNOT_RRTYPE_NSEC3; }
{
rdata_tail = s->r_data;
@@ -11185,7 +11425,7 @@ tr493:
s->buffer_length = 0;
}
goto st10;
-tr505:
+tr509:
{ s->r_type = KNOT_RRTYPE_NSEC3PARAM; }
{
rdata_tail = s->r_data;
@@ -11194,7 +11434,7 @@ tr505:
s->buffer_length = 0;
}
goto st10;
-tr522:
+tr526:
{ s->r_type = KNOT_RRTYPE_OPENPGPKEY; }
{
rdata_tail = s->r_data;
@@ -11203,7 +11443,7 @@ tr522:
s->buffer_length = 0;
}
goto st10;
-tr532:
+tr536:
{ s->r_type = KNOT_RRTYPE_PTR; }
{
rdata_tail = s->r_data;
@@ -11212,7 +11452,7 @@ tr532:
s->buffer_length = 0;
}
goto st10;
-tr543:
+tr547:
{ s->r_type = KNOT_RRTYPE_RP; }
{
rdata_tail = s->r_data;
@@ -11221,7 +11461,7 @@ tr543:
s->buffer_length = 0;
}
goto st10;
-tr554:
+tr558:
{ s->r_type = KNOT_RRTYPE_RRSIG; }
{
rdata_tail = s->r_data;
@@ -11230,7 +11470,7 @@ tr554:
s->buffer_length = 0;
}
goto st10;
-tr562:
+tr566:
{ s->r_type = KNOT_RRTYPE_RT; }
{
rdata_tail = s->r_data;
@@ -11239,7 +11479,7 @@ tr562:
s->buffer_length = 0;
}
goto st10;
-tr580:
+tr584:
{ s->r_type = KNOT_RRTYPE_SMIMEA; }
{
rdata_tail = s->r_data;
@@ -11248,7 +11488,7 @@ tr580:
s->buffer_length = 0;
}
goto st10;
-tr589:
+tr593:
{ s->r_type = KNOT_RRTYPE_SOA; }
{
rdata_tail = s->r_data;
@@ -11257,7 +11497,7 @@ tr589:
s->buffer_length = 0;
}
goto st10;
-tr598:
+tr602:
{ s->r_type = KNOT_RRTYPE_SPF; }
{
rdata_tail = s->r_data;
@@ -11266,7 +11506,7 @@ tr598:
s->buffer_length = 0;
}
goto st10;
-tr607:
+tr611:
{ s->r_type = KNOT_RRTYPE_SRV; }
{
rdata_tail = s->r_data;
@@ -11275,7 +11515,7 @@ tr607:
s->buffer_length = 0;
}
goto st10;
-tr618:
+tr622:
{ s->r_type = KNOT_RRTYPE_SSHFP; }
{
rdata_tail = s->r_data;
@@ -11284,7 +11524,7 @@ tr618:
s->buffer_length = 0;
}
goto st10;
-tr628:
+tr632:
{ s->r_type = KNOT_RRTYPE_SVCB; }
{
rdata_tail = s->r_data;
@@ -11293,7 +11533,7 @@ tr628:
s->buffer_length = 0;
}
goto st10;
-tr641:
+tr645:
{ s->r_type = KNOT_RRTYPE_TLSA; }
{
rdata_tail = s->r_data;
@@ -11302,7 +11542,7 @@ tr641:
s->buffer_length = 0;
}
goto st10;
-tr650:
+tr654:
{ s->r_type = KNOT_RRTYPE_TXT; }
{
rdata_tail = s->r_data;
@@ -11311,13 +11551,13 @@ tr650:
s->buffer_length = 0;
}
goto st10;
-tr664:
+tr668:
{
if (s->number64 <= UINT16_MAX) {
s->r_type = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -11327,7 +11567,7 @@ tr664:
s->buffer_length = 0;
}
goto st10;
-tr674:
+tr678:
{ s->r_type = KNOT_RRTYPE_URI; }
{
rdata_tail = s->r_data;
@@ -11336,7 +11576,16 @@ tr674:
s->buffer_length = 0;
}
goto st10;
-tr687:
+tr691:
+ { s->r_type = KNOT_RRTYPE_WALLET; }
+ {
+ rdata_tail = s->r_data;
+ }
+ {
+ s->buffer_length = 0;
+ }
+ goto st10;
+tr704:
{ s->r_type = KNOT_RRTYPE_ZONEMD; }
{
rdata_tail = s->r_data;
@@ -11345,7 +11594,7 @@ tr687:
s->buffer_length = 0;
}
goto st10;
-tr937:
+tr955:
{ s->r_type = KNOT_RRTYPE_AAAA; }
{
rdata_tail = s->r_data;
@@ -11354,7 +11603,7 @@ tr937:
s->buffer_length = 0;
}
goto st10;
-tr948:
+tr966:
{ s->r_type = KNOT_RRTYPE_AFSDB; }
{
rdata_tail = s->r_data;
@@ -11363,7 +11612,7 @@ tr948:
s->buffer_length = 0;
}
goto st10;
-tr957:
+tr975:
{ s->r_type = KNOT_RRTYPE_APL; }
{
rdata_tail = s->r_data;
@@ -11395,11 +11644,11 @@ case 10:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr100;
+ goto tr102;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr99;
- goto tr75;
-tr71:
+ goto tr101;
+ goto tr77;
+tr73:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -11411,92 +11660,93 @@ tr71:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr81:
+tr83:
{
s->line_counter++;
}
@@ -11504,92 +11754,93 @@ tr81:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr169:
+tr172:
{ s->r_type = KNOT_RRTYPE_CAA; }
{
rdata_tail = s->r_data;
@@ -11601,92 +11852,93 @@ tr169:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr191:
+tr194:
{ s->r_type = KNOT_RRTYPE_CDNSKEY; }
{
rdata_tail = s->r_data;
@@ -11698,92 +11950,93 @@ tr191:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr199:
+tr202:
{ s->r_type = KNOT_RRTYPE_CDS; }
{
rdata_tail = s->r_data;
@@ -11795,92 +12048,93 @@ tr199:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr209:
+tr212:
{ s->r_type = KNOT_RRTYPE_CERT; }
{
rdata_tail = s->r_data;
@@ -11892,92 +12146,93 @@ tr209:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr220:
+tr223:
{ s->r_type = KNOT_RRTYPE_CNAME; }
{
rdata_tail = s->r_data;
@@ -11989,92 +12244,93 @@ tr220:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr231:
+tr234:
{ s->r_type = KNOT_RRTYPE_CSYNC; }
{
rdata_tail = s->r_data;
@@ -12086,92 +12342,93 @@ tr231:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr245:
+tr248:
{ s->r_type = KNOT_RRTYPE_DHCID; }
{
rdata_tail = s->r_data;
@@ -12183,92 +12440,93 @@ tr245:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr257:
+tr260:
{ s->r_type = KNOT_RRTYPE_DNAME; }
{
rdata_tail = s->r_data;
@@ -12280,92 +12538,93 @@ tr257:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr268:
+tr271:
{ s->r_type = KNOT_RRTYPE_DNSKEY; }
{
rdata_tail = s->r_data;
@@ -12377,92 +12636,93 @@ tr268:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr276:
+tr279:
{ s->r_type = KNOT_RRTYPE_DS; }
{
rdata_tail = s->r_data;
@@ -12474,92 +12734,93 @@ tr276:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr289:
+tr292:
{ s->r_type = KNOT_RRTYPE_EUI48; }
{
rdata_tail = s->r_data;
@@ -12571,92 +12832,93 @@ tr289:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr298:
+tr301:
{ s->r_type = KNOT_RRTYPE_EUI64; }
{
rdata_tail = s->r_data;
@@ -12668,92 +12930,93 @@ tr298:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr311:
+tr314:
{ s->r_type = KNOT_RRTYPE_HINFO; }
{
rdata_tail = s->r_data;
@@ -12765,92 +13028,93 @@ tr311:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr322:
+tr325:
{ s->r_type = KNOT_RRTYPE_HTTPS; }
{
rdata_tail = s->r_data;
@@ -12862,92 +13126,93 @@ tr322:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr365:
+tr369:
{ s->r_type = KNOT_RRTYPE_IPSECKEY; }
{
rdata_tail = s->r_data;
@@ -12959,92 +13224,93 @@ tr365:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr376:
+tr380:
{ s->r_type = KNOT_RRTYPE_KEY; }
{
rdata_tail = s->r_data;
@@ -13056,92 +13322,93 @@ tr376:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr384:
+tr388:
{ s->r_type = KNOT_RRTYPE_KX; }
{
rdata_tail = s->r_data;
@@ -13153,92 +13420,93 @@ tr384:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr397:
+tr401:
{ s->r_type = KNOT_RRTYPE_L32; }
{
rdata_tail = s->r_data;
@@ -13250,92 +13518,93 @@ tr397:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr406:
+tr410:
{ s->r_type = KNOT_RRTYPE_L64; }
{
rdata_tail = s->r_data;
@@ -13347,92 +13616,93 @@ tr406:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr415:
+tr419:
{ s->r_type = KNOT_RRTYPE_LOC; }
{
rdata_tail = s->r_data;
@@ -13444,92 +13714,93 @@ tr415:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr423:
+tr427:
{ s->r_type = KNOT_RRTYPE_LP; }
{
rdata_tail = s->r_data;
@@ -13541,92 +13812,93 @@ tr423:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr436:
+tr440:
{ s->r_type = KNOT_RRTYPE_MINFO; }
{
rdata_tail = s->r_data;
@@ -13638,92 +13910,93 @@ tr436:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr444:
+tr448:
{ s->r_type = KNOT_RRTYPE_MX; }
{
rdata_tail = s->r_data;
@@ -13735,92 +14008,93 @@ tr444:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr458:
+tr462:
{ s->r_type = KNOT_RRTYPE_NAPTR; }
{
rdata_tail = s->r_data;
@@ -13832,92 +14106,93 @@ tr458:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr467:
+tr471:
{ s->r_type = KNOT_RRTYPE_NID; }
{
rdata_tail = s->r_data;
@@ -13929,92 +14204,93 @@ tr467:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr476:
+tr480:
{ s->r_type = KNOT_RRTYPE_NS; }
{
rdata_tail = s->r_data;
@@ -14026,92 +14302,93 @@ tr476:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr486:
+tr490:
{ s->r_type = KNOT_RRTYPE_NSEC; }
{
rdata_tail = s->r_data;
@@ -14123,92 +14400,93 @@ tr486:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr495:
+tr499:
{ s->r_type = KNOT_RRTYPE_NSEC3; }
{
rdata_tail = s->r_data;
@@ -14220,92 +14498,93 @@ tr495:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr507:
+tr511:
{ s->r_type = KNOT_RRTYPE_NSEC3PARAM; }
{
rdata_tail = s->r_data;
@@ -14317,92 +14596,93 @@ tr507:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr524:
+tr528:
{ s->r_type = KNOT_RRTYPE_OPENPGPKEY; }
{
rdata_tail = s->r_data;
@@ -14414,92 +14694,93 @@ tr524:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr534:
+tr538:
{ s->r_type = KNOT_RRTYPE_PTR; }
{
rdata_tail = s->r_data;
@@ -14511,92 +14792,93 @@ tr534:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr545:
+tr549:
{ s->r_type = KNOT_RRTYPE_RP; }
{
rdata_tail = s->r_data;
@@ -14608,92 +14890,93 @@ tr545:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr556:
+tr560:
{ s->r_type = KNOT_RRTYPE_RRSIG; }
{
rdata_tail = s->r_data;
@@ -14705,92 +14988,93 @@ tr556:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr564:
+tr568:
{ s->r_type = KNOT_RRTYPE_RT; }
{
rdata_tail = s->r_data;
@@ -14802,92 +15086,93 @@ tr564:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr582:
+tr586:
{ s->r_type = KNOT_RRTYPE_SMIMEA; }
{
rdata_tail = s->r_data;
@@ -14899,92 +15184,93 @@ tr582:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr591:
+tr595:
{ s->r_type = KNOT_RRTYPE_SOA; }
{
rdata_tail = s->r_data;
@@ -14996,92 +15282,93 @@ tr591:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr600:
+tr604:
{ s->r_type = KNOT_RRTYPE_SPF; }
{
rdata_tail = s->r_data;
@@ -15093,92 +15380,93 @@ tr600:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr609:
+tr613:
{ s->r_type = KNOT_RRTYPE_SRV; }
{
rdata_tail = s->r_data;
@@ -15190,92 +15478,93 @@ tr609:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr620:
+tr624:
{ s->r_type = KNOT_RRTYPE_SSHFP; }
{
rdata_tail = s->r_data;
@@ -15287,92 +15576,93 @@ tr620:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr630:
+tr634:
{ s->r_type = KNOT_RRTYPE_SVCB; }
{
rdata_tail = s->r_data;
@@ -15384,92 +15674,93 @@ tr630:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr643:
+tr647:
{ s->r_type = KNOT_RRTYPE_TLSA; }
{
rdata_tail = s->r_data;
@@ -15481,92 +15772,93 @@ tr643:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr652:
+tr656:
{ s->r_type = KNOT_RRTYPE_TXT; }
{
rdata_tail = s->r_data;
@@ -15578,98 +15870,99 @@ tr652:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr666:
+tr670:
{
if (s->number64 <= UINT16_MAX) {
s->r_type = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -15682,92 +15975,93 @@ tr666:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr676:
+tr680:
{ s->r_type = KNOT_RRTYPE_URI; }
{
rdata_tail = s->r_data;
@@ -15779,92 +16073,191 @@ tr676:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
+ {stack[top++] = 11;goto st932;}
+ case KNOT_RRTYPE_TXT:
+ case KNOT_RRTYPE_SPF:
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
+ case KNOT_RRTYPE_AAAA:
+ {stack[top++] = 11;goto st941;}
+ case KNOT_RRTYPE_LOC:
+ {stack[top++] = 11;goto st943;}
+ case KNOT_RRTYPE_SRV:
+ {stack[top++] = 11;goto st998;}
+ case KNOT_RRTYPE_NAPTR:
+ {stack[top++] = 11;goto st1009;}
+ case KNOT_RRTYPE_CERT:
+ {stack[top++] = 11;goto st1026;}
+ case KNOT_RRTYPE_APL:
+ {stack[top++] = 11;goto st1037;}
+ case KNOT_RRTYPE_DS:
+ case KNOT_RRTYPE_CDS:
+ {stack[top++] = 11;goto st1048;}
+ case KNOT_RRTYPE_SSHFP:
+ {stack[top++] = 11;goto st1061;}
+ case KNOT_RRTYPE_IPSECKEY:
+ {stack[top++] = 11;goto st1071;}
+ case KNOT_RRTYPE_RRSIG:
+ {stack[top++] = 11;goto st1110;}
+ case KNOT_RRTYPE_NSEC:
+ {stack[top++] = 11;goto st1302;}
+ case KNOT_RRTYPE_KEY:
+ case KNOT_RRTYPE_DNSKEY:
+ case KNOT_RRTYPE_CDNSKEY:
+ {stack[top++] = 11;goto st1305;}
+ case KNOT_RRTYPE_DHCID:
+ case KNOT_RRTYPE_OPENPGPKEY:
+ {stack[top++] = 11;goto st1316;}
+ case KNOT_RRTYPE_NSEC3:
+ {stack[top++] = 11;goto st1318;}
+ case KNOT_RRTYPE_NSEC3PARAM:
+ {stack[top++] = 11;goto st1347;}
+ case KNOT_RRTYPE_TLSA:
+ case KNOT_RRTYPE_SMIMEA:
+ {stack[top++] = 11;goto st1360;}
+ case KNOT_RRTYPE_CSYNC:
+ {stack[top++] = 11;goto st1373;}
+ case KNOT_RRTYPE_ZONEMD:
+ {stack[top++] = 11;goto st1379;}
+ case KNOT_RRTYPE_NID:
+ case KNOT_RRTYPE_L64:
+ {stack[top++] = 11;goto st1397;}
+ case KNOT_RRTYPE_L32:
+ {stack[top++] = 11;goto st1392;}
+ case KNOT_RRTYPE_EUI48:
+ {stack[top++] = 11;goto st1410;}
+ case KNOT_RRTYPE_EUI64:
+ {stack[top++] = 11;goto st1416;}
+ case KNOT_RRTYPE_URI:
+ {stack[top++] = 11;goto st1422;}
+ case KNOT_RRTYPE_CAA:
+ {stack[top++] = 11;goto st1430;}
+ case KNOT_RRTYPE_SVCB:
+ case KNOT_RRTYPE_HTTPS:
+ {stack[top++] = 11;goto st1438;}
+ default:
+ WARN(ZS_CANNOT_TEXT_DATA);
+ {goto st316;}
+ }
+ }
+ goto st11;
+tr693:
+ { s->r_type = KNOT_RRTYPE_WALLET; }
+ {
+ rdata_tail = s->r_data;
+ }
+ {
+ s->line_counter++;
+ }
+ {
+ p--;
+ switch (s->r_type) {
+ case KNOT_RRTYPE_A:
+ {stack[top++] = 11;goto st886;}
+ case KNOT_RRTYPE_NS:
+ case KNOT_RRTYPE_CNAME:
+ case KNOT_RRTYPE_PTR:
+ case KNOT_RRTYPE_DNAME:
+ {stack[top++] = 11;goto st888;}
+ case KNOT_RRTYPE_SOA:
{stack[top++] = 11;goto st890;}
+ case KNOT_RRTYPE_HINFO:
+ {stack[top++] = 11;goto st922;}
+ case KNOT_RRTYPE_MINFO:
+ case KNOT_RRTYPE_RP:
+ {stack[top++] = 11;goto st927;}
+ case KNOT_RRTYPE_MX:
+ case KNOT_RRTYPE_AFSDB:
+ case KNOT_RRTYPE_RT:
+ case KNOT_RRTYPE_KX:
+ case KNOT_RRTYPE_LP:
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr689:
+tr706:
{ s->r_type = KNOT_RRTYPE_ZONEMD; }
{
rdata_tail = s->r_data;
@@ -15876,92 +16269,93 @@ tr689:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr939:
+tr957:
{ s->r_type = KNOT_RRTYPE_AAAA; }
{
rdata_tail = s->r_data;
@@ -15973,92 +16367,93 @@ tr939:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr950:
+tr968:
{ s->r_type = KNOT_RRTYPE_AFSDB; }
{
rdata_tail = s->r_data;
@@ -16070,92 +16465,93 @@ tr950:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
-tr959:
+tr977:
{ s->r_type = KNOT_RRTYPE_APL; }
{
rdata_tail = s->r_data;
@@ -16167,88 +16563,89 @@ tr959:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 11;goto st844;}
+ {stack[top++] = 11;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 11;goto st846;}
+ {stack[top++] = 11;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 11;goto st848;}
+ {stack[top++] = 11;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 11;goto st880;}
+ {stack[top++] = 11;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 11;goto st885;}
+ {stack[top++] = 11;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 11;goto st890;}
+ {stack[top++] = 11;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 11;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 11;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 11;goto st899;}
+ {stack[top++] = 11;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 11;goto st901;}
+ {stack[top++] = 11;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 11;goto st956;}
+ {stack[top++] = 11;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 11;goto st967;}
+ {stack[top++] = 11;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 11;goto st984;}
+ {stack[top++] = 11;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 11;goto st995;}
+ {stack[top++] = 11;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 11;goto st1006;}
+ {stack[top++] = 11;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 11;goto st1019;}
+ {stack[top++] = 11;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 11;goto st1029;}
+ {stack[top++] = 11;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 11;goto st1068;}
+ {stack[top++] = 11;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 11;goto st1254;}
+ {stack[top++] = 11;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 11;goto st1257;}
+ {stack[top++] = 11;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 11;goto st1268;}
+ {stack[top++] = 11;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 11;goto st1270;}
+ {stack[top++] = 11;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 11;goto st1299;}
+ {stack[top++] = 11;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 11;goto st1312;}
+ {stack[top++] = 11;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 11;goto st1325;}
+ {stack[top++] = 11;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 11;goto st1331;}
+ {stack[top++] = 11;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 11;goto st1349;}
+ {stack[top++] = 11;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 11;goto st1344;}
+ {stack[top++] = 11;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 11;goto st1362;}
+ {stack[top++] = 11;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 11;goto st1368;}
+ {stack[top++] = 11;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 11;goto st1374;}
+ {stack[top++] = 11;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 11;goto st1382;}
+ {stack[top++] = 11;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 11;goto st1390;}
+ {stack[top++] = 11;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st11;
@@ -16273,58 +16670,58 @@ case 11:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr101;
- case 32: goto tr101;
- case 40: goto tr102;
- case 41: goto tr103;
- case 92: goto tr78;
- case 2826: goto tr87;
- case 2875: goto tr88;
- case 3082: goto tr87;
- case 3131: goto tr104;
- case 3338: goto tr105;
- case 3387: goto tr106;
- case 3594: goto tr87;
- case 3643: goto tr107;
+ case 9: goto tr103;
+ case 32: goto tr103;
+ case 40: goto tr104;
+ case 41: goto tr105;
+ case 92: goto tr80;
+ case 2826: goto tr89;
+ case 2875: goto tr90;
+ case 3082: goto tr89;
+ case 3131: goto tr106;
+ case 3338: goto tr107;
+ case 3387: goto tr108;
+ case 3594: goto tr89;
+ case 3643: goto tr109;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr73;
+ goto tr75;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr73;
+ goto tr75;
} else
- goto tr73;
- goto tr83;
-tr109:
+ goto tr75;
+ goto tr85;
+tr111:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st12;
-tr110:
+tr112:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st12;
-tr101:
+tr103:
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
goto st12;
-tr102:
+tr104:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -16333,11 +16730,11 @@ tr102:
s->buffer_length = 0;
}
goto st12;
-tr103:
+tr105:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -16369,40 +16766,40 @@ case 12:
switch( _widec ) {
case 9: goto st12;
case 32: goto st12;
- case 40: goto tr109;
- case 41: goto tr110;
- case 92: goto tr78;
- case 2826: goto tr93;
- case 2875: goto tr94;
- case 3082: goto tr93;
- case 3131: goto tr111;
- case 3338: goto tr112;
- case 3387: goto tr113;
- case 3594: goto tr93;
- case 3643: goto tr114;
+ case 40: goto tr111;
+ case 41: goto tr112;
+ case 92: goto tr80;
+ case 2826: goto tr95;
+ case 2875: goto tr96;
+ case 3082: goto tr95;
+ case 3131: goto tr113;
+ case 3338: goto tr114;
+ case 3387: goto tr115;
+ case 3594: goto tr95;
+ case 3643: goto tr116;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr73;
+ goto tr75;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr73;
+ goto tr75;
} else
- goto tr73;
- goto tr83;
-tr111:
+ goto tr75;
+ goto tr85;
+tr113:
{
s->buffer_length = 0;
}
goto st13;
-tr115:
+tr117:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
goto st13;
-tr104:
+tr106:
{
s->buffer_length = 0;
}
@@ -16411,7 +16808,7 @@ tr104:
s->buffer_length = 0;
}
goto st13;
-tr174:
+tr177:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -16425,7 +16822,7 @@ tr174:
s->buffer_length = 0;
}
goto st13;
-tr178:
+tr181:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -16435,7 +16832,7 @@ tr178:
s->buffer_length = 0;
}
goto st13;
-tr828:
+tr846:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -16471,16 +16868,16 @@ case 13:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1802: goto tr96;
- case 2058: goto tr116;
+ case 1802: goto tr98;
+ case 2058: goto tr118;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr115;
+ goto tr117;
} else if ( _widec >= 1664 )
- goto tr95;
- goto tr83;
-tr116:
+ goto tr97;
+ goto tr85;
+tr118:
{
s->buffer[s->buffer_length++] = 0;
@@ -16490,7 +16887,7 @@ tr116:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1397; goto _out;}
+ {p++; cs = 1445; goto _out;}
}
}
}
@@ -16500,7 +16897,7 @@ tr116:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -16513,23 +16910,23 @@ tr116:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1397; goto _out;}
+ {p++; cs = 1445; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1397; goto _out;}
+ p--; {p++; cs = 1445; goto _out;}
}
}
- goto st1397;
-tr836:
+ goto st1445;
+tr854:
{
s->line_counter++;
}
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -16542,16 +16939,16 @@ tr836:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1397; goto _out;}
+ {p++; cs = 1445; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1397; goto _out;}
+ p--; {p++; cs = 1445; goto _out;}
}
}
- goto st1397;
-tr827:
+ goto st1445;
+tr845:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -16566,7 +16963,7 @@ tr827:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -16579,19 +16976,19 @@ tr827:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1397; goto _out;}
+ {p++; cs = 1445; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1397; goto _out;}
+ p--; {p++; cs = 1445; goto _out;}
}
}
- goto st1397;
-st1397:
+ goto st1445;
+st1445:
if ( ++p == pe )
- goto _test_eof1397;
-case 1397:
+ goto _test_eof1445;
+case 1445:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -16609,71 +17006,71 @@ case 1397:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr4215;
- case 32: goto tr4215;
- case 36: goto tr4216;
- case 40: goto tr4217;
- case 41: goto tr4218;
- case 42: goto tr4219;
- case 58: goto tr73;
- case 92: goto tr4220;
- case 95: goto tr4219;
- case 2826: goto tr4211;
- case 2875: goto tr4212;
- case 3082: goto tr4221;
- case 3131: goto tr4222;
- case 3338: goto tr4223;
- case 3387: goto tr4224;
- case 3594: goto tr4225;
- case 3643: goto tr4226;
+ case 9: goto tr4295;
+ case 32: goto tr4295;
+ case 36: goto tr4296;
+ case 40: goto tr4297;
+ case 41: goto tr4298;
+ case 42: goto tr4299;
+ case 58: goto tr75;
+ case 92: goto tr4300;
+ case 95: goto tr4299;
+ case 2826: goto tr4291;
+ case 2875: goto tr4292;
+ case 3082: goto tr4301;
+ case 3131: goto tr4302;
+ case 3338: goto tr4303;
+ case 3387: goto tr4304;
+ case 3594: goto tr4305;
+ case 3643: goto tr4306;
}
if ( _widec < 60 ) {
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr73;
+ goto tr75;
} else if ( _widec > 44 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr4219;
+ goto tr4299;
} else
- goto tr73;
+ goto tr75;
} else if ( _widec > 63 ) {
if ( _widec < 91 ) {
if ( 64 <= _widec && _widec <= 90 )
- goto tr4219;
+ goto tr4299;
} else if ( _widec > 96 ) {
if ( _widec > 122 ) {
if ( 123 <= _widec )
- goto tr73;
+ goto tr75;
} else if ( _widec >= 97 )
- goto tr4219;
+ goto tr4299;
} else
- goto tr73;
+ goto tr75;
} else
- goto tr73;
- goto tr871;
-tr119:
+ goto tr75;
+ goto tr889;
+tr121:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st14;
-tr120:
+tr122:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st14;
-tr4215:
+tr4295:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -16681,18 +17078,18 @@ tr4215:
s->buffer_length = 0;
}
goto st14;
-tr4217:
+tr4297:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -16700,18 +17097,18 @@ tr4217:
s->buffer_length = 0;
}
goto st14;
-tr4218:
+tr4298:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -16742,66 +17139,68 @@ case 14:
switch( _widec ) {
case 9: goto st14;
case 32: goto st14;
- case 40: goto tr119;
- case 41: goto tr120;
- case 58: goto tr73;
- case 65: goto tr122;
- case 67: goto tr123;
- case 68: goto tr124;
- case 69: goto tr125;
- case 72: goto tr126;
- case 73: goto tr127;
- case 75: goto tr128;
- case 76: goto tr129;
- case 77: goto tr130;
- case 78: goto tr131;
- case 79: goto tr132;
- case 80: goto tr133;
- case 82: goto tr134;
- case 83: goto tr135;
- case 84: goto tr136;
- case 85: goto tr137;
- case 90: goto tr138;
- case 92: goto tr78;
- case 97: goto tr122;
- case 99: goto tr123;
- case 100: goto tr124;
- case 101: goto tr125;
- case 104: goto tr126;
- case 105: goto tr127;
- case 107: goto tr128;
- case 108: goto tr129;
- case 109: goto tr130;
- case 110: goto tr131;
- case 111: goto tr132;
- case 112: goto tr133;
- case 114: goto tr134;
- case 115: goto tr135;
- case 116: goto tr136;
- case 117: goto tr137;
- case 122: goto tr138;
- case 2826: goto tr22;
- case 2875: goto tr23;
- case 3082: goto tr139;
- case 3131: goto tr140;
- case 3338: goto tr141;
- case 3387: goto tr142;
- case 3594: goto tr143;
- case 3643: goto tr144;
+ case 40: goto tr121;
+ case 41: goto tr122;
+ case 58: goto tr75;
+ case 65: goto tr124;
+ case 67: goto tr125;
+ case 68: goto tr126;
+ case 69: goto tr127;
+ case 72: goto tr128;
+ case 73: goto tr129;
+ case 75: goto tr130;
+ case 76: goto tr131;
+ case 77: goto tr132;
+ case 78: goto tr133;
+ case 79: goto tr134;
+ case 80: goto tr135;
+ case 82: goto tr136;
+ case 83: goto tr137;
+ case 84: goto tr138;
+ case 85: goto tr139;
+ case 87: goto tr140;
+ case 90: goto tr141;
+ case 92: goto tr80;
+ case 97: goto tr124;
+ case 99: goto tr125;
+ case 100: goto tr126;
+ case 101: goto tr127;
+ case 104: goto tr128;
+ case 105: goto tr129;
+ case 107: goto tr130;
+ case 108: goto tr131;
+ case 109: goto tr132;
+ case 110: goto tr133;
+ case 111: goto tr134;
+ case 112: goto tr135;
+ case 114: goto tr136;
+ case 115: goto tr137;
+ case 116: goto tr138;
+ case 117: goto tr139;
+ case 119: goto tr140;
+ case 122: goto tr141;
+ case 2826: goto tr23;
+ case 2875: goto tr24;
+ case 3082: goto tr142;
+ case 3131: goto tr143;
+ case 3338: goto tr144;
+ case 3387: goto tr145;
+ case 3594: goto tr146;
+ case 3643: goto tr147;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr73;
+ goto tr75;
} else if ( _widec > 47 ) {
if ( _widec > 57 ) {
if ( 60 <= _widec )
- goto tr73;
+ goto tr75;
} else if ( _widec >= 48 )
- goto tr121;
+ goto tr123;
} else
- goto tr73;
- goto tr118;
-tr121:
+ goto tr75;
+ goto tr120;
+tr123:
{
s->number64 = 0;
}
@@ -16816,95 +17215,96 @@ tr121:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 15;goto st844;}
+ {stack[top++] = 15;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 15;goto st846;}
+ {stack[top++] = 15;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 15;goto st848;}
+ {stack[top++] = 15;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 15;goto st880;}
+ {stack[top++] = 15;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 15;goto st885;}
+ {stack[top++] = 15;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 15;goto st890;}
+ {stack[top++] = 15;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 15;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 15;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 15;goto st899;}
+ {stack[top++] = 15;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 15;goto st901;}
+ {stack[top++] = 15;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 15;goto st956;}
+ {stack[top++] = 15;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 15;goto st967;}
+ {stack[top++] = 15;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 15;goto st984;}
+ {stack[top++] = 15;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 15;goto st995;}
+ {stack[top++] = 15;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 15;goto st1006;}
+ {stack[top++] = 15;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 15;goto st1019;}
+ {stack[top++] = 15;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 15;goto st1029;}
+ {stack[top++] = 15;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 15;goto st1068;}
+ {stack[top++] = 15;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 15;goto st1254;}
+ {stack[top++] = 15;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 15;goto st1257;}
+ {stack[top++] = 15;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 15;goto st1268;}
+ {stack[top++] = 15;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 15;goto st1270;}
+ {stack[top++] = 15;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 15;goto st1299;}
+ {stack[top++] = 15;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 15;goto st1312;}
+ {stack[top++] = 15;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 15;goto st1325;}
+ {stack[top++] = 15;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 15;goto st1331;}
+ {stack[top++] = 15;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 15;goto st1349;}
+ {stack[top++] = 15;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 15;goto st1344;}
+ {stack[top++] = 15;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 15;goto st1362;}
+ {stack[top++] = 15;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 15;goto st1368;}
+ {stack[top++] = 15;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 15;goto st1374;}
+ {stack[top++] = 15;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 15;goto st1382;}
+ {stack[top++] = 15;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 15;goto st1390;}
+ {stack[top++] = 15;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st15;
@@ -16925,53 +17325,53 @@ case 15:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr146;
- case 32: goto tr146;
- case 40: goto tr147;
- case 41: goto tr148;
- case 68: goto tr31;
- case 72: goto tr32;
- case 77: goto tr33;
- case 83: goto st198;
- case 87: goto tr35;
- case 100: goto tr31;
- case 104: goto tr32;
- case 109: goto tr33;
- case 115: goto st198;
- case 119: goto tr35;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr149;
- case 2107: goto tr150;
+ case 9: goto tr149;
+ case 32: goto tr149;
+ case 40: goto tr150;
+ case 41: goto tr151;
+ case 68: goto tr32;
+ case 72: goto tr33;
+ case 77: goto tr34;
+ case 83: goto st204;
+ case 87: goto tr36;
+ case 100: goto tr32;
+ case 104: goto tr33;
+ case 109: goto tr34;
+ case 115: goto st204;
+ case 119: goto tr36;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr152;
+ case 2107: goto tr153;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr30;
- goto tr145;
-tr153:
+ goto tr31;
+ goto tr148;
+tr156:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st16;
-tr154:
+tr157:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st16;
-tr146:
+tr149:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -16979,19 +17379,19 @@ tr146:
s->buffer_length = 0;
}
goto st16;
-tr147:
+tr150:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -17000,19 +17400,19 @@ tr147:
s->buffer_length = 0;
}
goto st16;
-tr148:
+tr151:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -17040,48 +17440,50 @@ case 16:
switch( _widec ) {
case 9: goto st16;
case 32: goto st16;
- case 40: goto tr153;
- case 41: goto tr154;
- case 65: goto tr42;
- case 67: goto tr43;
- case 68: goto tr44;
- case 69: goto tr45;
- case 72: goto tr46;
- case 73: goto tr47;
- case 75: goto tr48;
- case 76: goto tr49;
- case 77: goto tr50;
- case 78: goto tr51;
- case 79: goto tr52;
- case 80: goto tr53;
- case 82: goto tr54;
- case 83: goto tr55;
- case 84: goto tr56;
- case 85: goto tr57;
- case 90: goto tr58;
- case 97: goto tr42;
- case 99: goto tr43;
- case 100: goto tr44;
- case 101: goto tr45;
- case 104: goto tr46;
- case 105: goto tr47;
- case 107: goto tr48;
- case 108: goto tr49;
- case 109: goto tr50;
- case 110: goto tr51;
- case 111: goto tr52;
- case 112: goto tr53;
- case 114: goto tr54;
- case 115: goto tr55;
- case 116: goto tr56;
- case 117: goto tr57;
- case 122: goto tr58;
- case 1802: goto tr93;
- case 1851: goto tr94;
- case 2058: goto tr155;
- case 2107: goto tr156;
- }
- goto tr151;
+ case 40: goto tr156;
+ case 41: goto tr157;
+ case 65: goto tr43;
+ case 67: goto tr44;
+ case 68: goto tr45;
+ case 69: goto tr46;
+ case 72: goto tr47;
+ case 73: goto tr48;
+ case 75: goto tr49;
+ case 76: goto tr50;
+ case 77: goto tr51;
+ case 78: goto tr52;
+ case 79: goto tr53;
+ case 80: goto tr54;
+ case 82: goto tr55;
+ case 83: goto tr56;
+ case 84: goto tr57;
+ case 85: goto tr58;
+ case 87: goto tr59;
+ case 90: goto tr60;
+ case 97: goto tr43;
+ case 99: goto tr44;
+ case 100: goto tr45;
+ case 101: goto tr46;
+ case 104: goto tr47;
+ case 105: goto tr48;
+ case 107: goto tr49;
+ case 108: goto tr50;
+ case 109: goto tr51;
+ case 110: goto tr52;
+ case 111: goto tr53;
+ case 112: goto tr54;
+ case 114: goto tr55;
+ case 115: goto tr56;
+ case 116: goto tr57;
+ case 117: goto tr58;
+ case 119: goto tr59;
+ case 122: goto tr60;
+ case 1802: goto tr95;
+ case 1851: goto tr96;
+ case 2058: goto tr158;
+ case 2107: goto tr159;
+ }
+ goto tr154;
tr6:
{
s->r_class = s->default_class;
@@ -17090,12 +17492,12 @@ tr6:
s->r_ttl = s->default_ttl;
}
goto st17;
-tr43:
+tr44:
{
s->r_class = s->default_class;
}
goto st17;
-tr709:
+tr726:
{
s->r_ttl = s->default_ttl;
}
@@ -17116,7 +17518,7 @@ case 17:
case 110: goto st32;
case 115: goto st36;
}
- goto tr38;
+ goto tr39;
st18:
if ( ++p == pe )
goto _test_eof18;
@@ -17125,7 +17527,7 @@ case 18:
case 65: goto st19;
case 97: goto st19;
}
- goto tr38;
+ goto tr39;
st19:
if ( ++p == pe )
goto _test_eof19;
@@ -17147,19 +17549,19 @@ case 19:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr163;
- case 32: goto tr163;
- case 40: goto tr164;
- case 41: goto tr165;
- case 3082: goto tr166;
- case 3131: goto tr167;
- case 3338: goto tr168;
- case 3387: goto tr168;
- case 3594: goto tr169;
- case 3643: goto tr170;
+ case 9: goto tr166;
+ case 32: goto tr166;
+ case 40: goto tr167;
+ case 41: goto tr168;
+ case 3082: goto tr169;
+ case 3131: goto tr170;
+ case 3338: goto tr171;
+ case 3387: goto tr171;
+ case 3594: goto tr172;
+ case 3643: goto tr173;
}
- goto tr61;
-tr72:
+ goto tr63;
+tr74:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -17171,92 +17573,93 @@ tr72:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr82:
+tr84:
{
s->buffer_length = 0;
}
@@ -17264,92 +17667,93 @@ tr82:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr170:
+tr173:
{ s->r_type = KNOT_RRTYPE_CAA; }
{
rdata_tail = s->r_data;
@@ -17361,92 +17765,93 @@ tr170:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr192:
+tr195:
{ s->r_type = KNOT_RRTYPE_CDNSKEY; }
{
rdata_tail = s->r_data;
@@ -17458,92 +17863,93 @@ tr192:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr200:
+tr203:
{ s->r_type = KNOT_RRTYPE_CDS; }
{
rdata_tail = s->r_data;
@@ -17555,92 +17961,93 @@ tr200:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr210:
+tr213:
{ s->r_type = KNOT_RRTYPE_CERT; }
{
rdata_tail = s->r_data;
@@ -17652,92 +18059,93 @@ tr210:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr221:
+tr224:
{ s->r_type = KNOT_RRTYPE_CNAME; }
{
rdata_tail = s->r_data;
@@ -17749,92 +18157,93 @@ tr221:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr232:
+tr235:
{ s->r_type = KNOT_RRTYPE_CSYNC; }
{
rdata_tail = s->r_data;
@@ -17846,92 +18255,93 @@ tr232:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr246:
+tr249:
{ s->r_type = KNOT_RRTYPE_DHCID; }
{
rdata_tail = s->r_data;
@@ -17943,92 +18353,93 @@ tr246:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr258:
+tr261:
{ s->r_type = KNOT_RRTYPE_DNAME; }
{
rdata_tail = s->r_data;
@@ -18040,92 +18451,93 @@ tr258:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr269:
+tr272:
{ s->r_type = KNOT_RRTYPE_DNSKEY; }
{
rdata_tail = s->r_data;
@@ -18137,92 +18549,93 @@ tr269:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr277:
+tr280:
{ s->r_type = KNOT_RRTYPE_DS; }
{
rdata_tail = s->r_data;
@@ -18234,92 +18647,93 @@ tr277:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr290:
+tr293:
{ s->r_type = KNOT_RRTYPE_EUI48; }
{
rdata_tail = s->r_data;
@@ -18331,92 +18745,93 @@ tr290:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr299:
+tr302:
{ s->r_type = KNOT_RRTYPE_EUI64; }
{
rdata_tail = s->r_data;
@@ -18428,92 +18843,93 @@ tr299:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr312:
+tr315:
{ s->r_type = KNOT_RRTYPE_HINFO; }
{
rdata_tail = s->r_data;
@@ -18525,92 +18941,93 @@ tr312:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr323:
+tr326:
{ s->r_type = KNOT_RRTYPE_HTTPS; }
{
rdata_tail = s->r_data;
@@ -18622,92 +19039,93 @@ tr323:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr366:
+tr370:
{ s->r_type = KNOT_RRTYPE_IPSECKEY; }
{
rdata_tail = s->r_data;
@@ -18719,92 +19137,93 @@ tr366:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr377:
+tr381:
{ s->r_type = KNOT_RRTYPE_KEY; }
{
rdata_tail = s->r_data;
@@ -18816,92 +19235,93 @@ tr377:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr385:
+tr389:
{ s->r_type = KNOT_RRTYPE_KX; }
{
rdata_tail = s->r_data;
@@ -18913,92 +19333,93 @@ tr385:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr398:
+tr402:
{ s->r_type = KNOT_RRTYPE_L32; }
{
rdata_tail = s->r_data;
@@ -19010,92 +19431,93 @@ tr398:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr407:
+tr411:
{ s->r_type = KNOT_RRTYPE_L64; }
{
rdata_tail = s->r_data;
@@ -19107,92 +19529,93 @@ tr407:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr416:
+tr420:
{ s->r_type = KNOT_RRTYPE_LOC; }
{
rdata_tail = s->r_data;
@@ -19204,92 +19627,93 @@ tr416:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr424:
+tr428:
{ s->r_type = KNOT_RRTYPE_LP; }
{
rdata_tail = s->r_data;
@@ -19301,92 +19725,93 @@ tr424:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr437:
+tr441:
{ s->r_type = KNOT_RRTYPE_MINFO; }
{
rdata_tail = s->r_data;
@@ -19398,92 +19823,93 @@ tr437:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr445:
+tr449:
{ s->r_type = KNOT_RRTYPE_MX; }
{
rdata_tail = s->r_data;
@@ -19495,92 +19921,93 @@ tr445:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr459:
+tr463:
{ s->r_type = KNOT_RRTYPE_NAPTR; }
{
rdata_tail = s->r_data;
@@ -19592,92 +20019,93 @@ tr459:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr468:
+tr472:
{ s->r_type = KNOT_RRTYPE_NID; }
{
rdata_tail = s->r_data;
@@ -19689,92 +20117,93 @@ tr468:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr477:
+tr481:
{ s->r_type = KNOT_RRTYPE_NS; }
{
rdata_tail = s->r_data;
@@ -19786,92 +20215,93 @@ tr477:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr487:
+tr491:
{ s->r_type = KNOT_RRTYPE_NSEC; }
{
rdata_tail = s->r_data;
@@ -19883,92 +20313,93 @@ tr487:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr496:
+tr500:
{ s->r_type = KNOT_RRTYPE_NSEC3; }
{
rdata_tail = s->r_data;
@@ -19980,92 +20411,93 @@ tr496:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr508:
+tr512:
{ s->r_type = KNOT_RRTYPE_NSEC3PARAM; }
{
rdata_tail = s->r_data;
@@ -20077,92 +20509,93 @@ tr508:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr525:
+tr529:
{ s->r_type = KNOT_RRTYPE_OPENPGPKEY; }
{
rdata_tail = s->r_data;
@@ -20174,92 +20607,93 @@ tr525:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr535:
+tr539:
{ s->r_type = KNOT_RRTYPE_PTR; }
{
rdata_tail = s->r_data;
@@ -20271,92 +20705,93 @@ tr535:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr546:
+tr550:
{ s->r_type = KNOT_RRTYPE_RP; }
{
rdata_tail = s->r_data;
@@ -20368,92 +20803,93 @@ tr546:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr557:
+tr561:
{ s->r_type = KNOT_RRTYPE_RRSIG; }
{
rdata_tail = s->r_data;
@@ -20465,92 +20901,93 @@ tr557:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr565:
+tr569:
{ s->r_type = KNOT_RRTYPE_RT; }
{
rdata_tail = s->r_data;
@@ -20562,92 +20999,93 @@ tr565:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr583:
+tr587:
{ s->r_type = KNOT_RRTYPE_SMIMEA; }
{
rdata_tail = s->r_data;
@@ -20659,92 +21097,93 @@ tr583:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr592:
+tr596:
{ s->r_type = KNOT_RRTYPE_SOA; }
{
rdata_tail = s->r_data;
@@ -20756,92 +21195,93 @@ tr592:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr601:
+tr605:
{ s->r_type = KNOT_RRTYPE_SPF; }
{
rdata_tail = s->r_data;
@@ -20853,92 +21293,93 @@ tr601:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr610:
+tr614:
{ s->r_type = KNOT_RRTYPE_SRV; }
{
rdata_tail = s->r_data;
@@ -20950,92 +21391,93 @@ tr610:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr621:
+tr625:
{ s->r_type = KNOT_RRTYPE_SSHFP; }
{
rdata_tail = s->r_data;
@@ -21047,92 +21489,93 @@ tr621:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr631:
+tr635:
{ s->r_type = KNOT_RRTYPE_SVCB; }
{
rdata_tail = s->r_data;
@@ -21144,92 +21587,93 @@ tr631:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr644:
+tr648:
{ s->r_type = KNOT_RRTYPE_TLSA; }
{
rdata_tail = s->r_data;
@@ -21241,92 +21685,93 @@ tr644:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr653:
+tr657:
{ s->r_type = KNOT_RRTYPE_TXT; }
{
rdata_tail = s->r_data;
@@ -21338,98 +21783,99 @@ tr653:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr667:
+tr671:
{
if (s->number64 <= UINT16_MAX) {
s->r_type = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -21442,92 +21888,93 @@ tr667:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr677:
+tr681:
{ s->r_type = KNOT_RRTYPE_URI; }
{
rdata_tail = s->r_data;
@@ -21539,92 +21986,191 @@ tr677:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
+ {stack[top++] = 20;goto st932;}
+ case KNOT_RRTYPE_TXT:
+ case KNOT_RRTYPE_SPF:
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
+ case KNOT_RRTYPE_AAAA:
+ {stack[top++] = 20;goto st941;}
+ case KNOT_RRTYPE_LOC:
+ {stack[top++] = 20;goto st943;}
+ case KNOT_RRTYPE_SRV:
+ {stack[top++] = 20;goto st998;}
+ case KNOT_RRTYPE_NAPTR:
+ {stack[top++] = 20;goto st1009;}
+ case KNOT_RRTYPE_CERT:
+ {stack[top++] = 20;goto st1026;}
+ case KNOT_RRTYPE_APL:
+ {stack[top++] = 20;goto st1037;}
+ case KNOT_RRTYPE_DS:
+ case KNOT_RRTYPE_CDS:
+ {stack[top++] = 20;goto st1048;}
+ case KNOT_RRTYPE_SSHFP:
+ {stack[top++] = 20;goto st1061;}
+ case KNOT_RRTYPE_IPSECKEY:
+ {stack[top++] = 20;goto st1071;}
+ case KNOT_RRTYPE_RRSIG:
+ {stack[top++] = 20;goto st1110;}
+ case KNOT_RRTYPE_NSEC:
+ {stack[top++] = 20;goto st1302;}
+ case KNOT_RRTYPE_KEY:
+ case KNOT_RRTYPE_DNSKEY:
+ case KNOT_RRTYPE_CDNSKEY:
+ {stack[top++] = 20;goto st1305;}
+ case KNOT_RRTYPE_DHCID:
+ case KNOT_RRTYPE_OPENPGPKEY:
+ {stack[top++] = 20;goto st1316;}
+ case KNOT_RRTYPE_NSEC3:
+ {stack[top++] = 20;goto st1318;}
+ case KNOT_RRTYPE_NSEC3PARAM:
+ {stack[top++] = 20;goto st1347;}
+ case KNOT_RRTYPE_TLSA:
+ case KNOT_RRTYPE_SMIMEA:
+ {stack[top++] = 20;goto st1360;}
+ case KNOT_RRTYPE_CSYNC:
+ {stack[top++] = 20;goto st1373;}
+ case KNOT_RRTYPE_ZONEMD:
+ {stack[top++] = 20;goto st1379;}
+ case KNOT_RRTYPE_NID:
+ case KNOT_RRTYPE_L64:
+ {stack[top++] = 20;goto st1397;}
+ case KNOT_RRTYPE_L32:
+ {stack[top++] = 20;goto st1392;}
+ case KNOT_RRTYPE_EUI48:
+ {stack[top++] = 20;goto st1410;}
+ case KNOT_RRTYPE_EUI64:
+ {stack[top++] = 20;goto st1416;}
+ case KNOT_RRTYPE_URI:
+ {stack[top++] = 20;goto st1422;}
+ case KNOT_RRTYPE_CAA:
+ {stack[top++] = 20;goto st1430;}
+ case KNOT_RRTYPE_SVCB:
+ case KNOT_RRTYPE_HTTPS:
+ {stack[top++] = 20;goto st1438;}
+ default:
+ WARN(ZS_CANNOT_TEXT_DATA);
+ {goto st316;}
+ }
+ }
+ goto st20;
+tr694:
+ { s->r_type = KNOT_RRTYPE_WALLET; }
+ {
+ rdata_tail = s->r_data;
+ }
+ {
+ s->buffer_length = 0;
+ }
+ {
+ p--;
+ switch (s->r_type) {
+ case KNOT_RRTYPE_A:
+ {stack[top++] = 20;goto st886;}
+ case KNOT_RRTYPE_NS:
+ case KNOT_RRTYPE_CNAME:
+ case KNOT_RRTYPE_PTR:
+ case KNOT_RRTYPE_DNAME:
+ {stack[top++] = 20;goto st888;}
+ case KNOT_RRTYPE_SOA:
{stack[top++] = 20;goto st890;}
+ case KNOT_RRTYPE_HINFO:
+ {stack[top++] = 20;goto st922;}
+ case KNOT_RRTYPE_MINFO:
+ case KNOT_RRTYPE_RP:
+ {stack[top++] = 20;goto st927;}
+ case KNOT_RRTYPE_MX:
+ case KNOT_RRTYPE_AFSDB:
+ case KNOT_RRTYPE_RT:
+ case KNOT_RRTYPE_KX:
+ case KNOT_RRTYPE_LP:
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr690:
+tr707:
{ s->r_type = KNOT_RRTYPE_ZONEMD; }
{
rdata_tail = s->r_data;
@@ -21636,92 +22182,93 @@ tr690:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr940:
+tr958:
{ s->r_type = KNOT_RRTYPE_AAAA; }
{
rdata_tail = s->r_data;
@@ -21733,92 +22280,93 @@ tr940:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr951:
+tr969:
{ s->r_type = KNOT_RRTYPE_AFSDB; }
{
rdata_tail = s->r_data;
@@ -21830,92 +22378,93 @@ tr951:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
-tr960:
+tr978:
{ s->r_type = KNOT_RRTYPE_APL; }
{
rdata_tail = s->r_data;
@@ -21927,88 +22476,89 @@ tr960:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 20;goto st844;}
+ {stack[top++] = 20;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 20;goto st846;}
+ {stack[top++] = 20;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 20;goto st848;}
+ {stack[top++] = 20;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 20;goto st880;}
+ {stack[top++] = 20;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 20;goto st885;}
+ {stack[top++] = 20;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 20;goto st890;}
+ {stack[top++] = 20;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 20;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 20;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 20;goto st899;}
+ {stack[top++] = 20;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 20;goto st901;}
+ {stack[top++] = 20;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 20;goto st956;}
+ {stack[top++] = 20;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 20;goto st967;}
+ {stack[top++] = 20;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 20;goto st984;}
+ {stack[top++] = 20;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 20;goto st995;}
+ {stack[top++] = 20;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 20;goto st1006;}
+ {stack[top++] = 20;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 20;goto st1019;}
+ {stack[top++] = 20;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 20;goto st1029;}
+ {stack[top++] = 20;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 20;goto st1068;}
+ {stack[top++] = 20;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 20;goto st1254;}
+ {stack[top++] = 20;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 20;goto st1257;}
+ {stack[top++] = 20;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 20;goto st1268;}
+ {stack[top++] = 20;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 20;goto st1270;}
+ {stack[top++] = 20;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 20;goto st1299;}
+ {stack[top++] = 20;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 20;goto st1312;}
+ {stack[top++] = 20;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 20;goto st1325;}
+ {stack[top++] = 20;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 20;goto st1331;}
+ {stack[top++] = 20;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 20;goto st1349;}
+ {stack[top++] = 20;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 20;goto st1344;}
+ {stack[top++] = 20;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 20;goto st1362;}
+ {stack[top++] = 20;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 20;goto st1368;}
+ {stack[top++] = 20;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 20;goto st1374;}
+ {stack[top++] = 20;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 20;goto st1382;}
+ {stack[top++] = 20;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 20;goto st1390;}
+ {stack[top++] = 20;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
goto st20;
@@ -22047,30 +22597,30 @@ case 20:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1801: goto tr84;
- case 1802: goto tr87;
- case 1824: goto tr84;
- case 1832: goto tr85;
- case 1833: goto tr86;
- case 1851: goto tr88;
- case 2057: goto tr171;
- case 2058: goto tr87;
- case 2080: goto tr171;
- case 2088: goto tr172;
- case 2089: goto tr173;
- case 2107: goto tr174;
+ case 1801: goto tr86;
+ case 1802: goto tr89;
+ case 1824: goto tr86;
+ case 1832: goto tr87;
+ case 1833: goto tr88;
+ case 1851: goto tr90;
+ case 2057: goto tr174;
+ case 2058: goto tr89;
+ case 2080: goto tr174;
+ case 2088: goto tr175;
+ case 2089: goto tr176;
+ case 2107: goto tr177;
}
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr99;
- goto tr83;
-tr175:
+ goto tr101;
+ goto tr85;
+tr178:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
goto st21;
-tr171:
+tr174:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -22081,7 +22631,7 @@ tr171:
s->buffer_length = 0;
}
goto st21;
-tr172:
+tr175:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -22094,12 +22644,12 @@ tr172:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st21;
-tr173:
+tr176:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -22112,12 +22662,12 @@ tr173:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st21;
-tr176:
+tr179:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -22126,12 +22676,12 @@ tr176:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st21;
-tr177:
+tr180:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -22140,7 +22690,7 @@ tr177:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -22181,21 +22731,21 @@ case 21:
}
switch( _widec ) {
case 1801: goto st7;
- case 1802: goto tr93;
+ case 1802: goto tr95;
case 1824: goto st7;
- case 1832: goto tr91;
- case 1833: goto tr92;
- case 1851: goto tr94;
- case 2057: goto tr175;
- case 2058: goto tr93;
- case 2080: goto tr175;
- case 2088: goto tr176;
- case 2089: goto tr177;
- case 2107: goto tr178;
+ case 1832: goto tr93;
+ case 1833: goto tr94;
+ case 1851: goto tr96;
+ case 2057: goto tr178;
+ case 2058: goto tr95;
+ case 2080: goto tr178;
+ case 2088: goto tr179;
+ case 2089: goto tr180;
+ case 2107: goto tr181;
}
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr99;
- goto tr83;
+ goto tr101;
+ goto tr85;
st22:
if ( ++p == pe )
goto _test_eof22;
@@ -22206,7 +22756,7 @@ case 22:
case 110: goto st23;
case 115: goto st28;
}
- goto tr38;
+ goto tr39;
st23:
if ( ++p == pe )
goto _test_eof23;
@@ -22215,7 +22765,7 @@ case 23:
case 83: goto st24;
case 115: goto st24;
}
- goto tr38;
+ goto tr39;
st24:
if ( ++p == pe )
goto _test_eof24;
@@ -22224,7 +22774,7 @@ case 24:
case 75: goto st25;
case 107: goto st25;
}
- goto tr38;
+ goto tr39;
st25:
if ( ++p == pe )
goto _test_eof25;
@@ -22233,7 +22783,7 @@ case 25:
case 69: goto st26;
case 101: goto st26;
}
- goto tr38;
+ goto tr39;
st26:
if ( ++p == pe )
goto _test_eof26;
@@ -22242,7 +22792,7 @@ case 26:
case 89: goto st27;
case 121: goto st27;
}
- goto tr38;
+ goto tr39;
st27:
if ( ++p == pe )
goto _test_eof27;
@@ -22264,18 +22814,18 @@ case 27:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr185;
- case 32: goto tr185;
- case 40: goto tr186;
- case 41: goto tr187;
- case 3082: goto tr188;
- case 3131: goto tr189;
- case 3338: goto tr190;
- case 3387: goto tr190;
- case 3594: goto tr191;
- case 3643: goto tr192;
+ case 9: goto tr188;
+ case 32: goto tr188;
+ case 40: goto tr189;
+ case 41: goto tr190;
+ case 3082: goto tr191;
+ case 3131: goto tr192;
+ case 3338: goto tr193;
+ case 3387: goto tr193;
+ case 3594: goto tr194;
+ case 3643: goto tr195;
}
- goto tr61;
+ goto tr63;
st28:
if ( ++p == pe )
goto _test_eof28;
@@ -22297,18 +22847,18 @@ case 28:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr193;
- case 32: goto tr193;
- case 40: goto tr194;
- case 41: goto tr195;
- case 3082: goto tr196;
- case 3131: goto tr197;
- case 3338: goto tr198;
- case 3387: goto tr198;
- case 3594: goto tr199;
- case 3643: goto tr200;
+ case 9: goto tr196;
+ case 32: goto tr196;
+ case 40: goto tr197;
+ case 41: goto tr198;
+ case 3082: goto tr199;
+ case 3131: goto tr200;
+ case 3338: goto tr201;
+ case 3387: goto tr201;
+ case 3594: goto tr202;
+ case 3643: goto tr203;
}
- goto tr61;
+ goto tr63;
st29:
if ( ++p == pe )
goto _test_eof29;
@@ -22317,7 +22867,7 @@ case 29:
case 82: goto st30;
case 114: goto st30;
}
- goto tr38;
+ goto tr39;
st30:
if ( ++p == pe )
goto _test_eof30;
@@ -22326,7 +22876,7 @@ case 30:
case 84: goto st31;
case 116: goto st31;
}
- goto tr38;
+ goto tr39;
st31:
if ( ++p == pe )
goto _test_eof31;
@@ -22348,18 +22898,18 @@ case 31:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr203;
- case 32: goto tr203;
- case 40: goto tr204;
- case 41: goto tr205;
- case 3082: goto tr206;
- case 3131: goto tr207;
- case 3338: goto tr208;
- case 3387: goto tr208;
- case 3594: goto tr209;
- case 3643: goto tr210;
+ case 9: goto tr206;
+ case 32: goto tr206;
+ case 40: goto tr207;
+ case 41: goto tr208;
+ case 3082: goto tr209;
+ case 3131: goto tr210;
+ case 3338: goto tr211;
+ case 3387: goto tr211;
+ case 3594: goto tr212;
+ case 3643: goto tr213;
}
- goto tr61;
+ goto tr63;
st32:
if ( ++p == pe )
goto _test_eof32;
@@ -22368,7 +22918,7 @@ case 32:
case 65: goto st33;
case 97: goto st33;
}
- goto tr38;
+ goto tr39;
st33:
if ( ++p == pe )
goto _test_eof33;
@@ -22377,7 +22927,7 @@ case 33:
case 77: goto st34;
case 109: goto st34;
}
- goto tr38;
+ goto tr39;
st34:
if ( ++p == pe )
goto _test_eof34;
@@ -22386,7 +22936,7 @@ case 34:
case 69: goto st35;
case 101: goto st35;
}
- goto tr38;
+ goto tr39;
st35:
if ( ++p == pe )
goto _test_eof35;
@@ -22408,18 +22958,18 @@ case 35:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr214;
- case 32: goto tr214;
- case 40: goto tr215;
- case 41: goto tr216;
- case 3082: goto tr217;
- case 3131: goto tr218;
- case 3338: goto tr219;
- case 3387: goto tr219;
- case 3594: goto tr220;
- case 3643: goto tr221;
+ case 9: goto tr217;
+ case 32: goto tr217;
+ case 40: goto tr218;
+ case 41: goto tr219;
+ case 3082: goto tr220;
+ case 3131: goto tr221;
+ case 3338: goto tr222;
+ case 3387: goto tr222;
+ case 3594: goto tr223;
+ case 3643: goto tr224;
}
- goto tr61;
+ goto tr63;
st36:
if ( ++p == pe )
goto _test_eof36;
@@ -22428,7 +22978,7 @@ case 36:
case 89: goto st37;
case 121: goto st37;
}
- goto tr38;
+ goto tr39;
st37:
if ( ++p == pe )
goto _test_eof37;
@@ -22437,7 +22987,7 @@ case 37:
case 78: goto st38;
case 110: goto st38;
}
- goto tr38;
+ goto tr39;
st38:
if ( ++p == pe )
goto _test_eof38;
@@ -22446,7 +22996,7 @@ case 38:
case 67: goto st39;
case 99: goto st39;
}
- goto tr38;
+ goto tr39;
st39:
if ( ++p == pe )
goto _test_eof39;
@@ -22468,18 +23018,18 @@ case 39:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr225;
- case 32: goto tr225;
- case 40: goto tr226;
- case 41: goto tr227;
- case 3082: goto tr228;
- case 3131: goto tr229;
- case 3338: goto tr230;
- case 3387: goto tr230;
- case 3594: goto tr231;
- case 3643: goto tr232;
+ case 9: goto tr228;
+ case 32: goto tr228;
+ case 40: goto tr229;
+ case 41: goto tr230;
+ case 3082: goto tr231;
+ case 3131: goto tr232;
+ case 3338: goto tr233;
+ case 3387: goto tr233;
+ case 3594: goto tr234;
+ case 3643: goto tr235;
}
- goto tr61;
+ goto tr63;
tr7:
{
s->r_class = s->default_class;
@@ -22488,12 +23038,12 @@ tr7:
s->r_ttl = s->default_ttl;
}
goto st40;
-tr44:
+tr45:
{
s->r_class = s->default_class;
}
goto st40;
-tr710:
+tr727:
{
s->r_ttl = s->default_ttl;
}
@@ -22510,7 +23060,7 @@ case 40:
case 110: goto st45;
case 115: goto st53;
}
- goto tr38;
+ goto tr39;
st41:
if ( ++p == pe )
goto _test_eof41;
@@ -22519,7 +23069,7 @@ case 41:
case 67: goto st42;
case 99: goto st42;
}
- goto tr38;
+ goto tr39;
st42:
if ( ++p == pe )
goto _test_eof42;
@@ -22528,7 +23078,7 @@ case 42:
case 73: goto st43;
case 105: goto st43;
}
- goto tr38;
+ goto tr39;
st43:
if ( ++p == pe )
goto _test_eof43;
@@ -22537,7 +23087,7 @@ case 43:
case 68: goto st44;
case 100: goto st44;
}
- goto tr38;
+ goto tr39;
st44:
if ( ++p == pe )
goto _test_eof44;
@@ -22559,18 +23109,18 @@ case 44:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr239;
- case 32: goto tr239;
- case 40: goto tr240;
- case 41: goto tr241;
- case 3082: goto tr242;
- case 3131: goto tr243;
- case 3338: goto tr244;
- case 3387: goto tr244;
- case 3594: goto tr245;
- case 3643: goto tr246;
+ case 9: goto tr242;
+ case 32: goto tr242;
+ case 40: goto tr243;
+ case 41: goto tr244;
+ case 3082: goto tr245;
+ case 3131: goto tr246;
+ case 3338: goto tr247;
+ case 3387: goto tr247;
+ case 3594: goto tr248;
+ case 3643: goto tr249;
}
- goto tr61;
+ goto tr63;
st45:
if ( ++p == pe )
goto _test_eof45;
@@ -22581,7 +23131,7 @@ case 45:
case 97: goto st46;
case 115: goto st49;
}
- goto tr38;
+ goto tr39;
st46:
if ( ++p == pe )
goto _test_eof46;
@@ -22590,7 +23140,7 @@ case 46:
case 77: goto st47;
case 109: goto st47;
}
- goto tr38;
+ goto tr39;
st47:
if ( ++p == pe )
goto _test_eof47;
@@ -22599,7 +23149,7 @@ case 47:
case 69: goto st48;
case 101: goto st48;
}
- goto tr38;
+ goto tr39;
st48:
if ( ++p == pe )
goto _test_eof48;
@@ -22621,18 +23171,18 @@ case 48:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr251;
- case 32: goto tr251;
- case 40: goto tr252;
- case 41: goto tr253;
- case 3082: goto tr254;
- case 3131: goto tr255;
- case 3338: goto tr256;
- case 3387: goto tr256;
- case 3594: goto tr257;
- case 3643: goto tr258;
+ case 9: goto tr254;
+ case 32: goto tr254;
+ case 40: goto tr255;
+ case 41: goto tr256;
+ case 3082: goto tr257;
+ case 3131: goto tr258;
+ case 3338: goto tr259;
+ case 3387: goto tr259;
+ case 3594: goto tr260;
+ case 3643: goto tr261;
}
- goto tr61;
+ goto tr63;
st49:
if ( ++p == pe )
goto _test_eof49;
@@ -22641,7 +23191,7 @@ case 49:
case 75: goto st50;
case 107: goto st50;
}
- goto tr38;
+ goto tr39;
st50:
if ( ++p == pe )
goto _test_eof50;
@@ -22650,7 +23200,7 @@ case 50:
case 69: goto st51;
case 101: goto st51;
}
- goto tr38;
+ goto tr39;
st51:
if ( ++p == pe )
goto _test_eof51;
@@ -22659,7 +23209,7 @@ case 51:
case 89: goto st52;
case 121: goto st52;
}
- goto tr38;
+ goto tr39;
st52:
if ( ++p == pe )
goto _test_eof52;
@@ -22681,18 +23231,18 @@ case 52:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr262;
- case 32: goto tr262;
- case 40: goto tr263;
- case 41: goto tr264;
- case 3082: goto tr265;
- case 3131: goto tr266;
- case 3338: goto tr267;
- case 3387: goto tr267;
- case 3594: goto tr268;
- case 3643: goto tr269;
+ case 9: goto tr265;
+ case 32: goto tr265;
+ case 40: goto tr266;
+ case 41: goto tr267;
+ case 3082: goto tr268;
+ case 3131: goto tr269;
+ case 3338: goto tr270;
+ case 3387: goto tr270;
+ case 3594: goto tr271;
+ case 3643: goto tr272;
}
- goto tr61;
+ goto tr63;
st53:
if ( ++p == pe )
goto _test_eof53;
@@ -22714,18 +23264,18 @@ case 53:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr270;
- case 32: goto tr270;
- case 40: goto tr271;
- case 41: goto tr272;
- case 3082: goto tr273;
- case 3131: goto tr274;
- case 3338: goto tr275;
- case 3387: goto tr275;
- case 3594: goto tr276;
- case 3643: goto tr277;
+ case 9: goto tr273;
+ case 32: goto tr273;
+ case 40: goto tr274;
+ case 41: goto tr275;
+ case 3082: goto tr276;
+ case 3131: goto tr277;
+ case 3338: goto tr278;
+ case 3387: goto tr278;
+ case 3594: goto tr279;
+ case 3643: goto tr280;
}
- goto tr61;
+ goto tr63;
tr8:
{
s->r_class = s->default_class;
@@ -22734,12 +23284,12 @@ tr8:
s->r_ttl = s->default_ttl;
}
goto st54;
-tr45:
+tr46:
{
s->r_class = s->default_class;
}
goto st54;
-tr711:
+tr728:
{
s->r_ttl = s->default_ttl;
}
@@ -22752,7 +23302,7 @@ case 54:
case 85: goto st55;
case 117: goto st55;
}
- goto tr38;
+ goto tr39;
st55:
if ( ++p == pe )
goto _test_eof55;
@@ -22761,7 +23311,7 @@ case 55:
case 73: goto st56;
case 105: goto st56;
}
- goto tr38;
+ goto tr39;
st56:
if ( ++p == pe )
goto _test_eof56;
@@ -22770,14 +23320,14 @@ case 56:
case 52: goto st57;
case 54: goto st59;
}
- goto tr38;
+ goto tr39;
st57:
if ( ++p == pe )
goto _test_eof57;
case 57:
if ( (*p) == 56 )
goto st58;
- goto tr38;
+ goto tr39;
st58:
if ( ++p == pe )
goto _test_eof58;
@@ -22799,25 +23349,25 @@ case 58:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr283;
- case 32: goto tr283;
- case 40: goto tr284;
- case 41: goto tr285;
- case 3082: goto tr286;
- case 3131: goto tr287;
- case 3338: goto tr288;
- case 3387: goto tr288;
- case 3594: goto tr289;
- case 3643: goto tr290;
+ case 9: goto tr286;
+ case 32: goto tr286;
+ case 40: goto tr287;
+ case 41: goto tr288;
+ case 3082: goto tr289;
+ case 3131: goto tr290;
+ case 3338: goto tr291;
+ case 3387: goto tr291;
+ case 3594: goto tr292;
+ case 3643: goto tr293;
}
- goto tr61;
+ goto tr63;
st59:
if ( ++p == pe )
goto _test_eof59;
case 59:
if ( (*p) == 52 )
goto st60;
- goto tr38;
+ goto tr39;
st60:
if ( ++p == pe )
goto _test_eof60;
@@ -22839,18 +23389,18 @@ case 60:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr292;
- case 32: goto tr292;
- case 40: goto tr293;
- case 41: goto tr294;
- case 3082: goto tr295;
- case 3131: goto tr296;
- case 3338: goto tr297;
- case 3387: goto tr297;
- case 3594: goto tr298;
- case 3643: goto tr299;
+ case 9: goto tr295;
+ case 32: goto tr295;
+ case 40: goto tr296;
+ case 41: goto tr297;
+ case 3082: goto tr298;
+ case 3131: goto tr299;
+ case 3338: goto tr300;
+ case 3387: goto tr300;
+ case 3594: goto tr301;
+ case 3643: goto tr302;
}
- goto tr61;
+ goto tr63;
tr9:
{
s->r_class = s->default_class;
@@ -22859,12 +23409,12 @@ tr9:
s->r_ttl = s->default_ttl;
}
goto st61;
-tr46:
+tr47:
{
s->r_class = s->default_class;
}
goto st61;
-tr712:
+tr729:
{
s->r_ttl = s->default_ttl;
}
@@ -22879,7 +23429,7 @@ case 61:
case 105: goto st62;
case 116: goto st66;
}
- goto tr38;
+ goto tr39;
st62:
if ( ++p == pe )
goto _test_eof62;
@@ -22888,7 +23438,7 @@ case 62:
case 78: goto st63;
case 110: goto st63;
}
- goto tr38;
+ goto tr39;
st63:
if ( ++p == pe )
goto _test_eof63;
@@ -22897,7 +23447,7 @@ case 63:
case 70: goto st64;
case 102: goto st64;
}
- goto tr38;
+ goto tr39;
st64:
if ( ++p == pe )
goto _test_eof64;
@@ -22906,7 +23456,7 @@ case 64:
case 79: goto st65;
case 111: goto st65;
}
- goto tr38;
+ goto tr39;
st65:
if ( ++p == pe )
goto _test_eof65;
@@ -22928,18 +23478,18 @@ case 65:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr305;
- case 32: goto tr305;
- case 40: goto tr306;
- case 41: goto tr307;
- case 3082: goto tr308;
- case 3131: goto tr309;
- case 3338: goto tr310;
- case 3387: goto tr310;
- case 3594: goto tr311;
- case 3643: goto tr312;
+ case 9: goto tr308;
+ case 32: goto tr308;
+ case 40: goto tr309;
+ case 41: goto tr310;
+ case 3082: goto tr311;
+ case 3131: goto tr312;
+ case 3338: goto tr313;
+ case 3387: goto tr313;
+ case 3594: goto tr314;
+ case 3643: goto tr315;
}
- goto tr61;
+ goto tr63;
st66:
if ( ++p == pe )
goto _test_eof66;
@@ -22948,7 +23498,7 @@ case 66:
case 84: goto st67;
case 116: goto st67;
}
- goto tr38;
+ goto tr39;
st67:
if ( ++p == pe )
goto _test_eof67;
@@ -22957,7 +23507,7 @@ case 67:
case 80: goto st68;
case 112: goto st68;
}
- goto tr38;
+ goto tr39;
st68:
if ( ++p == pe )
goto _test_eof68;
@@ -22966,7 +23516,7 @@ case 68:
case 83: goto st69;
case 115: goto st69;
}
- goto tr38;
+ goto tr39;
st69:
if ( ++p == pe )
goto _test_eof69;
@@ -22988,19 +23538,19 @@ case 69:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr316;
- case 32: goto tr316;
- case 40: goto tr317;
- case 41: goto tr318;
- case 3082: goto tr319;
- case 3131: goto tr320;
- case 3338: goto tr321;
- case 3387: goto tr321;
- case 3594: goto tr322;
- case 3643: goto tr323;
+ case 9: goto tr319;
+ case 32: goto tr319;
+ case 40: goto tr320;
+ case 41: goto tr321;
+ case 3082: goto tr322;
+ case 3131: goto tr323;
+ case 3338: goto tr324;
+ case 3387: goto tr324;
+ case 3594: goto tr325;
+ case 3643: goto tr326;
}
- goto tr61;
-tr47:
+ goto tr63;
+tr48:
{
s->r_class = s->default_class;
}
@@ -23015,7 +23565,7 @@ case 70:
case 110: goto st71;
case 112: goto st74;
}
- goto tr38;
+ goto tr39;
st71:
if ( ++p == pe )
goto _test_eof71;
@@ -23033,95 +23583,95 @@ case 71:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr326;
- case 32: goto tr326;
- case 40: goto tr327;
- case 41: goto tr328;
- case 2058: goto tr329;
- case 2107: goto tr330;
+ case 9: goto tr329;
+ case 32: goto tr329;
+ case 40: goto tr330;
+ case 41: goto tr331;
+ case 2058: goto tr332;
+ case 2107: goto tr333;
}
- goto tr38;
-tr332:
+ goto tr39;
+tr335:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st72;
-tr333:
+tr336:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st72;
-tr351:
+tr355:
{
s->line_counter++;
}
goto st72;
-tr727:
+tr745:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
goto st72;
-tr728:
+tr746:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st72;
-tr729:
+tr747:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st72;
-tr736:
+tr754:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
goto st72;
-tr692:
+tr709:
{
s->buffer[s->buffer_length++] = 0;
@@ -23139,36 +23689,36 @@ tr692:
s->line_counter++;
}
goto st72;
-tr326:
+tr329:
{
s->r_class = KNOT_CLASS_IN;
}
goto st72;
-tr327:
+tr330:
{
s->r_class = KNOT_CLASS_IN;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st72;
-tr328:
+tr331:
{
s->r_class = KNOT_CLASS_IN;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st72;
-tr329:
+tr332:
{
s->r_class = KNOT_CLASS_IN;
}
@@ -23176,13 +23726,13 @@ tr329:
s->line_counter++;
}
goto st72;
-tr745:
+tr763:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -23190,17 +23740,17 @@ tr745:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
goto st72;
-tr746:
+tr764:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -23208,24 +23758,24 @@ tr746:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
goto st72;
-tr747:
+tr765:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -23233,24 +23783,24 @@ tr747:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
goto st72;
-tr749:
+tr767:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -23258,7 +23808,7 @@ tr749:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -23284,8 +23834,8 @@ case 72:
switch( _widec ) {
case 9: goto st72;
case 32: goto st72;
- case 40: goto tr332;
- case 41: goto tr333;
+ case 40: goto tr335;
+ case 41: goto tr336;
case 65: goto st4;
case 67: goto st17;
case 68: goto st40;
@@ -23302,7 +23852,8 @@ case 72:
case 83: goto st135;
case 84: goto st154;
case 85: goto st164;
- case 90: goto st167;
+ case 87: goto st167;
+ case 90: goto st173;
case 97: goto st4;
case 99: goto st17;
case 100: goto st40;
@@ -23319,12 +23870,13 @@ case 72:
case 115: goto st135;
case 116: goto st154;
case 117: goto st164;
- case 122: goto st167;
- case 2058: goto tr351;
- case 2107: goto tr352;
+ case 119: goto st167;
+ case 122: goto st173;
+ case 2058: goto tr355;
+ case 2107: goto tr356;
}
- goto tr38;
-tr713:
+ goto tr39;
+tr730:
{
s->r_ttl = s->default_ttl;
}
@@ -23337,7 +23889,7 @@ case 73:
case 80: goto st74;
case 112: goto st74;
}
- goto tr38;
+ goto tr39;
st74:
if ( ++p == pe )
goto _test_eof74;
@@ -23346,7 +23898,7 @@ case 74:
case 83: goto st75;
case 115: goto st75;
}
- goto tr38;
+ goto tr39;
st75:
if ( ++p == pe )
goto _test_eof75;
@@ -23355,7 +23907,7 @@ case 75:
case 69: goto st76;
case 101: goto st76;
}
- goto tr38;
+ goto tr39;
st76:
if ( ++p == pe )
goto _test_eof76;
@@ -23364,7 +23916,7 @@ case 76:
case 67: goto st77;
case 99: goto st77;
}
- goto tr38;
+ goto tr39;
st77:
if ( ++p == pe )
goto _test_eof77;
@@ -23373,7 +23925,7 @@ case 77:
case 75: goto st78;
case 107: goto st78;
}
- goto tr38;
+ goto tr39;
st78:
if ( ++p == pe )
goto _test_eof78;
@@ -23382,7 +23934,7 @@ case 78:
case 69: goto st79;
case 101: goto st79;
}
- goto tr38;
+ goto tr39;
st79:
if ( ++p == pe )
goto _test_eof79;
@@ -23391,7 +23943,7 @@ case 79:
case 89: goto st80;
case 121: goto st80;
}
- goto tr38;
+ goto tr39;
st80:
if ( ++p == pe )
goto _test_eof80;
@@ -23413,18 +23965,18 @@ case 80:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr359;
- case 32: goto tr359;
- case 40: goto tr360;
- case 41: goto tr361;
- case 3082: goto tr362;
- case 3131: goto tr363;
- case 3338: goto tr364;
- case 3387: goto tr364;
- case 3594: goto tr365;
- case 3643: goto tr366;
+ case 9: goto tr363;
+ case 32: goto tr363;
+ case 40: goto tr364;
+ case 41: goto tr365;
+ case 3082: goto tr366;
+ case 3131: goto tr367;
+ case 3338: goto tr368;
+ case 3387: goto tr368;
+ case 3594: goto tr369;
+ case 3643: goto tr370;
}
- goto tr61;
+ goto tr63;
tr11:
{
s->r_class = s->default_class;
@@ -23433,12 +23985,12 @@ tr11:
s->r_ttl = s->default_ttl;
}
goto st81;
-tr48:
+tr49:
{
s->r_class = s->default_class;
}
goto st81;
-tr714:
+tr731:
{
s->r_ttl = s->default_ttl;
}
@@ -23453,7 +24005,7 @@ case 81:
case 101: goto st82;
case 120: goto st84;
}
- goto tr38;
+ goto tr39;
st82:
if ( ++p == pe )
goto _test_eof82;
@@ -23462,7 +24014,7 @@ case 82:
case 89: goto st83;
case 121: goto st83;
}
- goto tr38;
+ goto tr39;
st83:
if ( ++p == pe )
goto _test_eof83;
@@ -23484,18 +24036,18 @@ case 83:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr370;
- case 32: goto tr370;
- case 40: goto tr371;
- case 41: goto tr372;
- case 3082: goto tr373;
- case 3131: goto tr374;
- case 3338: goto tr375;
- case 3387: goto tr375;
- case 3594: goto tr376;
- case 3643: goto tr377;
+ case 9: goto tr374;
+ case 32: goto tr374;
+ case 40: goto tr375;
+ case 41: goto tr376;
+ case 3082: goto tr377;
+ case 3131: goto tr378;
+ case 3338: goto tr379;
+ case 3387: goto tr379;
+ case 3594: goto tr380;
+ case 3643: goto tr381;
}
- goto tr61;
+ goto tr63;
st84:
if ( ++p == pe )
goto _test_eof84;
@@ -23517,18 +24069,18 @@ case 84:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr378;
- case 32: goto tr378;
- case 40: goto tr379;
- case 41: goto tr380;
- case 3082: goto tr381;
- case 3131: goto tr382;
- case 3338: goto tr383;
- case 3387: goto tr383;
- case 3594: goto tr384;
- case 3643: goto tr385;
+ case 9: goto tr382;
+ case 32: goto tr382;
+ case 40: goto tr383;
+ case 41: goto tr384;
+ case 3082: goto tr385;
+ case 3131: goto tr386;
+ case 3338: goto tr387;
+ case 3387: goto tr387;
+ case 3594: goto tr388;
+ case 3643: goto tr389;
}
- goto tr61;
+ goto tr63;
tr12:
{
s->r_class = s->default_class;
@@ -23537,12 +24089,12 @@ tr12:
s->r_ttl = s->default_ttl;
}
goto st85;
-tr49:
+tr50:
{
s->r_class = s->default_class;
}
goto st85;
-tr715:
+tr732:
{
s->r_ttl = s->default_ttl;
}
@@ -23559,14 +24111,14 @@ case 85:
case 111: goto st90;
case 112: goto st92;
}
- goto tr38;
+ goto tr39;
st86:
if ( ++p == pe )
goto _test_eof86;
case 86:
if ( (*p) == 50 )
goto st87;
- goto tr38;
+ goto tr39;
st87:
if ( ++p == pe )
goto _test_eof87;
@@ -23588,25 +24140,25 @@ case 87:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr391;
- case 32: goto tr391;
- case 40: goto tr392;
- case 41: goto tr393;
- case 3082: goto tr394;
- case 3131: goto tr395;
- case 3338: goto tr396;
- case 3387: goto tr396;
- case 3594: goto tr397;
- case 3643: goto tr398;
+ case 9: goto tr395;
+ case 32: goto tr395;
+ case 40: goto tr396;
+ case 41: goto tr397;
+ case 3082: goto tr398;
+ case 3131: goto tr399;
+ case 3338: goto tr400;
+ case 3387: goto tr400;
+ case 3594: goto tr401;
+ case 3643: goto tr402;
}
- goto tr61;
+ goto tr63;
st88:
if ( ++p == pe )
goto _test_eof88;
case 88:
if ( (*p) == 52 )
goto st89;
- goto tr38;
+ goto tr39;
st89:
if ( ++p == pe )
goto _test_eof89;
@@ -23628,18 +24180,18 @@ case 89:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr400;
- case 32: goto tr400;
- case 40: goto tr401;
- case 41: goto tr402;
- case 3082: goto tr403;
- case 3131: goto tr404;
- case 3338: goto tr405;
- case 3387: goto tr405;
- case 3594: goto tr406;
- case 3643: goto tr407;
+ case 9: goto tr404;
+ case 32: goto tr404;
+ case 40: goto tr405;
+ case 41: goto tr406;
+ case 3082: goto tr407;
+ case 3131: goto tr408;
+ case 3338: goto tr409;
+ case 3387: goto tr409;
+ case 3594: goto tr410;
+ case 3643: goto tr411;
}
- goto tr61;
+ goto tr63;
st90:
if ( ++p == pe )
goto _test_eof90;
@@ -23648,7 +24200,7 @@ case 90:
case 67: goto st91;
case 99: goto st91;
}
- goto tr38;
+ goto tr39;
st91:
if ( ++p == pe )
goto _test_eof91;
@@ -23670,18 +24222,18 @@ case 91:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr409;
- case 32: goto tr409;
- case 40: goto tr410;
- case 41: goto tr411;
- case 3082: goto tr412;
- case 3131: goto tr413;
- case 3338: goto tr414;
- case 3387: goto tr414;
- case 3594: goto tr415;
- case 3643: goto tr416;
+ case 9: goto tr413;
+ case 32: goto tr413;
+ case 40: goto tr414;
+ case 41: goto tr415;
+ case 3082: goto tr416;
+ case 3131: goto tr417;
+ case 3338: goto tr418;
+ case 3387: goto tr418;
+ case 3594: goto tr419;
+ case 3643: goto tr420;
}
- goto tr61;
+ goto tr63;
st92:
if ( ++p == pe )
goto _test_eof92;
@@ -23703,18 +24255,18 @@ case 92:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr417;
- case 32: goto tr417;
- case 40: goto tr418;
- case 41: goto tr419;
- case 3082: goto tr420;
- case 3131: goto tr421;
- case 3338: goto tr422;
- case 3387: goto tr422;
- case 3594: goto tr423;
- case 3643: goto tr424;
+ case 9: goto tr421;
+ case 32: goto tr421;
+ case 40: goto tr422;
+ case 41: goto tr423;
+ case 3082: goto tr424;
+ case 3131: goto tr425;
+ case 3338: goto tr426;
+ case 3387: goto tr426;
+ case 3594: goto tr427;
+ case 3643: goto tr428;
}
- goto tr61;
+ goto tr63;
tr13:
{
s->r_class = s->default_class;
@@ -23723,12 +24275,12 @@ tr13:
s->r_ttl = s->default_ttl;
}
goto st93;
-tr50:
+tr51:
{
s->r_class = s->default_class;
}
goto st93;
-tr716:
+tr733:
{
s->r_ttl = s->default_ttl;
}
@@ -23743,7 +24295,7 @@ case 93:
case 105: goto st94;
case 120: goto st98;
}
- goto tr38;
+ goto tr39;
st94:
if ( ++p == pe )
goto _test_eof94;
@@ -23752,7 +24304,7 @@ case 94:
case 78: goto st95;
case 110: goto st95;
}
- goto tr38;
+ goto tr39;
st95:
if ( ++p == pe )
goto _test_eof95;
@@ -23761,7 +24313,7 @@ case 95:
case 70: goto st96;
case 102: goto st96;
}
- goto tr38;
+ goto tr39;
st96:
if ( ++p == pe )
goto _test_eof96;
@@ -23770,7 +24322,7 @@ case 96:
case 79: goto st97;
case 111: goto st97;
}
- goto tr38;
+ goto tr39;
st97:
if ( ++p == pe )
goto _test_eof97;
@@ -23792,18 +24344,18 @@ case 97:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr430;
- case 32: goto tr430;
- case 40: goto tr431;
- case 41: goto tr432;
- case 3082: goto tr433;
- case 3131: goto tr434;
- case 3338: goto tr435;
- case 3387: goto tr435;
- case 3594: goto tr436;
- case 3643: goto tr437;
+ case 9: goto tr434;
+ case 32: goto tr434;
+ case 40: goto tr435;
+ case 41: goto tr436;
+ case 3082: goto tr437;
+ case 3131: goto tr438;
+ case 3338: goto tr439;
+ case 3387: goto tr439;
+ case 3594: goto tr440;
+ case 3643: goto tr441;
}
- goto tr61;
+ goto tr63;
st98:
if ( ++p == pe )
goto _test_eof98;
@@ -23825,18 +24377,18 @@ case 98:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr438;
- case 32: goto tr438;
- case 40: goto tr439;
- case 41: goto tr440;
- case 3082: goto tr441;
- case 3131: goto tr442;
- case 3338: goto tr443;
- case 3387: goto tr443;
- case 3594: goto tr444;
- case 3643: goto tr445;
+ case 9: goto tr442;
+ case 32: goto tr442;
+ case 40: goto tr443;
+ case 41: goto tr444;
+ case 3082: goto tr445;
+ case 3131: goto tr446;
+ case 3338: goto tr447;
+ case 3387: goto tr447;
+ case 3594: goto tr448;
+ case 3643: goto tr449;
}
- goto tr61;
+ goto tr63;
tr14:
{
s->r_class = s->default_class;
@@ -23845,12 +24397,12 @@ tr14:
s->r_ttl = s->default_ttl;
}
goto st99;
-tr51:
+tr52:
{
s->r_class = s->default_class;
}
goto st99;
-tr717:
+tr734:
{
s->r_ttl = s->default_ttl;
}
@@ -23867,7 +24419,7 @@ case 99:
case 105: goto st104;
case 115: goto st106;
}
- goto tr38;
+ goto tr39;
st100:
if ( ++p == pe )
goto _test_eof100;
@@ -23876,7 +24428,7 @@ case 100:
case 80: goto st101;
case 112: goto st101;
}
- goto tr38;
+ goto tr39;
st101:
if ( ++p == pe )
goto _test_eof101;
@@ -23885,7 +24437,7 @@ case 101:
case 84: goto st102;
case 116: goto st102;
}
- goto tr38;
+ goto tr39;
st102:
if ( ++p == pe )
goto _test_eof102;
@@ -23894,7 +24446,7 @@ case 102:
case 82: goto st103;
case 114: goto st103;
}
- goto tr38;
+ goto tr39;
st103:
if ( ++p == pe )
goto _test_eof103;
@@ -23916,18 +24468,18 @@ case 103:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr452;
- case 32: goto tr452;
- case 40: goto tr453;
- case 41: goto tr454;
- case 3082: goto tr455;
- case 3131: goto tr456;
- case 3338: goto tr457;
- case 3387: goto tr457;
- case 3594: goto tr458;
- case 3643: goto tr459;
+ case 9: goto tr456;
+ case 32: goto tr456;
+ case 40: goto tr457;
+ case 41: goto tr458;
+ case 3082: goto tr459;
+ case 3131: goto tr460;
+ case 3338: goto tr461;
+ case 3387: goto tr461;
+ case 3594: goto tr462;
+ case 3643: goto tr463;
}
- goto tr61;
+ goto tr63;
st104:
if ( ++p == pe )
goto _test_eof104;
@@ -23936,7 +24488,7 @@ case 104:
case 68: goto st105;
case 100: goto st105;
}
- goto tr38;
+ goto tr39;
st105:
if ( ++p == pe )
goto _test_eof105;
@@ -23958,18 +24510,18 @@ case 105:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr461;
- case 32: goto tr461;
- case 40: goto tr462;
- case 41: goto tr463;
- case 3082: goto tr464;
- case 3131: goto tr465;
- case 3338: goto tr466;
- case 3387: goto tr466;
- case 3594: goto tr467;
- case 3643: goto tr468;
+ case 9: goto tr465;
+ case 32: goto tr465;
+ case 40: goto tr466;
+ case 41: goto tr467;
+ case 3082: goto tr468;
+ case 3131: goto tr469;
+ case 3338: goto tr470;
+ case 3387: goto tr470;
+ case 3594: goto tr471;
+ case 3643: goto tr472;
}
- goto tr61;
+ goto tr63;
st106:
if ( ++p == pe )
goto _test_eof106;
@@ -23991,20 +24543,20 @@ case 106:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr469;
- case 32: goto tr469;
- case 40: goto tr470;
- case 41: goto tr471;
+ case 9: goto tr473;
+ case 32: goto tr473;
+ case 40: goto tr474;
+ case 41: goto tr475;
case 69: goto st107;
case 101: goto st107;
- case 3082: goto tr473;
- case 3131: goto tr474;
- case 3338: goto tr475;
- case 3387: goto tr475;
- case 3594: goto tr476;
- case 3643: goto tr477;
- }
- goto tr61;
+ case 3082: goto tr477;
+ case 3131: goto tr478;
+ case 3338: goto tr479;
+ case 3387: goto tr479;
+ case 3594: goto tr480;
+ case 3643: goto tr481;
+ }
+ goto tr63;
st107:
if ( ++p == pe )
goto _test_eof107;
@@ -24013,7 +24565,7 @@ case 107:
case 67: goto st108;
case 99: goto st108;
}
- goto tr38;
+ goto tr39;
st108:
if ( ++p == pe )
goto _test_eof108;
@@ -24035,19 +24587,19 @@ case 108:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr479;
- case 32: goto tr479;
- case 40: goto tr480;
- case 41: goto tr481;
+ case 9: goto tr483;
+ case 32: goto tr483;
+ case 40: goto tr484;
+ case 41: goto tr485;
case 51: goto st109;
- case 3082: goto tr483;
- case 3131: goto tr484;
- case 3338: goto tr485;
- case 3387: goto tr485;
- case 3594: goto tr486;
- case 3643: goto tr487;
- }
- goto tr61;
+ case 3082: goto tr487;
+ case 3131: goto tr488;
+ case 3338: goto tr489;
+ case 3387: goto tr489;
+ case 3594: goto tr490;
+ case 3643: goto tr491;
+ }
+ goto tr63;
st109:
if ( ++p == pe )
goto _test_eof109;
@@ -24069,20 +24621,20 @@ case 109:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr488;
- case 32: goto tr488;
- case 40: goto tr489;
- case 41: goto tr490;
+ case 9: goto tr492;
+ case 32: goto tr492;
+ case 40: goto tr493;
+ case 41: goto tr494;
case 80: goto st110;
case 112: goto st110;
- case 3082: goto tr492;
- case 3131: goto tr493;
- case 3338: goto tr494;
- case 3387: goto tr494;
- case 3594: goto tr495;
- case 3643: goto tr496;
- }
- goto tr61;
+ case 3082: goto tr496;
+ case 3131: goto tr497;
+ case 3338: goto tr498;
+ case 3387: goto tr498;
+ case 3594: goto tr499;
+ case 3643: goto tr500;
+ }
+ goto tr63;
st110:
if ( ++p == pe )
goto _test_eof110;
@@ -24091,7 +24643,7 @@ case 110:
case 65: goto st111;
case 97: goto st111;
}
- goto tr38;
+ goto tr39;
st111:
if ( ++p == pe )
goto _test_eof111;
@@ -24100,7 +24652,7 @@ case 111:
case 82: goto st112;
case 114: goto st112;
}
- goto tr38;
+ goto tr39;
st112:
if ( ++p == pe )
goto _test_eof112;
@@ -24109,7 +24661,7 @@ case 112:
case 65: goto st113;
case 97: goto st113;
}
- goto tr38;
+ goto tr39;
st113:
if ( ++p == pe )
goto _test_eof113;
@@ -24118,7 +24670,7 @@ case 113:
case 77: goto st114;
case 109: goto st114;
}
- goto tr38;
+ goto tr39;
st114:
if ( ++p == pe )
goto _test_eof114;
@@ -24140,18 +24692,18 @@ case 114:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr501;
- case 32: goto tr501;
- case 40: goto tr502;
- case 41: goto tr503;
- case 3082: goto tr504;
- case 3131: goto tr505;
- case 3338: goto tr506;
- case 3387: goto tr506;
- case 3594: goto tr507;
- case 3643: goto tr508;
+ case 9: goto tr505;
+ case 32: goto tr505;
+ case 40: goto tr506;
+ case 41: goto tr507;
+ case 3082: goto tr508;
+ case 3131: goto tr509;
+ case 3338: goto tr510;
+ case 3387: goto tr510;
+ case 3594: goto tr511;
+ case 3643: goto tr512;
}
- goto tr61;
+ goto tr63;
tr15:
{
s->r_class = s->default_class;
@@ -24160,12 +24712,12 @@ tr15:
s->r_ttl = s->default_ttl;
}
goto st115;
-tr52:
+tr53:
{
s->r_class = s->default_class;
}
goto st115;
-tr718:
+tr735:
{
s->r_ttl = s->default_ttl;
}
@@ -24178,7 +24730,7 @@ case 115:
case 80: goto st116;
case 112: goto st116;
}
- goto tr38;
+ goto tr39;
st116:
if ( ++p == pe )
goto _test_eof116;
@@ -24187,7 +24739,7 @@ case 116:
case 69: goto st117;
case 101: goto st117;
}
- goto tr38;
+ goto tr39;
st117:
if ( ++p == pe )
goto _test_eof117;
@@ -24196,7 +24748,7 @@ case 117:
case 78: goto st118;
case 110: goto st118;
}
- goto tr38;
+ goto tr39;
st118:
if ( ++p == pe )
goto _test_eof118;
@@ -24205,7 +24757,7 @@ case 118:
case 80: goto st119;
case 112: goto st119;
}
- goto tr38;
+ goto tr39;
st119:
if ( ++p == pe )
goto _test_eof119;
@@ -24214,7 +24766,7 @@ case 119:
case 71: goto st120;
case 103: goto st120;
}
- goto tr38;
+ goto tr39;
st120:
if ( ++p == pe )
goto _test_eof120;
@@ -24223,7 +24775,7 @@ case 120:
case 80: goto st121;
case 112: goto st121;
}
- goto tr38;
+ goto tr39;
st121:
if ( ++p == pe )
goto _test_eof121;
@@ -24232,7 +24784,7 @@ case 121:
case 75: goto st122;
case 107: goto st122;
}
- goto tr38;
+ goto tr39;
st122:
if ( ++p == pe )
goto _test_eof122;
@@ -24241,7 +24793,7 @@ case 122:
case 69: goto st123;
case 101: goto st123;
}
- goto tr38;
+ goto tr39;
st123:
if ( ++p == pe )
goto _test_eof123;
@@ -24250,7 +24802,7 @@ case 123:
case 89: goto st124;
case 121: goto st124;
}
- goto tr38;
+ goto tr39;
st124:
if ( ++p == pe )
goto _test_eof124;
@@ -24272,18 +24824,18 @@ case 124:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr518;
- case 32: goto tr518;
- case 40: goto tr519;
- case 41: goto tr520;
- case 3082: goto tr521;
- case 3131: goto tr522;
- case 3338: goto tr523;
- case 3387: goto tr523;
- case 3594: goto tr524;
- case 3643: goto tr525;
+ case 9: goto tr522;
+ case 32: goto tr522;
+ case 40: goto tr523;
+ case 41: goto tr524;
+ case 3082: goto tr525;
+ case 3131: goto tr526;
+ case 3338: goto tr527;
+ case 3387: goto tr527;
+ case 3594: goto tr528;
+ case 3643: goto tr529;
}
- goto tr61;
+ goto tr63;
tr16:
{
s->r_class = s->default_class;
@@ -24292,12 +24844,12 @@ tr16:
s->r_ttl = s->default_ttl;
}
goto st125;
-tr53:
+tr54:
{
s->r_class = s->default_class;
}
goto st125;
-tr719:
+tr736:
{
s->r_ttl = s->default_ttl;
}
@@ -24310,7 +24862,7 @@ case 125:
case 84: goto st126;
case 116: goto st126;
}
- goto tr38;
+ goto tr39;
st126:
if ( ++p == pe )
goto _test_eof126;
@@ -24319,7 +24871,7 @@ case 126:
case 82: goto st127;
case 114: goto st127;
}
- goto tr38;
+ goto tr39;
st127:
if ( ++p == pe )
goto _test_eof127;
@@ -24341,18 +24893,18 @@ case 127:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr528;
- case 32: goto tr528;
- case 40: goto tr529;
- case 41: goto tr530;
- case 3082: goto tr531;
- case 3131: goto tr532;
- case 3338: goto tr533;
- case 3387: goto tr533;
- case 3594: goto tr534;
- case 3643: goto tr535;
+ case 9: goto tr532;
+ case 32: goto tr532;
+ case 40: goto tr533;
+ case 41: goto tr534;
+ case 3082: goto tr535;
+ case 3131: goto tr536;
+ case 3338: goto tr537;
+ case 3387: goto tr537;
+ case 3594: goto tr538;
+ case 3643: goto tr539;
}
- goto tr61;
+ goto tr63;
tr17:
{
s->r_class = s->default_class;
@@ -24361,12 +24913,12 @@ tr17:
s->r_ttl = s->default_ttl;
}
goto st128;
-tr54:
+tr55:
{
s->r_class = s->default_class;
}
goto st128;
-tr720:
+tr737:
{
s->r_ttl = s->default_ttl;
}
@@ -24383,7 +24935,7 @@ case 128:
case 114: goto st130;
case 116: goto st134;
}
- goto tr38;
+ goto tr39;
st129:
if ( ++p == pe )
goto _test_eof129;
@@ -24405,18 +24957,18 @@ case 129:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr539;
- case 32: goto tr539;
- case 40: goto tr540;
- case 41: goto tr541;
- case 3082: goto tr542;
- case 3131: goto tr543;
- case 3338: goto tr544;
- case 3387: goto tr544;
- case 3594: goto tr545;
- case 3643: goto tr546;
+ case 9: goto tr543;
+ case 32: goto tr543;
+ case 40: goto tr544;
+ case 41: goto tr545;
+ case 3082: goto tr546;
+ case 3131: goto tr547;
+ case 3338: goto tr548;
+ case 3387: goto tr548;
+ case 3594: goto tr549;
+ case 3643: goto tr550;
}
- goto tr61;
+ goto tr63;
st130:
if ( ++p == pe )
goto _test_eof130;
@@ -24425,7 +24977,7 @@ case 130:
case 83: goto st131;
case 115: goto st131;
}
- goto tr38;
+ goto tr39;
st131:
if ( ++p == pe )
goto _test_eof131;
@@ -24434,7 +24986,7 @@ case 131:
case 73: goto st132;
case 105: goto st132;
}
- goto tr38;
+ goto tr39;
st132:
if ( ++p == pe )
goto _test_eof132;
@@ -24443,7 +24995,7 @@ case 132:
case 71: goto st133;
case 103: goto st133;
}
- goto tr38;
+ goto tr39;
st133:
if ( ++p == pe )
goto _test_eof133;
@@ -24465,18 +25017,18 @@ case 133:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr550;
- case 32: goto tr550;
- case 40: goto tr551;
- case 41: goto tr552;
- case 3082: goto tr553;
- case 3131: goto tr554;
- case 3338: goto tr555;
- case 3387: goto tr555;
- case 3594: goto tr556;
- case 3643: goto tr557;
+ case 9: goto tr554;
+ case 32: goto tr554;
+ case 40: goto tr555;
+ case 41: goto tr556;
+ case 3082: goto tr557;
+ case 3131: goto tr558;
+ case 3338: goto tr559;
+ case 3387: goto tr559;
+ case 3594: goto tr560;
+ case 3643: goto tr561;
}
- goto tr61;
+ goto tr63;
st134:
if ( ++p == pe )
goto _test_eof134;
@@ -24498,18 +25050,18 @@ case 134:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr558;
- case 32: goto tr558;
- case 40: goto tr559;
- case 41: goto tr560;
- case 3082: goto tr561;
- case 3131: goto tr562;
- case 3338: goto tr563;
- case 3387: goto tr563;
- case 3594: goto tr564;
- case 3643: goto tr565;
+ case 9: goto tr562;
+ case 32: goto tr562;
+ case 40: goto tr563;
+ case 41: goto tr564;
+ case 3082: goto tr565;
+ case 3131: goto tr566;
+ case 3338: goto tr567;
+ case 3387: goto tr567;
+ case 3594: goto tr568;
+ case 3643: goto tr569;
}
- goto tr61;
+ goto tr63;
tr18:
{
s->r_class = s->default_class;
@@ -24518,12 +25070,12 @@ tr18:
s->r_ttl = s->default_ttl;
}
goto st135;
-tr55:
+tr56:
{
s->r_class = s->default_class;
}
goto st135;
-tr721:
+tr738:
{
s->r_ttl = s->default_ttl;
}
@@ -24546,7 +25098,7 @@ case 135:
case 115: goto st147;
case 118: goto st151;
}
- goto tr38;
+ goto tr39;
st136:
if ( ++p == pe )
goto _test_eof136;
@@ -24555,7 +25107,7 @@ case 136:
case 73: goto st137;
case 105: goto st137;
}
- goto tr38;
+ goto tr39;
st137:
if ( ++p == pe )
goto _test_eof137;
@@ -24564,7 +25116,7 @@ case 137:
case 77: goto st138;
case 109: goto st138;
}
- goto tr38;
+ goto tr39;
st138:
if ( ++p == pe )
goto _test_eof138;
@@ -24573,7 +25125,7 @@ case 138:
case 69: goto st139;
case 101: goto st139;
}
- goto tr38;
+ goto tr39;
st139:
if ( ++p == pe )
goto _test_eof139;
@@ -24582,7 +25134,7 @@ case 139:
case 65: goto st140;
case 97: goto st140;
}
- goto tr38;
+ goto tr39;
st140:
if ( ++p == pe )
goto _test_eof140;
@@ -24604,18 +25156,18 @@ case 140:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr576;
- case 32: goto tr576;
- case 40: goto tr577;
- case 41: goto tr578;
- case 3082: goto tr579;
- case 3131: goto tr580;
- case 3338: goto tr581;
- case 3387: goto tr581;
- case 3594: goto tr582;
- case 3643: goto tr583;
+ case 9: goto tr580;
+ case 32: goto tr580;
+ case 40: goto tr581;
+ case 41: goto tr582;
+ case 3082: goto tr583;
+ case 3131: goto tr584;
+ case 3338: goto tr585;
+ case 3387: goto tr585;
+ case 3594: goto tr586;
+ case 3643: goto tr587;
}
- goto tr61;
+ goto tr63;
st141:
if ( ++p == pe )
goto _test_eof141;
@@ -24624,7 +25176,7 @@ case 141:
case 65: goto st142;
case 97: goto st142;
}
- goto tr38;
+ goto tr39;
st142:
if ( ++p == pe )
goto _test_eof142;
@@ -24646,18 +25198,18 @@ case 142:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr585;
- case 32: goto tr585;
- case 40: goto tr586;
- case 41: goto tr587;
- case 3082: goto tr588;
- case 3131: goto tr589;
- case 3338: goto tr590;
- case 3387: goto tr590;
- case 3594: goto tr591;
- case 3643: goto tr592;
+ case 9: goto tr589;
+ case 32: goto tr589;
+ case 40: goto tr590;
+ case 41: goto tr591;
+ case 3082: goto tr592;
+ case 3131: goto tr593;
+ case 3338: goto tr594;
+ case 3387: goto tr594;
+ case 3594: goto tr595;
+ case 3643: goto tr596;
}
- goto tr61;
+ goto tr63;
st143:
if ( ++p == pe )
goto _test_eof143;
@@ -24666,7 +25218,7 @@ case 143:
case 70: goto st144;
case 102: goto st144;
}
- goto tr38;
+ goto tr39;
st144:
if ( ++p == pe )
goto _test_eof144;
@@ -24688,18 +25240,18 @@ case 144:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr594;
- case 32: goto tr594;
- case 40: goto tr595;
- case 41: goto tr596;
- case 3082: goto tr597;
- case 3131: goto tr598;
- case 3338: goto tr599;
- case 3387: goto tr599;
- case 3594: goto tr600;
- case 3643: goto tr601;
+ case 9: goto tr598;
+ case 32: goto tr598;
+ case 40: goto tr599;
+ case 41: goto tr600;
+ case 3082: goto tr601;
+ case 3131: goto tr602;
+ case 3338: goto tr603;
+ case 3387: goto tr603;
+ case 3594: goto tr604;
+ case 3643: goto tr605;
}
- goto tr61;
+ goto tr63;
st145:
if ( ++p == pe )
goto _test_eof145;
@@ -24708,7 +25260,7 @@ case 145:
case 86: goto st146;
case 118: goto st146;
}
- goto tr38;
+ goto tr39;
st146:
if ( ++p == pe )
goto _test_eof146;
@@ -24730,18 +25282,18 @@ case 146:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr603;
- case 32: goto tr603;
- case 40: goto tr604;
- case 41: goto tr605;
- case 3082: goto tr606;
- case 3131: goto tr607;
- case 3338: goto tr608;
- case 3387: goto tr608;
- case 3594: goto tr609;
- case 3643: goto tr610;
+ case 9: goto tr607;
+ case 32: goto tr607;
+ case 40: goto tr608;
+ case 41: goto tr609;
+ case 3082: goto tr610;
+ case 3131: goto tr611;
+ case 3338: goto tr612;
+ case 3387: goto tr612;
+ case 3594: goto tr613;
+ case 3643: goto tr614;
}
- goto tr61;
+ goto tr63;
st147:
if ( ++p == pe )
goto _test_eof147;
@@ -24750,7 +25302,7 @@ case 147:
case 72: goto st148;
case 104: goto st148;
}
- goto tr38;
+ goto tr39;
st148:
if ( ++p == pe )
goto _test_eof148;
@@ -24759,7 +25311,7 @@ case 148:
case 70: goto st149;
case 102: goto st149;
}
- goto tr38;
+ goto tr39;
st149:
if ( ++p == pe )
goto _test_eof149;
@@ -24768,7 +25320,7 @@ case 149:
case 80: goto st150;
case 112: goto st150;
}
- goto tr38;
+ goto tr39;
st150:
if ( ++p == pe )
goto _test_eof150;
@@ -24790,18 +25342,18 @@ case 150:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr614;
- case 32: goto tr614;
- case 40: goto tr615;
- case 41: goto tr616;
- case 3082: goto tr617;
- case 3131: goto tr618;
- case 3338: goto tr619;
- case 3387: goto tr619;
- case 3594: goto tr620;
- case 3643: goto tr621;
+ case 9: goto tr618;
+ case 32: goto tr618;
+ case 40: goto tr619;
+ case 41: goto tr620;
+ case 3082: goto tr621;
+ case 3131: goto tr622;
+ case 3338: goto tr623;
+ case 3387: goto tr623;
+ case 3594: goto tr624;
+ case 3643: goto tr625;
}
- goto tr61;
+ goto tr63;
st151:
if ( ++p == pe )
goto _test_eof151;
@@ -24810,7 +25362,7 @@ case 151:
case 67: goto st152;
case 99: goto st152;
}
- goto tr38;
+ goto tr39;
st152:
if ( ++p == pe )
goto _test_eof152;
@@ -24819,7 +25371,7 @@ case 152:
case 66: goto st153;
case 98: goto st153;
}
- goto tr38;
+ goto tr39;
st153:
if ( ++p == pe )
goto _test_eof153;
@@ -24841,18 +25393,18 @@ case 153:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr624;
- case 32: goto tr624;
- case 40: goto tr625;
- case 41: goto tr626;
- case 3082: goto tr627;
- case 3131: goto tr628;
- case 3338: goto tr629;
- case 3387: goto tr629;
- case 3594: goto tr630;
- case 3643: goto tr631;
+ case 9: goto tr628;
+ case 32: goto tr628;
+ case 40: goto tr629;
+ case 41: goto tr630;
+ case 3082: goto tr631;
+ case 3131: goto tr632;
+ case 3338: goto tr633;
+ case 3387: goto tr633;
+ case 3594: goto tr634;
+ case 3643: goto tr635;
}
- goto tr61;
+ goto tr63;
tr19:
{
s->r_class = s->default_class;
@@ -24861,12 +25413,12 @@ tr19:
s->r_ttl = s->default_ttl;
}
goto st154;
-tr56:
+tr57:
{
s->r_class = s->default_class;
}
goto st154;
-tr722:
+tr739:
{
s->r_ttl = s->default_ttl;
}
@@ -24883,7 +25435,7 @@ case 154:
case 120: goto st158;
case 121: goto st160;
}
- goto tr38;
+ goto tr39;
st155:
if ( ++p == pe )
goto _test_eof155;
@@ -24892,7 +25444,7 @@ case 155:
case 83: goto st156;
case 115: goto st156;
}
- goto tr38;
+ goto tr39;
st156:
if ( ++p == pe )
goto _test_eof156;
@@ -24901,7 +25453,7 @@ case 156:
case 65: goto st157;
case 97: goto st157;
}
- goto tr38;
+ goto tr39;
st157:
if ( ++p == pe )
goto _test_eof157;
@@ -24923,18 +25475,18 @@ case 157:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr637;
- case 32: goto tr637;
- case 40: goto tr638;
- case 41: goto tr639;
- case 3082: goto tr640;
- case 3131: goto tr641;
- case 3338: goto tr642;
- case 3387: goto tr642;
- case 3594: goto tr643;
- case 3643: goto tr644;
+ case 9: goto tr641;
+ case 32: goto tr641;
+ case 40: goto tr642;
+ case 41: goto tr643;
+ case 3082: goto tr644;
+ case 3131: goto tr645;
+ case 3338: goto tr646;
+ case 3387: goto tr646;
+ case 3594: goto tr647;
+ case 3643: goto tr648;
}
- goto tr61;
+ goto tr63;
st158:
if ( ++p == pe )
goto _test_eof158;
@@ -24943,7 +25495,7 @@ case 158:
case 84: goto st159;
case 116: goto st159;
}
- goto tr38;
+ goto tr39;
st159:
if ( ++p == pe )
goto _test_eof159;
@@ -24965,18 +25517,18 @@ case 159:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr646;
- case 32: goto tr646;
- case 40: goto tr647;
- case 41: goto tr648;
- case 3082: goto tr649;
- case 3131: goto tr650;
- case 3338: goto tr651;
- case 3387: goto tr651;
- case 3594: goto tr652;
- case 3643: goto tr653;
+ case 9: goto tr650;
+ case 32: goto tr650;
+ case 40: goto tr651;
+ case 41: goto tr652;
+ case 3082: goto tr653;
+ case 3131: goto tr654;
+ case 3338: goto tr655;
+ case 3387: goto tr655;
+ case 3594: goto tr656;
+ case 3643: goto tr657;
}
- goto tr61;
+ goto tr63;
st160:
if ( ++p == pe )
goto _test_eof160;
@@ -24985,7 +25537,7 @@ case 160:
case 80: goto st161;
case 112: goto st161;
}
- goto tr38;
+ goto tr39;
st161:
if ( ++p == pe )
goto _test_eof161;
@@ -24994,15 +25546,15 @@ case 161:
case 69: goto st162;
case 101: goto st162;
}
- goto tr38;
+ goto tr39;
st162:
if ( ++p == pe )
goto _test_eof162;
case 162:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr657;
- goto tr656;
-tr657:
+ goto tr661;
+ goto tr660;
+tr661:
{
s->number64 = 0;
}
@@ -25017,11 +25569,11 @@ tr657:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
goto st163;
-tr662:
+tr666:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -25033,7 +25585,7 @@ tr662:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
goto st163;
@@ -25058,20 +25610,20 @@ case 163:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr659;
- case 32: goto tr659;
- case 40: goto tr660;
- case 41: goto tr661;
- case 3082: goto tr663;
- case 3131: goto tr664;
- case 3338: goto tr665;
- case 3387: goto tr665;
- case 3594: goto tr666;
- case 3643: goto tr667;
+ case 9: goto tr663;
+ case 32: goto tr663;
+ case 40: goto tr664;
+ case 41: goto tr665;
+ case 3082: goto tr667;
+ case 3131: goto tr668;
+ case 3338: goto tr669;
+ case 3387: goto tr669;
+ case 3594: goto tr670;
+ case 3643: goto tr671;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr662;
- goto tr658;
+ goto tr666;
+ goto tr662;
tr20:
{
s->r_class = s->default_class;
@@ -25080,12 +25632,12 @@ tr20:
s->r_ttl = s->default_ttl;
}
goto st164;
-tr57:
+tr58:
{
s->r_class = s->default_class;
}
goto st164;
-tr723:
+tr740:
{
s->r_ttl = s->default_ttl;
}
@@ -25098,7 +25650,7 @@ case 164:
case 82: goto st165;
case 114: goto st165;
}
- goto tr38;
+ goto tr39;
st165:
if ( ++p == pe )
goto _test_eof165;
@@ -25107,7 +25659,7 @@ case 165:
case 73: goto st166;
case 105: goto st166;
}
- goto tr38;
+ goto tr39;
st166:
if ( ++p == pe )
goto _test_eof166;
@@ -25129,18 +25681,18 @@ case 166:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr670;
- case 32: goto tr670;
- case 40: goto tr671;
- case 41: goto tr672;
- case 3082: goto tr673;
- case 3131: goto tr674;
- case 3338: goto tr675;
- case 3387: goto tr675;
- case 3594: goto tr676;
- case 3643: goto tr677;
+ case 9: goto tr674;
+ case 32: goto tr674;
+ case 40: goto tr675;
+ case 41: goto tr676;
+ case 3082: goto tr677;
+ case 3131: goto tr678;
+ case 3338: goto tr679;
+ case 3387: goto tr679;
+ case 3594: goto tr680;
+ case 3643: goto tr681;
}
- goto tr61;
+ goto tr63;
tr21:
{
s->r_class = s->default_class;
@@ -25149,12 +25701,12 @@ tr21:
s->r_ttl = s->default_ttl;
}
goto st167;
-tr58:
+tr59:
{
s->r_class = s->default_class;
}
goto st167;
-tr724:
+tr741:
{
s->r_ttl = s->default_ttl;
}
@@ -25164,46 +25716,46 @@ st167:
goto _test_eof167;
case 167:
switch( (*p) ) {
- case 79: goto st168;
- case 111: goto st168;
+ case 65: goto st168;
+ case 97: goto st168;
}
- goto tr38;
+ goto tr39;
st168:
if ( ++p == pe )
goto _test_eof168;
case 168:
switch( (*p) ) {
- case 78: goto st169;
- case 110: goto st169;
+ case 76: goto st169;
+ case 108: goto st169;
}
- goto tr38;
+ goto tr39;
st169:
if ( ++p == pe )
goto _test_eof169;
case 169:
switch( (*p) ) {
- case 69: goto st170;
- case 101: goto st170;
+ case 76: goto st170;
+ case 108: goto st170;
}
- goto tr38;
+ goto tr39;
st170:
if ( ++p == pe )
goto _test_eof170;
case 170:
switch( (*p) ) {
- case 77: goto st171;
- case 109: goto st171;
+ case 69: goto st171;
+ case 101: goto st171;
}
- goto tr38;
+ goto tr39;
st171:
if ( ++p == pe )
goto _test_eof171;
case 171:
switch( (*p) ) {
- case 68: goto st172;
- case 100: goto st172;
+ case 84: goto st172;
+ case 116: goto st172;
}
- goto tr38;
+ goto tr39;
st172:
if ( ++p == pe )
goto _test_eof172;
@@ -25225,58 +25777,154 @@ case 172:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr683;
- case 32: goto tr683;
- case 40: goto tr684;
- case 41: goto tr685;
- case 3082: goto tr686;
- case 3131: goto tr687;
- case 3338: goto tr688;
- case 3387: goto tr688;
- case 3594: goto tr689;
- case 3643: goto tr690;
+ case 9: goto tr687;
+ case 32: goto tr687;
+ case 40: goto tr688;
+ case 41: goto tr689;
+ case 3082: goto tr690;
+ case 3131: goto tr691;
+ case 3338: goto tr692;
+ case 3387: goto tr692;
+ case 3594: goto tr693;
+ case 3643: goto tr694;
}
- goto tr61;
-tr352:
+ goto tr63;
+tr22:
{
- s->buffer_length = 0;
+ s->r_class = s->default_class;
+ }
+ {
+ s->r_ttl = s->default_ttl;
}
goto st173;
-tr737:
+tr60:
+ {
+ s->r_class = s->default_class;
+ }
+ goto st173;
+tr742:
+ {
+ s->r_ttl = s->default_ttl;
+ }
+ goto st173;
+st173:
+ if ( ++p == pe )
+ goto _test_eof173;
+case 173:
+ switch( (*p) ) {
+ case 79: goto st174;
+ case 111: goto st174;
+ }
+ goto tr39;
+st174:
+ if ( ++p == pe )
+ goto _test_eof174;
+case 174:
+ switch( (*p) ) {
+ case 78: goto st175;
+ case 110: goto st175;
+ }
+ goto tr39;
+st175:
+ if ( ++p == pe )
+ goto _test_eof175;
+case 175:
+ switch( (*p) ) {
+ case 69: goto st176;
+ case 101: goto st176;
+ }
+ goto tr39;
+st176:
+ if ( ++p == pe )
+ goto _test_eof176;
+case 176:
+ switch( (*p) ) {
+ case 77: goto st177;
+ case 109: goto st177;
+ }
+ goto tr39;
+st177:
+ if ( ++p == pe )
+ goto _test_eof177;
+case 177:
+ switch( (*p) ) {
+ case 68: goto st178;
+ case 100: goto st178;
+ }
+ goto tr39;
+st178:
+ if ( ++p == pe )
+ goto _test_eof178;
+case 178:
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ switch( _widec ) {
+ case 9: goto tr700;
+ case 32: goto tr700;
+ case 40: goto tr701;
+ case 41: goto tr702;
+ case 3082: goto tr703;
+ case 3131: goto tr704;
+ case 3338: goto tr705;
+ case 3387: goto tr705;
+ case 3594: goto tr706;
+ case 3643: goto tr707;
+ }
+ goto tr63;
+tr356:
+ {
+ s->buffer_length = 0;
+ }
+ goto st179;
+tr755:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st173;
-tr691:
+ goto st179;
+tr708:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st173;
-tr330:
+ goto st179;
+tr333:
{
s->r_class = KNOT_CLASS_IN;
}
{
s->buffer_length = 0;
}
- goto st173;
-tr750:
+ goto st179;
+tr768:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -25284,17 +25932,17 @@ tr750:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st173;
-st173:
+ goto st179;
+st179:
if ( ++p == pe )
- goto _test_eof173;
-case 173:
+ goto _test_eof179;
+case 179:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -25314,11 +25962,11 @@ case 173:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr692;
+ goto tr709;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr691;
- goto tr38;
-tr1002:
+ goto tr708;
+ goto tr39;
+tr1020:
{
s->buffer[s->buffer_length++] = 0;
@@ -25328,7 +25976,7 @@ tr1002:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1398; goto _out;}
+ {p++; cs = 1446; goto _out;}
}
}
}
@@ -25338,7 +25986,7 @@ tr1002:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -25351,22 +25999,22 @@ tr1002:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1398; goto _out;}
+ {p++; cs = 1446; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1398; goto _out;}
+ p--; {p++; cs = 1446; goto _out;}
}
}
- goto st1398;
-tr149:
+ goto st1446;
+tr152:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -25379,7 +26027,7 @@ tr149:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -25392,23 +26040,23 @@ tr149:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1398; goto _out;}
+ {p++; cs = 1446; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1398; goto _out;}
+ p--; {p++; cs = 1446; goto _out;}
}
}
- goto st1398;
-tr155:
+ goto st1446;
+tr158:
{
s->line_counter++;
}
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -25421,19 +26069,19 @@ tr155:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1398; goto _out;}
+ {p++; cs = 1446; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1398; goto _out;}
+ p--; {p++; cs = 1446; goto _out;}
}
}
- goto st1398;
-st1398:
+ goto st1446;
+st1446:
if ( ++p == pe )
- goto _test_eof1398;
-case 1398:
+ goto _test_eof1446;
+case 1446:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -25447,134 +26095,136 @@ case 1398:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4228;
- case 32: goto tr4228;
- case 36: goto st184;
- case 40: goto tr4229;
- case 41: goto tr4230;
- case 42: goto tr4210;
- case 65: goto tr4231;
- case 67: goto tr4232;
- case 68: goto tr4233;
- case 69: goto tr4234;
- case 72: goto tr4235;
- case 73: goto tr4236;
- case 75: goto tr4237;
- case 76: goto tr4238;
- case 77: goto tr4239;
- case 78: goto tr4240;
- case 79: goto tr4241;
- case 80: goto tr4242;
- case 82: goto tr4243;
- case 83: goto tr4244;
- case 84: goto tr4245;
- case 85: goto tr4246;
- case 90: goto tr4247;
- case 92: goto tr4210;
- case 95: goto tr4210;
- case 97: goto tr4231;
- case 99: goto tr4232;
- case 100: goto tr4233;
- case 101: goto tr4234;
- case 104: goto tr4235;
- case 105: goto tr4236;
- case 107: goto tr4237;
- case 108: goto tr4238;
- case 109: goto tr4239;
- case 110: goto tr4240;
- case 111: goto tr4241;
- case 112: goto tr4242;
- case 114: goto tr4243;
- case 115: goto tr4244;
- case 116: goto tr4245;
- case 117: goto tr4246;
- case 122: goto tr4247;
- case 1802: goto tr4211;
- case 1851: goto tr4212;
- case 2058: goto tr4248;
- case 2107: goto tr4249;
+ case 9: goto tr4308;
+ case 32: goto tr4308;
+ case 36: goto st190;
+ case 40: goto tr4309;
+ case 41: goto tr4310;
+ case 42: goto tr4290;
+ case 65: goto tr4311;
+ case 67: goto tr4312;
+ case 68: goto tr4313;
+ case 69: goto tr4314;
+ case 72: goto tr4315;
+ case 73: goto tr4316;
+ case 75: goto tr4317;
+ case 76: goto tr4318;
+ case 77: goto tr4319;
+ case 78: goto tr4320;
+ case 79: goto tr4321;
+ case 80: goto tr4322;
+ case 82: goto tr4323;
+ case 83: goto tr4324;
+ case 84: goto tr4325;
+ case 85: goto tr4326;
+ case 87: goto tr4327;
+ case 90: goto tr4328;
+ case 92: goto tr4290;
+ case 95: goto tr4290;
+ case 97: goto tr4311;
+ case 99: goto tr4312;
+ case 100: goto tr4313;
+ case 101: goto tr4314;
+ case 104: goto tr4315;
+ case 105: goto tr4316;
+ case 107: goto tr4317;
+ case 108: goto tr4318;
+ case 109: goto tr4319;
+ case 110: goto tr4320;
+ case 111: goto tr4321;
+ case 112: goto tr4322;
+ case 114: goto tr4323;
+ case 115: goto tr4324;
+ case 116: goto tr4325;
+ case 117: goto tr4326;
+ case 119: goto tr4327;
+ case 122: goto tr4328;
+ case 1802: goto tr4291;
+ case 1851: goto tr4292;
+ case 2058: goto tr4329;
+ case 2107: goto tr4330;
}
if ( _widec < 64 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr4210;
+ goto tr4290;
} else if ( _widec > 89 ) {
if ( 98 <= _widec && _widec <= 121 )
- goto tr4210;
+ goto tr4290;
} else
- goto tr4210;
- goto tr4227;
-tr694:
+ goto tr4290;
+ goto tr4307;
+tr711:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st174;
-tr695:
+ goto st180;
+tr712:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st174;
-tr4228:
+ goto st180;
+tr4308:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st174;
-tr4229:
+ goto st180;
+tr4309:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st174;
-tr4230:
+ goto st180;
+tr4310:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st174;
-st174:
+ goto st180;
+st180:
if ( ++p == pe )
- goto _test_eof174;
-case 174:
+ goto _test_eof180;
+case 180:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -25588,10 +26238,10 @@ case 174:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st174;
- case 32: goto st174;
- case 40: goto tr694;
- case 41: goto tr695;
+ case 9: goto st180;
+ case 32: goto st180;
+ case 40: goto tr711;
+ case 41: goto tr712;
case 65: goto tr5;
case 67: goto tr6;
case 68: goto tr7;
@@ -25608,7 +26258,8 @@ case 174:
case 83: goto tr18;
case 84: goto tr19;
case 85: goto tr20;
- case 90: goto tr21;
+ case 87: goto tr21;
+ case 90: goto tr22;
case 97: goto tr5;
case 99: goto tr6;
case 100: goto tr7;
@@ -25625,11 +26276,12 @@ case 174:
case 115: goto tr18;
case 116: goto tr19;
case 117: goto tr20;
- case 122: goto tr21;
- case 1802: goto tr22;
- case 1851: goto tr23;
- case 2058: goto tr696;
- case 2107: goto tr697;
+ case 119: goto tr21;
+ case 122: goto tr22;
+ case 1802: goto tr23;
+ case 1851: goto tr24;
+ case 2058: goto tr713;
+ case 2107: goto tr714;
}
if ( 48 <= _widec && _widec <= 57 )
goto tr4;
@@ -25641,22 +26293,22 @@ tr10:
{
s->r_ttl = s->default_ttl;
}
- goto st175;
-st175:
+ goto st181;
+st181:
if ( ++p == pe )
- goto _test_eof175;
-case 175:
+ goto _test_eof181;
+case 181:
switch( (*p) ) {
- case 78: goto st176;
+ case 78: goto st182;
case 80: goto st74;
- case 110: goto st176;
+ case 110: goto st182;
case 112: goto st74;
}
- goto tr38;
-st176:
+ goto tr39;
+st182:
if ( ++p == pe )
- goto _test_eof176;
-case 176:
+ goto _test_eof182;
+case 182:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -25670,38 +26322,38 @@ case 176:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr699;
- case 32: goto tr699;
- case 40: goto tr700;
- case 41: goto tr701;
- case 2058: goto tr702;
- case 2107: goto tr703;
+ case 9: goto tr716;
+ case 32: goto tr716;
+ case 40: goto tr717;
+ case 41: goto tr718;
+ case 2058: goto tr719;
+ case 2107: goto tr720;
}
- goto tr38;
-tr705:
+ goto tr39;
+tr722:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st177;
-tr706:
+ goto st183;
+tr723:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st177;
-tr725:
+ goto st183;
+tr743:
{
s->line_counter++;
}
- goto st177;
-tr752:
+ goto st183;
+tr770:
{
s->buffer[s->buffer_length++] = 0;
@@ -25711,55 +26363,55 @@ tr752:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 177; goto _out;}
+ {p++; cs = 183; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st177;
-tr699:
+ goto st183;
+tr716:
{
s->r_class = KNOT_CLASS_IN;
}
- goto st177;
-tr700:
+ goto st183;
+tr717:
{
s->r_class = KNOT_CLASS_IN;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st177;
-tr701:
+ goto st183;
+tr718:
{
s->r_class = KNOT_CLASS_IN;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st177;
-tr702:
+ goto st183;
+tr719:
{
s->r_class = KNOT_CLASS_IN;
}
{
s->line_counter++;
}
- goto st177;
-st177:
+ goto st183;
+st183:
if ( ++p == pe )
- goto _test_eof177;
-case 177:
+ goto _test_eof183;
+case 183:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -25773,51 +26425,53 @@ case 177:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st177;
- case 32: goto st177;
- case 40: goto tr705;
- case 41: goto tr706;
- case 65: goto tr708;
- case 67: goto tr709;
- case 68: goto tr710;
- case 69: goto tr711;
- case 72: goto tr712;
- case 73: goto tr713;
- case 75: goto tr714;
- case 76: goto tr715;
- case 77: goto tr716;
- case 78: goto tr717;
- case 79: goto tr718;
- case 80: goto tr719;
- case 82: goto tr720;
- case 83: goto tr721;
- case 84: goto tr722;
- case 85: goto tr723;
- case 90: goto tr724;
- case 97: goto tr708;
- case 99: goto tr709;
- case 100: goto tr710;
- case 101: goto tr711;
- case 104: goto tr712;
- case 105: goto tr713;
- case 107: goto tr714;
- case 108: goto tr715;
- case 109: goto tr716;
- case 110: goto tr717;
- case 111: goto tr718;
- case 112: goto tr719;
- case 114: goto tr720;
- case 115: goto tr721;
- case 116: goto tr722;
- case 117: goto tr723;
- case 122: goto tr724;
- case 2058: goto tr725;
- case 2107: goto tr726;
+ case 9: goto st183;
+ case 32: goto st183;
+ case 40: goto tr722;
+ case 41: goto tr723;
+ case 65: goto tr725;
+ case 67: goto tr726;
+ case 68: goto tr727;
+ case 69: goto tr728;
+ case 72: goto tr729;
+ case 73: goto tr730;
+ case 75: goto tr731;
+ case 76: goto tr732;
+ case 77: goto tr733;
+ case 78: goto tr734;
+ case 79: goto tr735;
+ case 80: goto tr736;
+ case 82: goto tr737;
+ case 83: goto tr738;
+ case 84: goto tr739;
+ case 85: goto tr740;
+ case 87: goto tr741;
+ case 90: goto tr742;
+ case 97: goto tr725;
+ case 99: goto tr726;
+ case 100: goto tr727;
+ case 101: goto tr728;
+ case 104: goto tr729;
+ case 105: goto tr730;
+ case 107: goto tr731;
+ case 108: goto tr732;
+ case 109: goto tr733;
+ case 110: goto tr734;
+ case 111: goto tr735;
+ case 112: goto tr736;
+ case 114: goto tr737;
+ case 115: goto tr738;
+ case 116: goto tr739;
+ case 117: goto tr740;
+ case 119: goto tr741;
+ case 122: goto tr742;
+ case 2058: goto tr743;
+ case 2107: goto tr744;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr707;
- goto tr656;
-tr707:
+ goto tr724;
+ goto tr660;
+tr724:
{
s->number64 = 0;
}
@@ -25832,11 +26486,11 @@ tr707:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st178;
-tr730:
+ goto st184;
+tr748:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -25848,14 +26502,14 @@ tr730:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st178;
-st178:
+ goto st184;
+st184:
if ( ++p == pe )
- goto _test_eof178;
-case 178:
+ goto _test_eof184;
+case 184:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -25869,66 +26523,66 @@ case 178:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr727;
- case 32: goto tr727;
- case 40: goto tr728;
- case 41: goto tr729;
- case 68: goto tr731;
- case 72: goto tr732;
- case 77: goto tr733;
- case 83: goto st179;
- case 87: goto tr735;
- case 100: goto tr731;
- case 104: goto tr732;
- case 109: goto tr733;
- case 115: goto st179;
- case 119: goto tr735;
- case 2058: goto tr736;
- case 2107: goto tr737;
+ case 9: goto tr745;
+ case 32: goto tr745;
+ case 40: goto tr746;
+ case 41: goto tr747;
+ case 68: goto tr749;
+ case 72: goto tr750;
+ case 77: goto tr751;
+ case 83: goto st185;
+ case 87: goto tr753;
+ case 100: goto tr749;
+ case 104: goto tr750;
+ case 109: goto tr751;
+ case 115: goto st185;
+ case 119: goto tr753;
+ case 2058: goto tr754;
+ case 2107: goto tr755;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr730;
- goto tr26;
-tr731:
+ goto tr748;
+ goto tr27;
+tr749:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st179;
-tr732:
+ goto st185;
+tr750:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st179;
-tr733:
+ goto st185;
+tr751:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st179;
-tr735:
+ goto st185;
+tr753:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st179;
-st179:
+ goto st185;
+st185:
if ( ++p == pe )
- goto _test_eof179;
-case 179:
+ goto _test_eof185;
+case 185:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -25942,17 +26596,17 @@ case 179:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr727;
- case 32: goto tr727;
- case 40: goto tr728;
- case 41: goto tr729;
- case 2058: goto tr736;
- case 2107: goto tr737;
+ case 9: goto tr745;
+ case 32: goto tr745;
+ case 40: goto tr746;
+ case 41: goto tr747;
+ case 2058: goto tr754;
+ case 2107: goto tr755;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr738;
- goto tr26;
-tr739:
+ goto tr756;
+ goto tr27;
+tr757:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -25964,11 +26618,11 @@ tr739:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st180;
-tr738:
+ goto st186;
+tr756:
{
s->number64_tmp = s->number64;
}
@@ -25986,17 +26640,17 @@ tr738:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st180;
-tr748:
+ goto st186;
+tr766:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -26016,69 +26670,69 @@ tr748:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st180;
-st180:
+ goto st186;
+st186:
if ( ++p == pe )
- goto _test_eof180;
-case 180:
+ goto _test_eof186;
+case 186:
switch( (*p) ) {
- case 68: goto tr740;
- case 72: goto tr741;
- case 77: goto tr742;
- case 83: goto st181;
- case 87: goto tr744;
- case 100: goto tr740;
- case 104: goto tr741;
- case 109: goto tr742;
- case 115: goto st181;
- case 119: goto tr744;
+ case 68: goto tr758;
+ case 72: goto tr759;
+ case 77: goto tr760;
+ case 83: goto st187;
+ case 87: goto tr762;
+ case 100: goto tr758;
+ case 104: goto tr759;
+ case 109: goto tr760;
+ case 115: goto st187;
+ case 119: goto tr762;
}
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr739;
- goto tr26;
-tr740:
+ goto tr757;
+ goto tr27;
+tr758:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st181;
-tr741:
+ goto st187;
+tr759:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st181;
-tr742:
+ goto st187;
+tr760:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st181;
-tr744:
+ goto st187;
+tr762:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st181;
-st181:
+ goto st187;
+st187:
if ( ++p == pe )
- goto _test_eof181;
-case 181:
+ goto _test_eof187;
+case 187:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -26092,40 +26746,40 @@ case 181:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr745;
- case 32: goto tr745;
- case 40: goto tr746;
- case 41: goto tr747;
- case 2058: goto tr749;
- case 2107: goto tr750;
+ case 9: goto tr763;
+ case 32: goto tr763;
+ case 40: goto tr764;
+ case 41: goto tr765;
+ case 2058: goto tr767;
+ case 2107: goto tr768;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr748;
- goto tr26;
-tr726:
+ goto tr766;
+ goto tr27;
+tr744:
{
s->buffer_length = 0;
}
- goto st182;
-tr751:
+ goto st188;
+tr769:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st182;
-tr703:
+ goto st188;
+tr720:
{
s->r_class = KNOT_CLASS_IN;
}
{
s->buffer_length = 0;
}
- goto st182;
-st182:
+ goto st188;
+st188:
if ( ++p == pe )
- goto _test_eof182;
-case 182:
+ goto _test_eof188;
+case 188:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -26145,16 +26799,16 @@ case 182:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr752;
+ goto tr770;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr751;
- goto tr38;
-tr23:
+ goto tr769;
+ goto tr39;
+tr24:
{
s->buffer_length = 0;
}
- goto st183;
-tr4212:
+ goto st189;
+tr4292:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -26162,15 +26816,15 @@ tr4212:
{
s->buffer_length = 0;
}
- goto st183;
-tr753:
+ goto st189;
+tr771:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st183;
-tr4276:
+ goto st189;
+tr4358:
{
NOERR;
}
@@ -26181,20 +26835,20 @@ tr4276:
{
s->buffer_length = 0;
}
- goto st183;
-st183:
+ goto st189;
+st189:
if ( ++p == pe )
- goto _test_eof183;
-case 183:
+ goto _test_eof189;
+case 189:
if ( (*p) == 10 )
- goto tr754;
- goto tr753;
-tr696:
+ goto tr772;
+ goto tr771;
+tr713:
{
s->line_counter++;
}
- goto st1399;
-tr1000:
+ goto st1447;
+tr1018:
{
s->buffer[s->buffer_length++] = 0;
@@ -26204,15 +26858,15 @@ tr1000:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1399; goto _out;}
+ {p++; cs = 1447; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1399;
-tr889:
+ goto st1447;
+tr907:
{
s->buffer[s->buffer_length++] = 0;
@@ -26222,7 +26876,7 @@ tr889:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1399; goto _out;}
+ {p++; cs = 1447; goto _out;}
}
}
}
@@ -26232,7 +26886,7 @@ tr889:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -26245,23 +26899,23 @@ tr889:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1399; goto _out;}
+ {p++; cs = 1447; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1399; goto _out;}
+ p--; {p++; cs = 1447; goto _out;}
}
}
- goto st1399;
-tr886:
+ goto st1447;
+tr904:
{
s->line_counter++;
}
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -26274,16 +26928,16 @@ tr886:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1399; goto _out;}
+ {p++; cs = 1447; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1399; goto _out;}
+ p--; {p++; cs = 1447; goto _out;}
}
}
- goto st1399;
-tr881:
+ goto st1447;
+tr899:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -26295,7 +26949,7 @@ tr881:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -26305,7 +26959,7 @@ tr881:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -26318,34 +26972,34 @@ tr881:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1399; goto _out;}
+ {p++; cs = 1447; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1399; goto _out;}
+ p--; {p++; cs = 1447; goto _out;}
}
}
- goto st1399;
-tr4248:
+ goto st1447;
+tr4329:
{
s->line_counter++;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st1399;
-st1399:
+ goto st1447;
+st1447:
if ( ++p == pe )
- goto _test_eof1399;
-case 1399:
+ goto _test_eof1447;
+case 1447:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -26359,169 +27013,171 @@ case 1399:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4228;
- case 32: goto tr4228;
- case 36: goto st184;
- case 40: goto tr4229;
- case 41: goto tr4230;
- case 42: goto tr4210;
- case 65: goto tr4252;
- case 67: goto tr4253;
- case 68: goto tr4254;
- case 69: goto tr4255;
- case 72: goto tr4256;
- case 73: goto tr4257;
- case 75: goto tr4258;
- case 76: goto tr4259;
- case 77: goto tr4260;
- case 78: goto tr4261;
- case 79: goto tr4262;
- case 80: goto tr4263;
- case 82: goto tr4264;
- case 83: goto tr4265;
- case 84: goto tr4266;
- case 85: goto tr4267;
- case 90: goto tr4268;
- case 92: goto tr4210;
- case 95: goto tr4210;
- case 97: goto tr4252;
- case 99: goto tr4253;
- case 100: goto tr4254;
- case 101: goto tr4255;
- case 104: goto tr4256;
- case 105: goto tr4257;
- case 107: goto tr4258;
- case 108: goto tr4259;
- case 109: goto tr4260;
- case 110: goto tr4261;
- case 111: goto tr4262;
- case 112: goto tr4263;
- case 114: goto tr4264;
- case 115: goto tr4265;
- case 116: goto tr4266;
- case 117: goto tr4267;
- case 122: goto tr4268;
- case 1802: goto tr4211;
- case 1851: goto tr4212;
- case 2058: goto tr4248;
- case 2107: goto tr4249;
+ case 9: goto tr4308;
+ case 32: goto tr4308;
+ case 36: goto st190;
+ case 40: goto tr4309;
+ case 41: goto tr4310;
+ case 42: goto tr4290;
+ case 65: goto tr4333;
+ case 67: goto tr4334;
+ case 68: goto tr4335;
+ case 69: goto tr4336;
+ case 72: goto tr4337;
+ case 73: goto tr4338;
+ case 75: goto tr4339;
+ case 76: goto tr4340;
+ case 77: goto tr4341;
+ case 78: goto tr4342;
+ case 79: goto tr4343;
+ case 80: goto tr4344;
+ case 82: goto tr4345;
+ case 83: goto tr4346;
+ case 84: goto tr4347;
+ case 85: goto tr4348;
+ case 87: goto tr4349;
+ case 90: goto tr4350;
+ case 92: goto tr4290;
+ case 95: goto tr4290;
+ case 97: goto tr4333;
+ case 99: goto tr4334;
+ case 100: goto tr4335;
+ case 101: goto tr4336;
+ case 104: goto tr4337;
+ case 105: goto tr4338;
+ case 107: goto tr4339;
+ case 108: goto tr4340;
+ case 109: goto tr4341;
+ case 110: goto tr4342;
+ case 111: goto tr4343;
+ case 112: goto tr4344;
+ case 114: goto tr4345;
+ case 115: goto tr4346;
+ case 116: goto tr4347;
+ case 117: goto tr4348;
+ case 119: goto tr4349;
+ case 122: goto tr4350;
+ case 1802: goto tr4291;
+ case 1851: goto tr4292;
+ case 2058: goto tr4329;
+ case 2107: goto tr4330;
}
if ( _widec < 48 ) {
if ( 45 <= _widec && _widec <= 47 )
- goto tr4210;
+ goto tr4290;
} else if ( _widec > 57 ) {
if ( _widec > 89 ) {
if ( 98 <= _widec && _widec <= 121 )
- goto tr4210;
+ goto tr4290;
} else if ( _widec >= 64 )
- goto tr4210;
+ goto tr4290;
} else
- goto tr4251;
- goto tr4250;
-tr4271:
+ goto tr4332;
+ goto tr4331;
+tr4353:
{
NOERR;
}
- goto st184;
-st184:
+ goto st190;
+st190:
if ( ++p == pe )
- goto _test_eof184;
-case 184:
+ goto _test_eof190;
+case 190:
switch( (*p) ) {
- case 73: goto tr756;
- case 79: goto tr757;
- case 84: goto tr758;
- case 105: goto tr756;
- case 111: goto tr757;
- case 116: goto tr758;
+ case 73: goto tr774;
+ case 79: goto tr775;
+ case 84: goto tr776;
+ case 105: goto tr774;
+ case 111: goto tr775;
+ case 116: goto tr776;
}
- goto tr755;
-tr756:
+ goto tr773;
+tr774:
{
ERR(ZS_OK);
}
- goto st185;
-st185:
+ goto st191;
+st191:
if ( ++p == pe )
- goto _test_eof185;
-case 185:
+ goto _test_eof191;
+case 191:
switch( (*p) ) {
- case 78: goto st186;
- case 110: goto st186;
+ case 78: goto st192;
+ case 110: goto st192;
}
- goto tr755;
-st186:
+ goto tr773;
+st192:
if ( ++p == pe )
- goto _test_eof186;
-case 186:
+ goto _test_eof192;
+case 192:
switch( (*p) ) {
- case 67: goto st187;
- case 99: goto st187;
+ case 67: goto st193;
+ case 99: goto st193;
}
- goto tr755;
-st187:
+ goto tr773;
+st193:
if ( ++p == pe )
- goto _test_eof187;
-case 187:
+ goto _test_eof193;
+case 193:
switch( (*p) ) {
- case 76: goto st188;
- case 108: goto st188;
+ case 76: goto st194;
+ case 108: goto st194;
}
- goto tr755;
-st188:
+ goto tr773;
+st194:
if ( ++p == pe )
- goto _test_eof188;
-case 188:
+ goto _test_eof194;
+case 194:
switch( (*p) ) {
- case 85: goto st189;
- case 117: goto st189;
+ case 85: goto st195;
+ case 117: goto st195;
}
- goto tr755;
-st189:
+ goto tr773;
+st195:
if ( ++p == pe )
- goto _test_eof189;
-case 189:
+ goto _test_eof195;
+case 195:
switch( (*p) ) {
- case 68: goto st190;
- case 100: goto st190;
+ case 68: goto st196;
+ case 100: goto st196;
}
- goto tr755;
-st190:
+ goto tr773;
+st196:
if ( ++p == pe )
- goto _test_eof190;
-case 190:
+ goto _test_eof196;
+case 196:
switch( (*p) ) {
- case 69: goto st191;
- case 101: goto st191;
+ case 69: goto st197;
+ case 101: goto st197;
}
- goto tr755;
-st191:
+ goto tr773;
+st197:
if ( ++p == pe )
- goto _test_eof191;
-case 191:
+ goto _test_eof197;
+case 197:
switch( (*p) ) {
- case 32: goto tr765;
- case 59: goto tr765;
+ case 32: goto tr783;
+ case 59: goto tr783;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr765;
+ goto tr783;
} else if ( (*p) >= 9 )
- goto tr765;
- goto tr755;
-tr765:
- { p--; {stack[top++] = 1400;goto st352;} }
- goto st1400;
-tr867:
- { p--; {stack[top++] = 1400;goto st340;} }
- goto st1400;
-tr870:
- { p--; {stack[top++] = 1400;goto st331;} }
- goto st1400;
-st1400:
+ goto tr783;
+ goto tr773;
+tr783:
+ { p--; {stack[top++] = 1448;goto st361;} }
+ goto st1448;
+tr885:
+ { p--; {stack[top++] = 1448;goto st349;} }
+ goto st1448;
+tr888:
+ { p--; {stack[top++] = 1448;goto st340;} }
+ goto st1448;
+st1448:
if ( ++p == pe )
- goto _test_eof1400;
-case 1400:
+ goto _test_eof1448;
+case 1448:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -26535,36 +27191,36 @@ case 1400:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4270;
- case 32: goto tr4270;
- case 36: goto tr4271;
- case 40: goto tr4272;
- case 41: goto tr4273;
- case 42: goto tr4274;
- case 92: goto tr4274;
- case 95: goto tr4274;
- case 1802: goto tr4275;
- case 1851: goto tr4276;
- case 2058: goto tr4277;
- case 2107: goto tr4278;
+ case 9: goto tr4352;
+ case 32: goto tr4352;
+ case 36: goto tr4353;
+ case 40: goto tr4354;
+ case 41: goto tr4355;
+ case 42: goto tr4356;
+ case 92: goto tr4356;
+ case 95: goto tr4356;
+ case 1802: goto tr4357;
+ case 1851: goto tr4358;
+ case 2058: goto tr4359;
+ case 2107: goto tr4360;
}
if ( _widec < 64 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr4274;
+ goto tr4356;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr4274;
+ goto tr4356;
} else
- goto tr4274;
- goto tr4269;
-tr4210:
+ goto tr4356;
+ goto tr4351;
+tr4290:
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 192;goto st309;} }
- goto st192;
-tr4274:
+ { p--; {stack[top++] = 198;goto st318;} }
+ goto st198;
+tr4356:
{
NOERR;
}
@@ -26572,12 +27228,12 @@ tr4274:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 192;goto st309;} }
- goto st192;
-st192:
+ { p--; {stack[top++] = 198;goto st318;} }
+ goto st198;
+st198:
if ( ++p == pe )
- goto _test_eof192;
-case 192:
+ goto _test_eof198;
+case 198:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -26591,38 +27247,38 @@ case 192:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr766;
-tr773:
+ goto tr784;
+tr791:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st193;
-tr774:
+ goto st199;
+tr792:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st193;
-tr775:
+ goto st199;
+tr793:
{
s->line_counter++;
}
- goto st193;
-tr779:
+ goto st199;
+tr797:
{
s->buffer[s->buffer_length++] = 0;
@@ -26632,55 +27288,55 @@ tr779:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 193; goto _out;}
+ {p++; cs = 199; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st193;
-tr767:
+ goto st199;
+tr785:
{
s->r_owner_length = s->dname_tmp_length;
}
- goto st193;
-tr768:
+ goto st199;
+tr786:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st193;
-tr769:
+ goto st199;
+tr787:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st193;
-tr770:
+ goto st199;
+tr788:
{
s->r_owner_length = s->dname_tmp_length;
}
{
s->line_counter++;
}
- goto st193;
-st193:
+ goto st199;
+st199:
if ( ++p == pe )
- goto _test_eof193;
-case 193:
+ goto _test_eof199;
+case 199:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -26694,10 +27350,10 @@ case 193:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st193;
- case 32: goto st193;
- case 40: goto tr773;
- case 41: goto tr774;
+ case 9: goto st199;
+ case 32: goto st199;
+ case 40: goto tr791;
+ case 41: goto tr792;
case 65: goto tr5;
case 67: goto tr6;
case 68: goto tr7;
@@ -26714,7 +27370,8 @@ case 193:
case 83: goto tr18;
case 84: goto tr19;
case 85: goto tr20;
- case 90: goto tr21;
+ case 87: goto tr21;
+ case 90: goto tr22;
case 97: goto tr5;
case 99: goto tr6;
case 100: goto tr7;
@@ -26731,37 +27388,38 @@ case 193:
case 115: goto tr18;
case 116: goto tr19;
case 117: goto tr20;
- case 122: goto tr21;
- case 2058: goto tr775;
- case 2107: goto tr776;
+ case 119: goto tr21;
+ case 122: goto tr22;
+ case 2058: goto tr793;
+ case 2107: goto tr794;
}
if ( 48 <= _widec && _widec <= 57 )
goto tr4;
- goto tr656;
-tr776:
+ goto tr660;
+tr794:
{
s->buffer_length = 0;
}
- goto st194;
-tr777:
+ goto st200;
+tr795:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st194;
-tr771:
+ goto st200;
+tr789:
{
s->r_owner_length = s->dname_tmp_length;
}
{
s->buffer_length = 0;
}
- goto st194;
-st194:
+ goto st200;
+st200:
if ( ++p == pe )
- goto _test_eof194;
-case 194:
+ goto _test_eof200;
+case 200:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -26781,16 +27439,16 @@ case 194:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr779;
+ goto tr797;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr777;
+ goto tr795;
goto st0;
-tr24:
+tr25:
{
s->line_counter++;
}
- goto st1401;
-tr998:
+ goto st1449;
+tr1016:
{
s->buffer[s->buffer_length++] = 0;
@@ -26800,15 +27458,15 @@ tr998:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1401; goto _out;}
+ {p++; cs = 1449; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1401;
-tr844:
+ goto st1449;
+tr862:
{
s->buffer[s->buffer_length++] = 0;
@@ -26818,7 +27476,7 @@ tr844:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1401; goto _out;}
+ {p++; cs = 1449; goto _out;}
}
}
}
@@ -26828,7 +27486,7 @@ tr844:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -26841,23 +27499,23 @@ tr844:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1401; goto _out;}
+ {p++; cs = 1449; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1401; goto _out;}
+ p--; {p++; cs = 1449; goto _out;}
}
}
- goto st1401;
-tr841:
+ goto st1449;
+tr859:
{
s->line_counter++;
}
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -26870,16 +27528,16 @@ tr841:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1401; goto _out;}
+ {p++; cs = 1449; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1401; goto _out;}
+ p--; {p++; cs = 1449; goto _out;}
}
}
- goto st1401;
-tr875:
+ goto st1449;
+tr893:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -26893,7 +27551,7 @@ tr875:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -26906,16 +27564,16 @@ tr875:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1401; goto _out;}
+ {p++; cs = 1449; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1401; goto _out;}
+ p--; {p++; cs = 1449; goto _out;}
}
}
- goto st1401;
-tr912:
+ goto st1449;
+tr930:
{
s->line_counter++;
}
@@ -26926,7 +27584,7 @@ tr912:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -26939,16 +27597,16 @@ tr912:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1401; goto _out;}
+ {p++; cs = 1449; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1401; goto _out;}
+ p--; {p++; cs = 1449; goto _out;}
}
}
- goto st1401;
-tr915:
+ goto st1449;
+tr933:
{
s->buffer[s->buffer_length++] = 0;
@@ -26958,7 +27616,7 @@ tr915:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1401; goto _out;}
+ {p++; cs = 1449; goto _out;}
}
}
}
@@ -26972,7 +27630,7 @@ tr915:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -26985,20 +27643,20 @@ tr915:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1401; goto _out;}
+ {p++; cs = 1449; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1401; goto _out;}
+ p--; {p++; cs = 1449; goto _out;}
}
}
- goto st1401;
-tr4213:
+ goto st1449;
+tr4293:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -27008,30 +27666,30 @@ tr4213:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st1401;
-tr4281:
+ goto st1449;
+tr4363:
{
s->line_counter++;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st1401;
-tr4277:
+ goto st1449;
+tr4359:
{
NOERR;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -27041,8 +27699,8 @@ tr4277:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st1401;
-tr4286:
+ goto st1449;
+tr4368:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -27050,7 +27708,7 @@ tr4286:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -27063,12 +27721,12 @@ tr4286:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1401; goto _out;}
+ {p++; cs = 1449; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1401; goto _out;}
+ p--; {p++; cs = 1449; goto _out;}
}
}
{
@@ -27077,11 +27735,11 @@ tr4286:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1401;
-tr4312:
+ goto st1449;
+tr4395:
{
s->line_counter++;
}
@@ -27092,7 +27750,7 @@ tr4312:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -27105,25 +27763,25 @@ tr4312:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1401; goto _out;}
+ {p++; cs = 1449; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1401; goto _out;}
+ p--; {p++; cs = 1449; goto _out;}
}
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1401;
-st1401:
+ goto st1449;
+st1449:
if ( ++p == pe )
- goto _test_eof1401;
-case 1401:
+ goto _test_eof1449;
+case 1449:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -27137,66 +27795,68 @@ case 1401:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4206;
- case 32: goto tr4206;
- case 36: goto st184;
- case 40: goto tr4279;
- case 41: goto tr4280;
- case 42: goto tr4210;
- case 65: goto tr4252;
- case 67: goto tr4253;
- case 68: goto tr4254;
- case 69: goto tr4255;
- case 72: goto tr4256;
- case 73: goto tr4257;
- case 75: goto tr4258;
- case 76: goto tr4259;
- case 77: goto tr4260;
- case 78: goto tr4261;
- case 79: goto tr4262;
- case 80: goto tr4263;
- case 82: goto tr4264;
- case 83: goto tr4265;
- case 84: goto tr4266;
- case 85: goto tr4267;
- case 90: goto tr4268;
- case 92: goto tr4210;
- case 95: goto tr4210;
- case 97: goto tr4252;
- case 99: goto tr4253;
- case 100: goto tr4254;
- case 101: goto tr4255;
- case 104: goto tr4256;
- case 105: goto tr4257;
- case 107: goto tr4258;
- case 108: goto tr4259;
- case 109: goto tr4260;
- case 110: goto tr4261;
- case 111: goto tr4262;
- case 112: goto tr4263;
- case 114: goto tr4264;
- case 115: goto tr4265;
- case 116: goto tr4266;
- case 117: goto tr4267;
- case 122: goto tr4268;
- case 1802: goto tr4211;
- case 1851: goto tr4212;
- case 2058: goto tr4281;
- case 2107: goto tr4282;
+ case 9: goto tr4286;
+ case 32: goto tr4286;
+ case 36: goto st190;
+ case 40: goto tr4361;
+ case 41: goto tr4362;
+ case 42: goto tr4290;
+ case 65: goto tr4333;
+ case 67: goto tr4334;
+ case 68: goto tr4335;
+ case 69: goto tr4336;
+ case 72: goto tr4337;
+ case 73: goto tr4338;
+ case 75: goto tr4339;
+ case 76: goto tr4340;
+ case 77: goto tr4341;
+ case 78: goto tr4342;
+ case 79: goto tr4343;
+ case 80: goto tr4344;
+ case 82: goto tr4345;
+ case 83: goto tr4346;
+ case 84: goto tr4347;
+ case 85: goto tr4348;
+ case 87: goto tr4349;
+ case 90: goto tr4350;
+ case 92: goto tr4290;
+ case 95: goto tr4290;
+ case 97: goto tr4333;
+ case 99: goto tr4334;
+ case 100: goto tr4335;
+ case 101: goto tr4336;
+ case 104: goto tr4337;
+ case 105: goto tr4338;
+ case 107: goto tr4339;
+ case 108: goto tr4340;
+ case 109: goto tr4341;
+ case 110: goto tr4342;
+ case 111: goto tr4343;
+ case 112: goto tr4344;
+ case 114: goto tr4345;
+ case 115: goto tr4346;
+ case 116: goto tr4347;
+ case 117: goto tr4348;
+ case 119: goto tr4349;
+ case 122: goto tr4350;
+ case 1802: goto tr4291;
+ case 1851: goto tr4292;
+ case 2058: goto tr4363;
+ case 2107: goto tr4364;
}
if ( _widec < 48 ) {
if ( 45 <= _widec && _widec <= 47 )
- goto tr4210;
+ goto tr4290;
} else if ( _widec > 57 ) {
if ( _widec > 89 ) {
if ( 98 <= _widec && _widec <= 121 )
- goto tr4210;
+ goto tr4290;
} else if ( _widec >= 64 )
- goto tr4210;
+ goto tr4290;
} else
- goto tr4251;
- goto tr4250;
-tr4251:
+ goto tr4332;
+ goto tr4331;
+tr4332:
{
s->number64 = 0;
}
@@ -27211,19 +27871,19 @@ tr4251:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 195;goto st309;} }
- goto st195;
-st195:
+ { p--; {stack[top++] = 201;goto st318;} }
+ goto st201;
+st201:
if ( ++p == pe )
- goto _test_eof195;
-case 195:
+ goto _test_eof201;
+case 201:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -27237,50 +27897,50 @@ case 195:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr781;
- case 32: goto tr781;
- case 40: goto tr782;
- case 41: goto tr783;
- case 68: goto tr31;
- case 72: goto tr32;
- case 77: goto tr33;
- case 83: goto st198;
- case 87: goto tr35;
- case 100: goto tr31;
- case 104: goto tr32;
- case 109: goto tr33;
- case 115: goto st198;
- case 119: goto tr35;
- case 2058: goto tr784;
- case 2107: goto tr785;
+ case 9: goto tr799;
+ case 32: goto tr799;
+ case 40: goto tr800;
+ case 41: goto tr801;
+ case 68: goto tr32;
+ case 72: goto tr33;
+ case 77: goto tr34;
+ case 83: goto st204;
+ case 87: goto tr36;
+ case 100: goto tr32;
+ case 104: goto tr33;
+ case 109: goto tr34;
+ case 115: goto st204;
+ case 119: goto tr36;
+ case 2058: goto tr802;
+ case 2107: goto tr803;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr30;
- goto tr780;
-tr787:
+ goto tr31;
+ goto tr798;
+tr805:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st196;
-tr788:
+ goto st202;
+tr806:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st196;
-tr789:
+ goto st202;
+tr807:
{
s->line_counter++;
}
- goto st196;
-tr792:
+ goto st202;
+tr810:
{
s->buffer[s->buffer_length++] = 0;
@@ -27290,15 +27950,15 @@ tr792:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 196; goto _out;}
+ {p++; cs = 202; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st196;
-tr781:
+ goto st202;
+tr799:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -27307,18 +27967,18 @@ tr781:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st196;
-tr782:
+ goto st202;
+tr800:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -27327,18 +27987,18 @@ tr782:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st196;
-tr783:
+ goto st202;
+tr801:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -27347,11 +28007,11 @@ tr783:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st196;
-tr784:
+ goto st202;
+tr802:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -27363,14 +28023,14 @@ tr784:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st196;
-st196:
+ goto st202;
+st202:
if ( ++p == pe )
- goto _test_eof196;
-case 196:
+ goto _test_eof202;
+case 202:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -27384,10 +28044,10 @@ case 196:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st196;
- case 32: goto st196;
- case 40: goto tr787;
- case 41: goto tr788;
+ case 9: goto st202;
+ case 32: goto st202;
+ case 40: goto tr805;
+ case 41: goto tr806;
case 65: goto tr5;
case 67: goto tr6;
case 68: goto tr7;
@@ -27404,7 +28064,8 @@ case 196:
case 83: goto tr18;
case 84: goto tr19;
case 85: goto tr20;
- case 90: goto tr21;
+ case 87: goto tr21;
+ case 90: goto tr22;
case 97: goto tr5;
case 99: goto tr6;
case 100: goto tr7;
@@ -27421,26 +28082,27 @@ case 196:
case 115: goto tr18;
case 116: goto tr19;
case 117: goto tr20;
- case 122: goto tr21;
- case 2058: goto tr789;
- case 2107: goto tr790;
+ case 119: goto tr21;
+ case 122: goto tr22;
+ case 2058: goto tr807;
+ case 2107: goto tr808;
}
if ( 48 <= _widec && _widec <= 57 )
goto tr4;
- goto tr656;
-tr790:
+ goto tr660;
+tr808:
{
s->buffer_length = 0;
}
- goto st197;
-tr791:
+ goto st203;
+tr809:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st197;
-tr785:
+ goto st203;
+tr803:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -27452,14 +28114,14 @@ tr785:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st197;
-st197:
+ goto st203;
+st203:
if ( ++p == pe )
- goto _test_eof197;
-case 197:
+ goto _test_eof203;
+case 203:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -27479,50 +28141,50 @@ case 197:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr792;
+ goto tr810;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr791;
- goto tr38;
-tr31:
+ goto tr809;
+ goto tr39;
+tr32:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st198;
-tr32:
+ goto st204;
+tr33:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st198;
-tr33:
+ goto st204;
+tr34:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st198;
-tr35:
+ goto st204;
+tr36:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st198;
-st198:
+ goto st204;
+st204:
if ( ++p == pe )
- goto _test_eof198;
-case 198:
+ goto _test_eof204;
+case 204:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -27536,17 +28198,17 @@ case 198:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr27;
- case 32: goto tr27;
- case 40: goto tr28;
- case 41: goto tr29;
- case 2058: goto tr36;
- case 2107: goto tr37;
+ case 9: goto tr28;
+ case 32: goto tr28;
+ case 40: goto tr29;
+ case 41: goto tr30;
+ case 2058: goto tr37;
+ case 2107: goto tr38;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr793;
- goto tr26;
-tr794:
+ goto tr811;
+ goto tr27;
+tr812:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -27558,11 +28220,11 @@ tr794:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st199;
-tr793:
+ goto st205;
+tr811:
{
s->number64_tmp = s->number64;
}
@@ -27580,17 +28242,17 @@ tr793:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st199;
-tr803:
+ goto st205;
+tr821:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -27610,69 +28272,69 @@ tr803:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st199;
-st199:
+ goto st205;
+st205:
if ( ++p == pe )
- goto _test_eof199;
-case 199:
+ goto _test_eof205;
+case 205:
switch( (*p) ) {
- case 68: goto tr795;
- case 72: goto tr796;
- case 77: goto tr797;
- case 83: goto st200;
- case 87: goto tr799;
- case 100: goto tr795;
- case 104: goto tr796;
- case 109: goto tr797;
- case 115: goto st200;
- case 119: goto tr799;
+ case 68: goto tr813;
+ case 72: goto tr814;
+ case 77: goto tr815;
+ case 83: goto st206;
+ case 87: goto tr817;
+ case 100: goto tr813;
+ case 104: goto tr814;
+ case 109: goto tr815;
+ case 115: goto st206;
+ case 119: goto tr817;
}
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr794;
- goto tr26;
-tr795:
+ goto tr812;
+ goto tr27;
+tr813:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st200;
-tr796:
+ goto st206;
+tr814:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st200;
-tr797:
+ goto st206;
+tr815:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st200;
-tr799:
+ goto st206;
+tr817:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st200;
-st200:
+ goto st206;
+st206:
if ( ++p == pe )
- goto _test_eof200;
-case 200:
+ goto _test_eof206;
+case 206:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -27686,48 +28348,48 @@ case 200:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr800;
- case 32: goto tr800;
- case 40: goto tr801;
- case 41: goto tr802;
- case 2058: goto tr804;
- case 2107: goto tr805;
+ case 9: goto tr818;
+ case 32: goto tr818;
+ case 40: goto tr819;
+ case 41: goto tr820;
+ case 2058: goto tr822;
+ case 2107: goto tr823;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr803;
- goto tr26;
-tr60:
+ goto tr821;
+ goto tr27;
+tr62:
{
s->buffer_length = 0;
}
- goto st201;
-tr37:
+ goto st207;
+tr38:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st201;
-tr806:
+ goto st207;
+tr824:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st201;
-tr805:
+ goto st207;
+tr823:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -27735,17 +28397,17 @@ tr805:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st201;
-st201:
+ goto st207;
+st207:
if ( ++p == pe )
- goto _test_eof201;
-case 201:
+ goto _test_eof207;
+case 207:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -27765,11 +28427,11 @@ case 201:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr807;
+ goto tr825;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr806;
- goto tr38;
-tr4231:
+ goto tr824;
+ goto tr39;
+tr4311:
{
s->r_class = s->default_class;
}
@@ -27777,9 +28439,9 @@ tr4231:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 202;goto st309;} }
- goto st202;
-tr4252:
+ { p--; {stack[top++] = 208;goto st318;} }
+ goto st208;
+tr4333:
{
s->r_class = s->default_class;
}
@@ -27790,12 +28452,12 @@ tr4252:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 202;goto st309;} }
- goto st202;
-st202:
+ { p--; {stack[top++] = 208;goto st318;} }
+ goto st208;
+st208:
if ( ++p == pe )
- goto _test_eof202;
-case 202:
+ goto _test_eof208;
+case 208:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -27813,48 +28475,48 @@ case 202:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr809;
- case 32: goto tr809;
- case 40: goto tr810;
- case 41: goto tr811;
- case 65: goto st266;
- case 70: goto st269;
- case 80: goto st273;
- case 97: goto st266;
- case 102: goto st269;
- case 112: goto st273;
- case 3082: goto tr812;
- case 3131: goto tr813;
- case 3338: goto tr70;
- case 3387: goto tr70;
- case 3594: goto tr814;
- case 3643: goto tr815;
- }
- goto tr808;
-tr817:
+ case 9: goto tr827;
+ case 32: goto tr827;
+ case 40: goto tr828;
+ case 41: goto tr829;
+ case 65: goto st274;
+ case 70: goto st277;
+ case 80: goto st281;
+ case 97: goto st274;
+ case 102: goto st277;
+ case 112: goto st281;
+ case 3082: goto tr830;
+ case 3131: goto tr831;
+ case 3338: goto tr72;
+ case 3387: goto tr72;
+ case 3594: goto tr832;
+ case 3643: goto tr833;
+ }
+ goto tr826;
+tr835:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st203;
-tr818:
+ goto st209;
+tr836:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st203;
-tr819:
+ goto st209;
+tr837:
{
s->line_counter++;
}
- goto st203;
-tr984:
+ goto st209;
+tr1002:
{
s->buffer[s->buffer_length++] = 0;
@@ -27864,15 +28526,15 @@ tr984:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 203; goto _out;}
+ {p++; cs = 209; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st203;
-tr809:
+ goto st209;
+tr827:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -27880,15 +28542,15 @@ tr809:
{
rdata_tail = s->r_data;
}
- goto st203;
-tr810:
+ goto st209;
+tr828:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -27896,15 +28558,15 @@ tr810:
{
rdata_tail = s->r_data;
}
- goto st203;
-tr811:
+ goto st209;
+tr829:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -27912,8 +28574,8 @@ tr811:
{
rdata_tail = s->r_data;
}
- goto st203;
-tr812:
+ goto st209;
+tr830:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -27924,11 +28586,11 @@ tr812:
{
rdata_tail = s->r_data;
}
- goto st203;
-st203:
+ goto st209;
+st209:
if ( ++p == pe )
- goto _test_eof203;
-case 203:
+ goto _test_eof209;
+case 209:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -27946,66 +28608,68 @@ case 203:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st203;
- case 32: goto st203;
- case 40: goto tr817;
- case 41: goto tr818;
- case 58: goto tr73;
- case 65: goto tr122;
- case 67: goto tr123;
- case 68: goto tr124;
- case 69: goto tr125;
- case 72: goto tr126;
- case 73: goto tr127;
- case 75: goto tr128;
- case 76: goto tr129;
- case 77: goto tr130;
- case 78: goto tr131;
- case 79: goto tr132;
- case 80: goto tr133;
- case 82: goto tr134;
- case 83: goto tr135;
- case 84: goto tr136;
- case 85: goto tr137;
- case 90: goto tr138;
- case 92: goto tr78;
- case 97: goto tr122;
- case 99: goto tr123;
- case 100: goto tr124;
- case 101: goto tr125;
- case 104: goto tr126;
- case 105: goto tr127;
- case 107: goto tr128;
- case 108: goto tr129;
- case 109: goto tr130;
- case 110: goto tr131;
- case 111: goto tr132;
- case 112: goto tr133;
- case 114: goto tr134;
- case 115: goto tr135;
- case 116: goto tr136;
- case 117: goto tr137;
- case 122: goto tr138;
- case 3082: goto tr819;
- case 3131: goto tr820;
- case 3338: goto tr73;
- case 3387: goto tr73;
- case 3594: goto tr821;
- case 3643: goto tr822;
+ case 9: goto st209;
+ case 32: goto st209;
+ case 40: goto tr835;
+ case 41: goto tr836;
+ case 58: goto tr75;
+ case 65: goto tr124;
+ case 67: goto tr125;
+ case 68: goto tr126;
+ case 69: goto tr127;
+ case 72: goto tr128;
+ case 73: goto tr129;
+ case 75: goto tr130;
+ case 76: goto tr131;
+ case 77: goto tr132;
+ case 78: goto tr133;
+ case 79: goto tr134;
+ case 80: goto tr135;
+ case 82: goto tr136;
+ case 83: goto tr137;
+ case 84: goto tr138;
+ case 85: goto tr139;
+ case 87: goto tr140;
+ case 90: goto tr141;
+ case 92: goto tr80;
+ case 97: goto tr124;
+ case 99: goto tr125;
+ case 100: goto tr126;
+ case 101: goto tr127;
+ case 104: goto tr128;
+ case 105: goto tr129;
+ case 107: goto tr130;
+ case 108: goto tr131;
+ case 109: goto tr132;
+ case 110: goto tr133;
+ case 111: goto tr134;
+ case 112: goto tr135;
+ case 114: goto tr136;
+ case 115: goto tr137;
+ case 116: goto tr138;
+ case 117: goto tr139;
+ case 119: goto tr140;
+ case 122: goto tr141;
+ case 3082: goto tr837;
+ case 3131: goto tr838;
+ case 3338: goto tr75;
+ case 3387: goto tr75;
+ case 3594: goto tr839;
+ case 3643: goto tr840;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr73;
+ goto tr75;
} else if ( _widec > 47 ) {
if ( _widec > 57 ) {
if ( 60 <= _widec )
- goto tr73;
+ goto tr75;
} else if ( _widec >= 48 )
- goto tr121;
+ goto tr123;
} else
- goto tr73;
- goto tr658;
-tr122:
+ goto tr75;
+ goto tr662;
+tr124:
{
s->r_class = s->default_class;
}
@@ -28016,95 +28680,96 @@ tr122:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 204;goto st844;}
+ {stack[top++] = 210;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 204;goto st846;}
+ {stack[top++] = 210;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 204;goto st848;}
+ {stack[top++] = 210;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 204;goto st880;}
+ {stack[top++] = 210;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 204;goto st885;}
+ {stack[top++] = 210;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 204;goto st890;}
+ {stack[top++] = 210;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 204;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 210;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 204;goto st899;}
+ {stack[top++] = 210;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 204;goto st901;}
+ {stack[top++] = 210;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 204;goto st956;}
+ {stack[top++] = 210;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 204;goto st967;}
+ {stack[top++] = 210;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 204;goto st984;}
+ {stack[top++] = 210;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 204;goto st995;}
+ {stack[top++] = 210;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 204;goto st1006;}
+ {stack[top++] = 210;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 204;goto st1019;}
+ {stack[top++] = 210;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 204;goto st1029;}
+ {stack[top++] = 210;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 204;goto st1068;}
+ {stack[top++] = 210;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 204;goto st1254;}
+ {stack[top++] = 210;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 204;goto st1257;}
+ {stack[top++] = 210;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 204;goto st1268;}
+ {stack[top++] = 210;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 204;goto st1270;}
+ {stack[top++] = 210;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 204;goto st1299;}
+ {stack[top++] = 210;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 204;goto st1312;}
+ {stack[top++] = 210;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 204;goto st1325;}
+ {stack[top++] = 210;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 204;goto st1331;}
+ {stack[top++] = 210;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 204;goto st1349;}
+ {stack[top++] = 210;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 204;goto st1344;}
+ {stack[top++] = 210;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 204;goto st1362;}
+ {stack[top++] = 210;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 204;goto st1368;}
+ {stack[top++] = 210;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 204;goto st1374;}
+ {stack[top++] = 210;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 204;goto st1382;}
+ {stack[top++] = 210;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 204;goto st1390;}
+ {stack[top++] = 210;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st204;
-st204:
+ goto st210;
+st210:
if ( ++p == pe )
- goto _test_eof204;
-case 204:
+ goto _test_eof210;
+case 210:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -28122,45 +28787,45 @@ case 204:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr824;
- case 32: goto tr824;
- case 40: goto tr825;
- case 41: goto tr826;
- case 65: goto st266;
- case 70: goto st269;
- case 80: goto st273;
- case 97: goto st266;
- case 102: goto st269;
- case 112: goto st273;
- case 2826: goto tr87;
- case 2875: goto tr88;
- case 3082: goto tr827;
- case 3131: goto tr828;
- case 3338: goto tr829;
- case 3387: goto tr830;
- case 3594: goto tr831;
- case 3643: goto tr832;
- }
- goto tr823;
-tr834:
+ case 9: goto tr842;
+ case 32: goto tr842;
+ case 40: goto tr843;
+ case 41: goto tr844;
+ case 65: goto st274;
+ case 70: goto st277;
+ case 80: goto st281;
+ case 97: goto st274;
+ case 102: goto st277;
+ case 112: goto st281;
+ case 2826: goto tr89;
+ case 2875: goto tr90;
+ case 3082: goto tr845;
+ case 3131: goto tr846;
+ case 3338: goto tr847;
+ case 3387: goto tr848;
+ case 3594: goto tr849;
+ case 3643: goto tr850;
+ }
+ goto tr841;
+tr852:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st205;
-tr835:
+ goto st211;
+tr853:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st205;
-tr824:
+ goto st211;
+tr842:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -28169,8 +28834,8 @@ tr824:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st205;
-tr825:
+ goto st211;
+tr843:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -28178,7 +28843,7 @@ tr825:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -28186,8 +28851,8 @@ tr825:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st205;
-tr826:
+ goto st211;
+tr844:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -28195,7 +28860,7 @@ tr826:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -28203,11 +28868,11 @@ tr826:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st205;
-st205:
+ goto st211;
+st211:
if ( ++p == pe )
- goto _test_eof205;
-case 205:
+ goto _test_eof211;
+case 211:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -28225,116 +28890,117 @@ case 205:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st205;
- case 32: goto st205;
- case 40: goto tr834;
- case 41: goto tr835;
- case 92: goto tr78;
- case 2826: goto tr93;
- case 2875: goto tr94;
- case 3082: goto tr836;
- case 3131: goto tr111;
- case 3338: goto tr112;
- case 3387: goto tr113;
- case 3594: goto tr837;
- case 3643: goto tr114;
+ case 9: goto st211;
+ case 32: goto st211;
+ case 40: goto tr852;
+ case 41: goto tr853;
+ case 92: goto tr80;
+ case 2826: goto tr95;
+ case 2875: goto tr96;
+ case 3082: goto tr854;
+ case 3131: goto tr113;
+ case 3338: goto tr114;
+ case 3387: goto tr115;
+ case 3594: goto tr855;
+ case 3643: goto tr116;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr73;
+ goto tr75;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr73;
+ goto tr75;
} else
- goto tr73;
- goto tr83;
-tr105:
+ goto tr75;
+ goto tr85;
+tr107:
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 1402;goto st844;}
+ {stack[top++] = 1450;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 1402;goto st846;}
+ {stack[top++] = 1450;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 1402;goto st848;}
+ {stack[top++] = 1450;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 1402;goto st880;}
+ {stack[top++] = 1450;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 1402;goto st885;}
+ {stack[top++] = 1450;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 1402;goto st890;}
+ {stack[top++] = 1450;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 1402;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 1450;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 1402;goto st899;}
+ {stack[top++] = 1450;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 1402;goto st901;}
+ {stack[top++] = 1450;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 1402;goto st956;}
+ {stack[top++] = 1450;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 1402;goto st967;}
+ {stack[top++] = 1450;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 1402;goto st984;}
+ {stack[top++] = 1450;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 1402;goto st995;}
+ {stack[top++] = 1450;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 1402;goto st1006;}
+ {stack[top++] = 1450;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 1402;goto st1019;}
+ {stack[top++] = 1450;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 1402;goto st1029;}
+ {stack[top++] = 1450;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 1402;goto st1068;}
+ {stack[top++] = 1450;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 1402;goto st1254;}
+ {stack[top++] = 1450;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 1402;goto st1257;}
+ {stack[top++] = 1450;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 1402;goto st1268;}
+ {stack[top++] = 1450;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 1402;goto st1270;}
+ {stack[top++] = 1450;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 1402;goto st1299;}
+ {stack[top++] = 1450;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 1402;goto st1312;}
+ {stack[top++] = 1450;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 1402;goto st1325;}
+ {stack[top++] = 1450;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 1402;goto st1331;}
+ {stack[top++] = 1450;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 1402;goto st1349;}
+ {stack[top++] = 1450;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 1402;goto st1344;}
+ {stack[top++] = 1450;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 1402;goto st1362;}
+ {stack[top++] = 1450;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 1402;goto st1368;}
+ {stack[top++] = 1450;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 1402;goto st1374;}
+ {stack[top++] = 1450;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 1402;goto st1382;}
+ {stack[top++] = 1450;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 1402;goto st1390;}
+ {stack[top++] = 1450;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
@@ -28344,7 +29010,7 @@ tr105:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -28357,111 +29023,112 @@ tr105:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1402; goto _out;}
+ {p++; cs = 1450; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1402; goto _out;}
+ p--; {p++; cs = 1450; goto _out;}
}
}
{
s->line_counter++;
}
- goto st1402;
-tr112:
+ goto st1450;
+tr114:
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 1402;goto st844;}
+ {stack[top++] = 1450;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 1402;goto st846;}
+ {stack[top++] = 1450;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 1402;goto st848;}
+ {stack[top++] = 1450;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 1402;goto st880;}
+ {stack[top++] = 1450;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 1402;goto st885;}
+ {stack[top++] = 1450;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 1402;goto st890;}
+ {stack[top++] = 1450;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 1402;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 1450;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 1402;goto st899;}
+ {stack[top++] = 1450;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 1402;goto st901;}
+ {stack[top++] = 1450;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 1402;goto st956;}
+ {stack[top++] = 1450;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 1402;goto st967;}
+ {stack[top++] = 1450;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 1402;goto st984;}
+ {stack[top++] = 1450;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 1402;goto st995;}
+ {stack[top++] = 1450;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 1402;goto st1006;}
+ {stack[top++] = 1450;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 1402;goto st1019;}
+ {stack[top++] = 1450;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 1402;goto st1029;}
+ {stack[top++] = 1450;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 1402;goto st1068;}
+ {stack[top++] = 1450;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 1402;goto st1254;}
+ {stack[top++] = 1450;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 1402;goto st1257;}
+ {stack[top++] = 1450;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 1402;goto st1268;}
+ {stack[top++] = 1450;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 1402;goto st1270;}
+ {stack[top++] = 1450;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 1402;goto st1299;}
+ {stack[top++] = 1450;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 1402;goto st1312;}
+ {stack[top++] = 1450;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 1402;goto st1325;}
+ {stack[top++] = 1450;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 1402;goto st1331;}
+ {stack[top++] = 1450;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 1402;goto st1349;}
+ {stack[top++] = 1450;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 1402;goto st1344;}
+ {stack[top++] = 1450;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 1402;goto st1362;}
+ {stack[top++] = 1450;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 1402;goto st1368;}
+ {stack[top++] = 1450;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 1402;goto st1374;}
+ {stack[top++] = 1450;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 1402;goto st1382;}
+ {stack[top++] = 1450;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 1402;goto st1390;}
+ {stack[top++] = 1450;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -28474,112 +29141,113 @@ tr112:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1402; goto _out;}
+ {p++; cs = 1450; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1402; goto _out;}
+ p--; {p++; cs = 1450; goto _out;}
}
}
{
s->line_counter++;
}
- goto st1402;
-tr141:
+ goto st1450;
+tr144:
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 1402;goto st844;}
+ {stack[top++] = 1450;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 1402;goto st846;}
+ {stack[top++] = 1450;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 1402;goto st848;}
+ {stack[top++] = 1450;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 1402;goto st880;}
+ {stack[top++] = 1450;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 1402;goto st885;}
+ {stack[top++] = 1450;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 1402;goto st890;}
+ {stack[top++] = 1450;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 1402;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 1450;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 1402;goto st899;}
+ {stack[top++] = 1450;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 1402;goto st901;}
+ {stack[top++] = 1450;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 1402;goto st956;}
+ {stack[top++] = 1450;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 1402;goto st967;}
+ {stack[top++] = 1450;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 1402;goto st984;}
+ {stack[top++] = 1450;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 1402;goto st995;}
+ {stack[top++] = 1450;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 1402;goto st1006;}
+ {stack[top++] = 1450;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 1402;goto st1019;}
+ {stack[top++] = 1450;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 1402;goto st1029;}
+ {stack[top++] = 1450;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 1402;goto st1068;}
+ {stack[top++] = 1450;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 1402;goto st1254;}
+ {stack[top++] = 1450;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 1402;goto st1257;}
+ {stack[top++] = 1450;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 1402;goto st1268;}
+ {stack[top++] = 1450;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 1402;goto st1270;}
+ {stack[top++] = 1450;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 1402;goto st1299;}
+ {stack[top++] = 1450;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 1402;goto st1312;}
+ {stack[top++] = 1450;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 1402;goto st1325;}
+ {stack[top++] = 1450;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 1402;goto st1331;}
+ {stack[top++] = 1450;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 1402;goto st1349;}
+ {stack[top++] = 1450;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 1402;goto st1344;}
+ {stack[top++] = 1450;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 1402;goto st1362;}
+ {stack[top++] = 1450;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 1402;goto st1368;}
+ {stack[top++] = 1450;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 1402;goto st1374;}
+ {stack[top++] = 1450;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 1402;goto st1382;}
+ {stack[top++] = 1450;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 1402;goto st1390;}
+ {stack[top++] = 1450;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1402;
-tr829:
+ goto st1450;
+tr847:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -28588,88 +29256,89 @@ tr829:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 1402;goto st844;}
+ {stack[top++] = 1450;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 1402;goto st846;}
+ {stack[top++] = 1450;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 1402;goto st848;}
+ {stack[top++] = 1450;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 1402;goto st880;}
+ {stack[top++] = 1450;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 1402;goto st885;}
+ {stack[top++] = 1450;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 1402;goto st890;}
+ {stack[top++] = 1450;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 1402;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 1450;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 1402;goto st899;}
+ {stack[top++] = 1450;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 1402;goto st901;}
+ {stack[top++] = 1450;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 1402;goto st956;}
+ {stack[top++] = 1450;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 1402;goto st967;}
+ {stack[top++] = 1450;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 1402;goto st984;}
+ {stack[top++] = 1450;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 1402;goto st995;}
+ {stack[top++] = 1450;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 1402;goto st1006;}
+ {stack[top++] = 1450;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 1402;goto st1019;}
+ {stack[top++] = 1450;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 1402;goto st1029;}
+ {stack[top++] = 1450;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 1402;goto st1068;}
+ {stack[top++] = 1450;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 1402;goto st1254;}
+ {stack[top++] = 1450;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 1402;goto st1257;}
+ {stack[top++] = 1450;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 1402;goto st1268;}
+ {stack[top++] = 1450;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 1402;goto st1270;}
+ {stack[top++] = 1450;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 1402;goto st1299;}
+ {stack[top++] = 1450;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 1402;goto st1312;}
+ {stack[top++] = 1450;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 1402;goto st1325;}
+ {stack[top++] = 1450;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 1402;goto st1331;}
+ {stack[top++] = 1450;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 1402;goto st1349;}
+ {stack[top++] = 1450;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 1402;goto st1344;}
+ {stack[top++] = 1450;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 1402;goto st1362;}
+ {stack[top++] = 1450;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 1402;goto st1368;}
+ {stack[top++] = 1450;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 1402;goto st1374;}
+ {stack[top++] = 1450;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 1402;goto st1382;}
+ {stack[top++] = 1450;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 1402;goto st1390;}
+ {stack[top++] = 1450;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
@@ -28679,7 +29348,7 @@ tr829:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -28692,105 +29361,106 @@ tr829:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1402; goto _out;}
+ {p++; cs = 1450; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1402; goto _out;}
+ p--; {p++; cs = 1450; goto _out;}
}
}
{
s->line_counter++;
}
- goto st1402;
-tr4223:
+ goto st1450;
+tr4303:
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 1402;goto st844;}
+ {stack[top++] = 1450;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 1402;goto st846;}
+ {stack[top++] = 1450;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 1402;goto st848;}
+ {stack[top++] = 1450;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 1402;goto st880;}
+ {stack[top++] = 1450;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 1402;goto st885;}
+ {stack[top++] = 1450;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 1402;goto st890;}
+ {stack[top++] = 1450;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 1402;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 1450;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 1402;goto st899;}
+ {stack[top++] = 1450;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 1402;goto st901;}
+ {stack[top++] = 1450;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 1402;goto st956;}
+ {stack[top++] = 1450;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 1402;goto st967;}
+ {stack[top++] = 1450;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 1402;goto st984;}
+ {stack[top++] = 1450;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 1402;goto st995;}
+ {stack[top++] = 1450;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 1402;goto st1006;}
+ {stack[top++] = 1450;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 1402;goto st1019;}
+ {stack[top++] = 1450;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 1402;goto st1029;}
+ {stack[top++] = 1450;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 1402;goto st1068;}
+ {stack[top++] = 1450;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 1402;goto st1254;}
+ {stack[top++] = 1450;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 1402;goto st1257;}
+ {stack[top++] = 1450;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 1402;goto st1268;}
+ {stack[top++] = 1450;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 1402;goto st1270;}
+ {stack[top++] = 1450;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 1402;goto st1299;}
+ {stack[top++] = 1450;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 1402;goto st1312;}
+ {stack[top++] = 1450;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 1402;goto st1325;}
+ {stack[top++] = 1450;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 1402;goto st1331;}
+ {stack[top++] = 1450;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 1402;goto st1349;}
+ {stack[top++] = 1450;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 1402;goto st1344;}
+ {stack[top++] = 1450;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 1402;goto st1362;}
+ {stack[top++] = 1450;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 1402;goto st1368;}
+ {stack[top++] = 1450;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 1402;goto st1374;}
+ {stack[top++] = 1450;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 1402;goto st1382;}
+ {stack[top++] = 1450;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 1402;goto st1390;}
+ {stack[top++] = 1450;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
@@ -28800,11 +29470,11 @@ tr4223:
{
s->line_counter++;
}
- goto st1402;
-st1402:
+ goto st1450;
+st1450:
if ( ++p == pe )
- goto _test_eof1402;
-case 1402:
+ goto _test_eof1450;
+case 1450:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -28818,57 +29488,57 @@ case 1402:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4283;
- case 32: goto tr4283;
- case 36: goto st184;
- case 40: goto tr4284;
- case 41: goto tr4285;
- case 42: goto tr4210;
- case 92: goto tr4210;
- case 95: goto tr4210;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr4286;
- case 2107: goto tr4287;
+ case 9: goto tr4365;
+ case 32: goto tr4365;
+ case 36: goto st190;
+ case 40: goto tr4366;
+ case 41: goto tr4367;
+ case 42: goto tr4290;
+ case 92: goto tr4290;
+ case 95: goto tr4290;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr4368;
+ case 2107: goto tr4369;
}
if ( _widec < 64 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr4210;
+ goto tr4290;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr4210;
+ goto tr4290;
} else
- goto tr4210;
- goto tr871;
-tr839:
+ goto tr4290;
+ goto tr889;
+tr857:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st206;
-tr840:
+ goto st212;
+tr858:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st206;
-tr909:
+ goto st212;
+tr927:
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st206;
-tr910:
+ goto st212;
+tr928:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -28876,12 +29546,12 @@ tr910:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st206;
-tr911:
+ goto st212;
+tr929:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -28889,8 +29559,8 @@ tr911:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st206;
-tr872:
+ goto st212;
+tr890:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -28898,15 +29568,15 @@ tr872:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st206;
-tr873:
+ goto st212;
+tr891:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -28914,15 +29584,15 @@ tr873:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st206;
-tr874:
+ goto st212;
+tr892:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -28930,8 +29600,8 @@ tr874:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st206;
-tr4283:
+ goto st212;
+tr4365:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -28939,11 +29609,11 @@ tr4283:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st206;
-tr4284:
+ goto st212;
+tr4366:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -28951,18 +29621,18 @@ tr4284:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st206;
-tr4285:
+ goto st212;
+tr4367:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -28970,21 +29640,21 @@ tr4285:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st206;
-st206:
+ goto st212;
+st212:
if ( ++p == pe )
- goto _test_eof206;
-case 206:
+ goto _test_eof212;
+case 212:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -28998,10 +29668,10 @@ case 206:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st206;
- case 32: goto st206;
- case 40: goto tr839;
- case 41: goto tr840;
+ case 9: goto st212;
+ case 32: goto st212;
+ case 40: goto tr857;
+ case 41: goto tr858;
case 65: goto tr5;
case 67: goto tr6;
case 68: goto tr7;
@@ -29018,7 +29688,8 @@ case 206:
case 83: goto tr18;
case 84: goto tr19;
case 85: goto tr20;
- case 90: goto tr21;
+ case 87: goto tr21;
+ case 90: goto tr22;
case 97: goto tr5;
case 99: goto tr6;
case 100: goto tr7;
@@ -29035,28 +29706,29 @@ case 206:
case 115: goto tr18;
case 116: goto tr19;
case 117: goto tr20;
- case 122: goto tr21;
- case 1802: goto tr93;
- case 1851: goto tr94;
- case 2058: goto tr841;
- case 2107: goto tr842;
+ case 119: goto tr21;
+ case 122: goto tr22;
+ case 1802: goto tr95;
+ case 1851: goto tr96;
+ case 2058: goto tr859;
+ case 2107: goto tr860;
}
if ( 48 <= _widec && _widec <= 57 )
goto tr4;
goto tr0;
-tr842:
+tr860:
{
s->buffer_length = 0;
}
- goto st207;
-tr843:
+ goto st213;
+tr861:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st207;
-tr913:
+ goto st213;
+tr931:
{
s->buffer_length = 0;
}
@@ -29064,8 +29736,8 @@ tr913:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st207;
-tr918:
+ goto st213;
+tr936:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -29078,8 +29750,8 @@ tr918:
{
s->buffer_length = 0;
}
- goto st207;
-tr922:
+ goto st213;
+tr940:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -29088,8 +29760,8 @@ tr922:
{
s->buffer_length = 0;
}
- goto st207;
-tr876:
+ goto st213;
+tr894:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -29100,8 +29772,8 @@ tr876:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st207;
-tr4287:
+ goto st213;
+tr4369:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -29112,14 +29784,14 @@ tr4287:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st207;
-st207:
+ goto st213;
+st213:
if ( ++p == pe )
- goto _test_eof207;
-case 207:
+ goto _test_eof213;
+case 213:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -29139,102 +29811,103 @@ case 207:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1802: goto tr96;
- case 2058: goto tr844;
+ case 1802: goto tr98;
+ case 2058: goto tr862;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr843;
+ goto tr861;
} else if ( _widec >= 1664 )
- goto tr95;
- goto tr89;
-tr106:
+ goto tr97;
+ goto tr91;
+tr108:
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 208;goto st844;}
+ {stack[top++] = 214;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 208;goto st846;}
+ {stack[top++] = 214;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 208;goto st848;}
+ {stack[top++] = 214;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 208;goto st880;}
+ {stack[top++] = 214;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 208;goto st885;}
+ {stack[top++] = 214;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 208;goto st890;}
+ {stack[top++] = 214;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 208;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 214;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 208;goto st899;}
+ {stack[top++] = 214;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 208;goto st901;}
+ {stack[top++] = 214;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 208;goto st956;}
+ {stack[top++] = 214;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 208;goto st967;}
+ {stack[top++] = 214;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 208;goto st984;}
+ {stack[top++] = 214;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 208;goto st995;}
+ {stack[top++] = 214;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 208;goto st1006;}
+ {stack[top++] = 214;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 208;goto st1019;}
+ {stack[top++] = 214;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 208;goto st1029;}
+ {stack[top++] = 214;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 208;goto st1068;}
+ {stack[top++] = 214;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 208;goto st1254;}
+ {stack[top++] = 214;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 208;goto st1257;}
+ {stack[top++] = 214;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 208;goto st1268;}
+ {stack[top++] = 214;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 208;goto st1270;}
+ {stack[top++] = 214;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 208;goto st1299;}
+ {stack[top++] = 214;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 208;goto st1312;}
+ {stack[top++] = 214;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 208;goto st1325;}
+ {stack[top++] = 214;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 208;goto st1331;}
+ {stack[top++] = 214;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 208;goto st1349;}
+ {stack[top++] = 214;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 208;goto st1344;}
+ {stack[top++] = 214;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 208;goto st1362;}
+ {stack[top++] = 214;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 208;goto st1368;}
+ {stack[top++] = 214;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 208;goto st1374;}
+ {stack[top++] = 214;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 208;goto st1382;}
+ {stack[top++] = 214;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 208;goto st1390;}
+ {stack[top++] = 214;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
@@ -29244,101 +29917,102 @@ tr106:
{
s->buffer_length = 0;
}
- goto st208;
-tr113:
+ goto st214;
+tr115:
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 208;goto st844;}
+ {stack[top++] = 214;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 208;goto st846;}
+ {stack[top++] = 214;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 208;goto st848;}
+ {stack[top++] = 214;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 208;goto st880;}
+ {stack[top++] = 214;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 208;goto st885;}
+ {stack[top++] = 214;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 208;goto st890;}
+ {stack[top++] = 214;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 208;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 214;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 208;goto st899;}
+ {stack[top++] = 214;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 208;goto st901;}
+ {stack[top++] = 214;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 208;goto st956;}
+ {stack[top++] = 214;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 208;goto st967;}
+ {stack[top++] = 214;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 208;goto st984;}
+ {stack[top++] = 214;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 208;goto st995;}
+ {stack[top++] = 214;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 208;goto st1006;}
+ {stack[top++] = 214;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 208;goto st1019;}
+ {stack[top++] = 214;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 208;goto st1029;}
+ {stack[top++] = 214;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 208;goto st1068;}
+ {stack[top++] = 214;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 208;goto st1254;}
+ {stack[top++] = 214;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 208;goto st1257;}
+ {stack[top++] = 214;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 208;goto st1268;}
+ {stack[top++] = 214;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 208;goto st1270;}
+ {stack[top++] = 214;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 208;goto st1299;}
+ {stack[top++] = 214;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 208;goto st1312;}
+ {stack[top++] = 214;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 208;goto st1325;}
+ {stack[top++] = 214;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 208;goto st1331;}
+ {stack[top++] = 214;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 208;goto st1349;}
+ {stack[top++] = 214;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 208;goto st1344;}
+ {stack[top++] = 214;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 208;goto st1362;}
+ {stack[top++] = 214;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 208;goto st1368;}
+ {stack[top++] = 214;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 208;goto st1374;}
+ {stack[top++] = 214;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 208;goto st1382;}
+ {stack[top++] = 214;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 208;goto st1390;}
+ {stack[top++] = 214;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st208;
-tr830:
+ goto st214;
+tr848:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -29347,88 +30021,89 @@ tr830:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 208;goto st844;}
+ {stack[top++] = 214;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 208;goto st846;}
+ {stack[top++] = 214;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 208;goto st848;}
+ {stack[top++] = 214;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 208;goto st880;}
+ {stack[top++] = 214;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 208;goto st885;}
+ {stack[top++] = 214;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 208;goto st890;}
+ {stack[top++] = 214;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 208;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 214;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 208;goto st899;}
+ {stack[top++] = 214;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 208;goto st901;}
+ {stack[top++] = 214;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 208;goto st956;}
+ {stack[top++] = 214;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 208;goto st967;}
+ {stack[top++] = 214;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 208;goto st984;}
+ {stack[top++] = 214;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 208;goto st995;}
+ {stack[top++] = 214;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 208;goto st1006;}
+ {stack[top++] = 214;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 208;goto st1019;}
+ {stack[top++] = 214;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 208;goto st1029;}
+ {stack[top++] = 214;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 208;goto st1068;}
+ {stack[top++] = 214;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 208;goto st1254;}
+ {stack[top++] = 214;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 208;goto st1257;}
+ {stack[top++] = 214;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 208;goto st1268;}
+ {stack[top++] = 214;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 208;goto st1270;}
+ {stack[top++] = 214;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 208;goto st1299;}
+ {stack[top++] = 214;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 208;goto st1312;}
+ {stack[top++] = 214;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 208;goto st1325;}
+ {stack[top++] = 214;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 208;goto st1331;}
+ {stack[top++] = 214;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 208;goto st1349;}
+ {stack[top++] = 214;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 208;goto st1344;}
+ {stack[top++] = 214;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 208;goto st1362;}
+ {stack[top++] = 214;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 208;goto st1368;}
+ {stack[top++] = 214;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 208;goto st1374;}
+ {stack[top++] = 214;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 208;goto st1382;}
+ {stack[top++] = 214;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 208;goto st1390;}
+ {stack[top++] = 214;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
@@ -29438,11 +30113,11 @@ tr830:
{
s->buffer_length = 0;
}
- goto st208;
-st208:
+ goto st214;
+st214:
if ( ++p == pe )
- goto _test_eof208;
-case 208:
+ goto _test_eof214;
+case 214:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -29456,32 +30131,32 @@ case 208:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr845;
- case 32: goto tr845;
- case 40: goto tr846;
- case 41: goto tr847;
- case 1802: goto tr848;
- case 1851: goto tr849;
- case 2058: goto tr848;
- case 2107: goto tr849;
+ case 9: goto tr863;
+ case 32: goto tr863;
+ case 40: goto tr864;
+ case 41: goto tr865;
+ case 1802: goto tr866;
+ case 1851: goto tr867;
+ case 2058: goto tr866;
+ case 2107: goto tr867;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr95;
+ goto tr97;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr95;
+ goto tr97;
} else
- goto tr95;
- goto tr83;
-tr850:
+ goto tr97;
+ goto tr85;
+tr868:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st209;
-tr845:
+ goto st215;
+tr863:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -29491,8 +30166,8 @@ tr845:
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st209;
-tr846:
+ goto st215;
+tr864:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -29500,7 +30175,7 @@ tr846:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -29509,8 +30184,8 @@ tr846:
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st209;
-tr847:
+ goto st215;
+tr865:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -29518,7 +30193,7 @@ tr847:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -29527,12 +30202,12 @@ tr847:
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st209;
-tr851:
+ goto st215;
+tr869:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -29541,12 +30216,12 @@ tr851:
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st209;
-tr852:
+ goto st215;
+tr870:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -29555,11 +30230,11 @@ tr852:
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st209;
-st209:
+ goto st215;
+st215:
if ( ++p == pe )
- goto _test_eof209;
-case 209:
+ goto _test_eof215;
+case 215:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -29573,25 +30248,25 @@ case 209:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr850;
- case 32: goto tr850;
- case 40: goto tr851;
- case 41: goto tr852;
- case 1802: goto tr96;
- case 1851: goto tr853;
- case 2058: goto tr96;
- case 2107: goto tr853;
+ case 9: goto tr868;
+ case 32: goto tr868;
+ case 40: goto tr869;
+ case 41: goto tr870;
+ case 1802: goto tr98;
+ case 1851: goto tr871;
+ case 2058: goto tr98;
+ case 2107: goto tr871;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr95;
+ goto tr97;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr95;
+ goto tr97;
} else
- goto tr95;
- goto tr89;
-tr831:
+ goto tr97;
+ goto tr91;
+tr849:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -29603,88 +30278,89 @@ tr831:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 1403;goto st844;}
+ {stack[top++] = 1451;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 1403;goto st846;}
+ {stack[top++] = 1451;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 1403;goto st848;}
+ {stack[top++] = 1451;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 1403;goto st880;}
+ {stack[top++] = 1451;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 1403;goto st885;}
+ {stack[top++] = 1451;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 1403;goto st890;}
+ {stack[top++] = 1451;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 1403;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 1451;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 1403;goto st899;}
+ {stack[top++] = 1451;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 1403;goto st901;}
+ {stack[top++] = 1451;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 1403;goto st956;}
+ {stack[top++] = 1451;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 1403;goto st967;}
+ {stack[top++] = 1451;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 1403;goto st984;}
+ {stack[top++] = 1451;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 1403;goto st995;}
+ {stack[top++] = 1451;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 1403;goto st1006;}
+ {stack[top++] = 1451;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 1403;goto st1019;}
+ {stack[top++] = 1451;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 1403;goto st1029;}
+ {stack[top++] = 1451;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 1403;goto st1068;}
+ {stack[top++] = 1451;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 1403;goto st1254;}
+ {stack[top++] = 1451;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 1403;goto st1257;}
+ {stack[top++] = 1451;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 1403;goto st1268;}
+ {stack[top++] = 1451;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 1403;goto st1270;}
+ {stack[top++] = 1451;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 1403;goto st1299;}
+ {stack[top++] = 1451;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 1403;goto st1312;}
+ {stack[top++] = 1451;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 1403;goto st1325;}
+ {stack[top++] = 1451;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 1403;goto st1331;}
+ {stack[top++] = 1451;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 1403;goto st1349;}
+ {stack[top++] = 1451;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 1403;goto st1344;}
+ {stack[top++] = 1451;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 1403;goto st1362;}
+ {stack[top++] = 1451;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 1403;goto st1368;}
+ {stack[top++] = 1451;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 1403;goto st1374;}
+ {stack[top++] = 1451;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 1403;goto st1382;}
+ {stack[top++] = 1451;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 1403;goto st1390;}
+ {stack[top++] = 1451;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
@@ -29694,7 +30370,7 @@ tr831:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -29707,16 +30383,16 @@ tr831:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1403; goto _out;}
+ {p++; cs = 1451; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1403; goto _out;}
+ p--; {p++; cs = 1451; goto _out;}
}
}
- goto st1403;
-tr837:
+ goto st1451;
+tr855:
{
s->line_counter++;
}
@@ -29724,94 +30400,95 @@ tr837:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 1403;goto st844;}
+ {stack[top++] = 1451;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 1403;goto st846;}
+ {stack[top++] = 1451;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 1403;goto st848;}
+ {stack[top++] = 1451;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 1403;goto st880;}
+ {stack[top++] = 1451;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 1403;goto st885;}
+ {stack[top++] = 1451;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 1403;goto st890;}
+ {stack[top++] = 1451;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 1403;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 1451;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 1403;goto st899;}
+ {stack[top++] = 1451;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 1403;goto st901;}
+ {stack[top++] = 1451;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 1403;goto st956;}
+ {stack[top++] = 1451;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 1403;goto st967;}
+ {stack[top++] = 1451;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 1403;goto st984;}
+ {stack[top++] = 1451;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 1403;goto st995;}
+ {stack[top++] = 1451;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 1403;goto st1006;}
+ {stack[top++] = 1451;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 1403;goto st1019;}
+ {stack[top++] = 1451;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 1403;goto st1029;}
+ {stack[top++] = 1451;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 1403;goto st1068;}
+ {stack[top++] = 1451;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 1403;goto st1254;}
+ {stack[top++] = 1451;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 1403;goto st1257;}
+ {stack[top++] = 1451;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 1403;goto st1268;}
+ {stack[top++] = 1451;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 1403;goto st1270;}
+ {stack[top++] = 1451;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 1403;goto st1299;}
+ {stack[top++] = 1451;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 1403;goto st1312;}
+ {stack[top++] = 1451;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 1403;goto st1325;}
+ {stack[top++] = 1451;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 1403;goto st1331;}
+ {stack[top++] = 1451;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 1403;goto st1349;}
+ {stack[top++] = 1451;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 1403;goto st1344;}
+ {stack[top++] = 1451;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 1403;goto st1362;}
+ {stack[top++] = 1451;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 1403;goto st1368;}
+ {stack[top++] = 1451;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 1403;goto st1374;}
+ {stack[top++] = 1451;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 1403;goto st1382;}
+ {stack[top++] = 1451;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 1403;goto st1390;}
+ {stack[top++] = 1451;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -29824,19 +30501,19 @@ tr837:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1403; goto _out;}
+ {p++; cs = 1451; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1403; goto _out;}
+ p--; {p++; cs = 1451; goto _out;}
}
}
- goto st1403;
-st1403:
+ goto st1451;
+st1451:
if ( ++p == pe )
- goto _test_eof1403;
-case 1403:
+ goto _test_eof1451;
+case 1451:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -29854,77 +30531,77 @@ case 1403:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr4288;
- case 32: goto tr4288;
- case 36: goto tr4216;
- case 40: goto tr4289;
- case 41: goto tr4290;
- case 42: goto tr4219;
- case 58: goto tr73;
- case 92: goto tr4220;
- case 95: goto tr4219;
- case 2826: goto tr87;
- case 2875: goto tr88;
- case 3082: goto tr4286;
- case 3131: goto tr4291;
- case 3338: goto tr105;
- case 3387: goto tr106;
- case 3594: goto tr4286;
- case 3643: goto tr4292;
+ case 9: goto tr4370;
+ case 32: goto tr4370;
+ case 36: goto tr4296;
+ case 40: goto tr4371;
+ case 41: goto tr4372;
+ case 42: goto tr4299;
+ case 58: goto tr75;
+ case 92: goto tr4300;
+ case 95: goto tr4299;
+ case 2826: goto tr89;
+ case 2875: goto tr90;
+ case 3082: goto tr4368;
+ case 3131: goto tr4373;
+ case 3338: goto tr107;
+ case 3387: goto tr108;
+ case 3594: goto tr4368;
+ case 3643: goto tr4374;
}
if ( _widec < 60 ) {
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr73;
+ goto tr75;
} else if ( _widec > 44 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr4219;
+ goto tr4299;
} else
- goto tr73;
+ goto tr75;
} else if ( _widec > 63 ) {
if ( _widec < 91 ) {
if ( 64 <= _widec && _widec <= 90 )
- goto tr4219;
+ goto tr4299;
} else if ( _widec > 96 ) {
if ( _widec > 122 ) {
if ( 123 <= _widec )
- goto tr73;
+ goto tr75;
} else if ( _widec >= 97 )
- goto tr4219;
+ goto tr4299;
} else
- goto tr73;
+ goto tr75;
} else
- goto tr73;
- goto tr871;
-tr855:
+ goto tr75;
+ goto tr889;
+tr873:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st210;
-tr856:
+ goto st216;
+tr874:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st210;
-tr985:
+ goto st216;
+tr1003:
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st210;
-tr986:
+ goto st216;
+tr1004:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -29932,12 +30609,12 @@ tr986:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st210;
-tr987:
+ goto st216;
+tr1005:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -29945,8 +30622,8 @@ tr987:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st210;
-tr4288:
+ goto st216;
+tr4370:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -29954,15 +30631,15 @@ tr4288:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st210;
-tr4289:
+ goto st216;
+tr4371:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -29973,15 +30650,15 @@ tr4289:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st210;
-tr4290:
+ goto st216;
+tr4372:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -29992,14 +30669,14 @@ tr4290:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st210;
-st210:
+ goto st216;
+st216:
if ( ++p == pe )
- goto _test_eof210;
-case 210:
+ goto _test_eof216;
+case 216:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -30017,68 +30694,70 @@ case 210:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st210;
- case 32: goto st210;
- case 40: goto tr855;
- case 41: goto tr856;
- case 58: goto tr73;
- case 65: goto tr122;
- case 67: goto tr123;
- case 68: goto tr124;
- case 69: goto tr125;
- case 72: goto tr126;
- case 73: goto tr127;
- case 75: goto tr128;
- case 76: goto tr129;
- case 77: goto tr130;
- case 78: goto tr131;
- case 79: goto tr132;
- case 80: goto tr133;
- case 82: goto tr134;
- case 83: goto tr135;
- case 84: goto tr136;
- case 85: goto tr137;
- case 90: goto tr138;
- case 92: goto tr78;
- case 97: goto tr122;
- case 99: goto tr123;
- case 100: goto tr124;
- case 101: goto tr125;
- case 104: goto tr126;
- case 105: goto tr127;
- case 107: goto tr128;
- case 108: goto tr129;
- case 109: goto tr130;
- case 110: goto tr131;
- case 111: goto tr132;
- case 112: goto tr133;
- case 114: goto tr134;
- case 115: goto tr135;
- case 116: goto tr136;
- case 117: goto tr137;
- case 122: goto tr138;
- case 2826: goto tr93;
- case 2875: goto tr94;
- case 3082: goto tr841;
- case 3131: goto tr857;
- case 3338: goto tr112;
- case 3387: goto tr113;
- case 3594: goto tr841;
- case 3643: goto tr858;
+ case 9: goto st216;
+ case 32: goto st216;
+ case 40: goto tr873;
+ case 41: goto tr874;
+ case 58: goto tr75;
+ case 65: goto tr124;
+ case 67: goto tr125;
+ case 68: goto tr126;
+ case 69: goto tr127;
+ case 72: goto tr128;
+ case 73: goto tr129;
+ case 75: goto tr130;
+ case 76: goto tr131;
+ case 77: goto tr132;
+ case 78: goto tr133;
+ case 79: goto tr134;
+ case 80: goto tr135;
+ case 82: goto tr136;
+ case 83: goto tr137;
+ case 84: goto tr138;
+ case 85: goto tr139;
+ case 87: goto tr140;
+ case 90: goto tr141;
+ case 92: goto tr80;
+ case 97: goto tr124;
+ case 99: goto tr125;
+ case 100: goto tr126;
+ case 101: goto tr127;
+ case 104: goto tr128;
+ case 105: goto tr129;
+ case 107: goto tr130;
+ case 108: goto tr131;
+ case 109: goto tr132;
+ case 110: goto tr133;
+ case 111: goto tr134;
+ case 112: goto tr135;
+ case 114: goto tr136;
+ case 115: goto tr137;
+ case 116: goto tr138;
+ case 117: goto tr139;
+ case 119: goto tr140;
+ case 122: goto tr141;
+ case 2826: goto tr95;
+ case 2875: goto tr96;
+ case 3082: goto tr859;
+ case 3131: goto tr875;
+ case 3338: goto tr114;
+ case 3387: goto tr115;
+ case 3594: goto tr859;
+ case 3643: goto tr876;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr73;
+ goto tr75;
} else if ( _widec > 47 ) {
if ( _widec > 57 ) {
if ( 60 <= _widec )
- goto tr73;
+ goto tr75;
} else if ( _widec >= 48 )
- goto tr121;
+ goto tr123;
} else
- goto tr73;
- goto tr118;
-tr123:
+ goto tr75;
+ goto tr120;
+tr125:
{
s->r_class = s->default_class;
}
@@ -30089,95 +30768,96 @@ tr123:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 211;goto st844;}
+ {stack[top++] = 217;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 211;goto st846;}
+ {stack[top++] = 217;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 211;goto st848;}
+ {stack[top++] = 217;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 211;goto st880;}
+ {stack[top++] = 217;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 211;goto st885;}
+ {stack[top++] = 217;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 211;goto st890;}
+ {stack[top++] = 217;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 211;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 217;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 211;goto st899;}
+ {stack[top++] = 217;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 211;goto st901;}
+ {stack[top++] = 217;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 211;goto st956;}
+ {stack[top++] = 217;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 211;goto st967;}
+ {stack[top++] = 217;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 211;goto st984;}
+ {stack[top++] = 217;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 211;goto st995;}
+ {stack[top++] = 217;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 211;goto st1006;}
+ {stack[top++] = 217;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 211;goto st1019;}
+ {stack[top++] = 217;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 211;goto st1029;}
+ {stack[top++] = 217;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 211;goto st1068;}
+ {stack[top++] = 217;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 211;goto st1254;}
+ {stack[top++] = 217;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 211;goto st1257;}
+ {stack[top++] = 217;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 211;goto st1268;}
+ {stack[top++] = 217;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 211;goto st1270;}
+ {stack[top++] = 217;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 211;goto st1299;}
+ {stack[top++] = 217;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 211;goto st1312;}
+ {stack[top++] = 217;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 211;goto st1325;}
+ {stack[top++] = 217;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 211;goto st1331;}
+ {stack[top++] = 217;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 211;goto st1349;}
+ {stack[top++] = 217;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 211;goto st1344;}
+ {stack[top++] = 217;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 211;goto st1362;}
+ {stack[top++] = 217;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 211;goto st1368;}
+ {stack[top++] = 217;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 211;goto st1374;}
+ {stack[top++] = 217;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 211;goto st1382;}
+ {stack[top++] = 217;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 211;goto st1390;}
+ {stack[top++] = 217;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st211;
-st211:
+ goto st217;
+st217:
if ( ++p == pe )
- goto _test_eof211;
-case 211:
+ goto _test_eof217;
+case 217:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -30191,10 +30871,10 @@ case 211:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 65: goto st18;
case 68: goto st22;
case 69: goto st29;
@@ -30205,13 +30885,13 @@ case 211:
case 101: goto st29;
case 110: goto st32;
case 115: goto st36;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr124:
+ goto tr841;
+tr126:
{
s->r_class = s->default_class;
}
@@ -30222,95 +30902,96 @@ tr124:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 212;goto st844;}
+ {stack[top++] = 218;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 212;goto st846;}
+ {stack[top++] = 218;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 212;goto st848;}
+ {stack[top++] = 218;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 212;goto st880;}
+ {stack[top++] = 218;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 212;goto st885;}
+ {stack[top++] = 218;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 212;goto st890;}
+ {stack[top++] = 218;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 212;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 218;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 212;goto st899;}
+ {stack[top++] = 218;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 212;goto st901;}
+ {stack[top++] = 218;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 212;goto st956;}
+ {stack[top++] = 218;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 212;goto st967;}
+ {stack[top++] = 218;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 212;goto st984;}
+ {stack[top++] = 218;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 212;goto st995;}
+ {stack[top++] = 218;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 212;goto st1006;}
+ {stack[top++] = 218;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 212;goto st1019;}
+ {stack[top++] = 218;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 212;goto st1029;}
+ {stack[top++] = 218;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 212;goto st1068;}
+ {stack[top++] = 218;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 212;goto st1254;}
+ {stack[top++] = 218;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 212;goto st1257;}
+ {stack[top++] = 218;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 212;goto st1268;}
+ {stack[top++] = 218;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 212;goto st1270;}
+ {stack[top++] = 218;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 212;goto st1299;}
+ {stack[top++] = 218;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 212;goto st1312;}
+ {stack[top++] = 218;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 212;goto st1325;}
+ {stack[top++] = 218;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 212;goto st1331;}
+ {stack[top++] = 218;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 212;goto st1349;}
+ {stack[top++] = 218;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 212;goto st1344;}
+ {stack[top++] = 218;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 212;goto st1362;}
+ {stack[top++] = 218;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 212;goto st1368;}
+ {stack[top++] = 218;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 212;goto st1374;}
+ {stack[top++] = 218;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 212;goto st1382;}
+ {stack[top++] = 218;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 212;goto st1390;}
+ {stack[top++] = 218;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st212;
-st212:
+ goto st218;
+st218:
if ( ++p == pe )
- goto _test_eof212;
-case 212:
+ goto _test_eof218;
+case 218:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -30324,23 +31005,23 @@ case 212:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 72: goto st41;
case 78: goto st45;
case 83: goto st53;
case 104: goto st41;
case 110: goto st45;
case 115: goto st53;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr125:
+ goto tr841;
+tr127:
{
s->r_class = s->default_class;
}
@@ -30351,95 +31032,96 @@ tr125:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 213;goto st844;}
+ {stack[top++] = 219;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 213;goto st846;}
+ {stack[top++] = 219;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 213;goto st848;}
+ {stack[top++] = 219;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 213;goto st880;}
+ {stack[top++] = 219;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 213;goto st885;}
+ {stack[top++] = 219;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 213;goto st890;}
+ {stack[top++] = 219;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 213;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 219;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 213;goto st899;}
+ {stack[top++] = 219;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 213;goto st901;}
+ {stack[top++] = 219;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 213;goto st956;}
+ {stack[top++] = 219;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 213;goto st967;}
+ {stack[top++] = 219;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 213;goto st984;}
+ {stack[top++] = 219;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 213;goto st995;}
+ {stack[top++] = 219;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 213;goto st1006;}
+ {stack[top++] = 219;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 213;goto st1019;}
+ {stack[top++] = 219;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 213;goto st1029;}
+ {stack[top++] = 219;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 213;goto st1068;}
+ {stack[top++] = 219;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 213;goto st1254;}
+ {stack[top++] = 219;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 213;goto st1257;}
+ {stack[top++] = 219;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 213;goto st1268;}
+ {stack[top++] = 219;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 213;goto st1270;}
+ {stack[top++] = 219;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 213;goto st1299;}
+ {stack[top++] = 219;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 213;goto st1312;}
+ {stack[top++] = 219;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 213;goto st1325;}
+ {stack[top++] = 219;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 213;goto st1331;}
+ {stack[top++] = 219;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 213;goto st1349;}
+ {stack[top++] = 219;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 213;goto st1344;}
+ {stack[top++] = 219;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 213;goto st1362;}
+ {stack[top++] = 219;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 213;goto st1368;}
+ {stack[top++] = 219;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 213;goto st1374;}
+ {stack[top++] = 219;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 213;goto st1382;}
+ {stack[top++] = 219;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 213;goto st1390;}
+ {stack[top++] = 219;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st213;
-st213:
+ goto st219;
+st219:
if ( ++p == pe )
- goto _test_eof213;
-case 213:
+ goto _test_eof219;
+case 219:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -30453,19 +31135,19 @@ case 213:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 85: goto st55;
case 117: goto st55;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr126:
+ goto tr841;
+tr128:
{
s->r_class = s->default_class;
}
@@ -30476,95 +31158,96 @@ tr126:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 214;goto st844;}
+ {stack[top++] = 220;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 214;goto st846;}
+ {stack[top++] = 220;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 214;goto st848;}
+ {stack[top++] = 220;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 214;goto st880;}
+ {stack[top++] = 220;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 214;goto st885;}
+ {stack[top++] = 220;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 214;goto st890;}
+ {stack[top++] = 220;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 214;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 220;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 214;goto st899;}
+ {stack[top++] = 220;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 214;goto st901;}
+ {stack[top++] = 220;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 214;goto st956;}
+ {stack[top++] = 220;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 214;goto st967;}
+ {stack[top++] = 220;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 214;goto st984;}
+ {stack[top++] = 220;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 214;goto st995;}
+ {stack[top++] = 220;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 214;goto st1006;}
+ {stack[top++] = 220;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 214;goto st1019;}
+ {stack[top++] = 220;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 214;goto st1029;}
+ {stack[top++] = 220;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 214;goto st1068;}
+ {stack[top++] = 220;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 214;goto st1254;}
+ {stack[top++] = 220;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 214;goto st1257;}
+ {stack[top++] = 220;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 214;goto st1268;}
+ {stack[top++] = 220;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 214;goto st1270;}
+ {stack[top++] = 220;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 214;goto st1299;}
+ {stack[top++] = 220;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 214;goto st1312;}
+ {stack[top++] = 220;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 214;goto st1325;}
+ {stack[top++] = 220;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 214;goto st1331;}
+ {stack[top++] = 220;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 214;goto st1349;}
+ {stack[top++] = 220;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 214;goto st1344;}
+ {stack[top++] = 220;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 214;goto st1362;}
+ {stack[top++] = 220;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 214;goto st1368;}
+ {stack[top++] = 220;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 214;goto st1374;}
+ {stack[top++] = 220;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 214;goto st1382;}
+ {stack[top++] = 220;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 214;goto st1390;}
+ {stack[top++] = 220;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st214;
-st214:
+ goto st220;
+st220:
if ( ++p == pe )
- goto _test_eof214;
-case 214:
+ goto _test_eof220;
+case 220:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -30578,21 +31261,21 @@ case 214:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 73: goto st62;
case 84: goto st66;
case 105: goto st62;
case 116: goto st66;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr127:
+ goto tr841;
+tr129:
{
s->r_class = s->default_class;
}
@@ -30603,95 +31286,96 @@ tr127:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 215;goto st844;}
+ {stack[top++] = 221;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 215;goto st846;}
+ {stack[top++] = 221;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 215;goto st848;}
+ {stack[top++] = 221;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 215;goto st880;}
+ {stack[top++] = 221;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 215;goto st885;}
+ {stack[top++] = 221;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 215;goto st890;}
+ {stack[top++] = 221;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 215;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 221;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 215;goto st899;}
+ {stack[top++] = 221;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 215;goto st901;}
+ {stack[top++] = 221;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 215;goto st956;}
+ {stack[top++] = 221;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 215;goto st967;}
+ {stack[top++] = 221;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 215;goto st984;}
+ {stack[top++] = 221;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 215;goto st995;}
+ {stack[top++] = 221;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 215;goto st1006;}
+ {stack[top++] = 221;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 215;goto st1019;}
+ {stack[top++] = 221;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 215;goto st1029;}
+ {stack[top++] = 221;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 215;goto st1068;}
+ {stack[top++] = 221;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 215;goto st1254;}
+ {stack[top++] = 221;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 215;goto st1257;}
+ {stack[top++] = 221;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 215;goto st1268;}
+ {stack[top++] = 221;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 215;goto st1270;}
+ {stack[top++] = 221;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 215;goto st1299;}
+ {stack[top++] = 221;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 215;goto st1312;}
+ {stack[top++] = 221;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 215;goto st1325;}
+ {stack[top++] = 221;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 215;goto st1331;}
+ {stack[top++] = 221;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 215;goto st1349;}
+ {stack[top++] = 221;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 215;goto st1344;}
+ {stack[top++] = 221;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 215;goto st1362;}
+ {stack[top++] = 221;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 215;goto st1368;}
+ {stack[top++] = 221;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 215;goto st1374;}
+ {stack[top++] = 221;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 215;goto st1382;}
+ {stack[top++] = 221;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 215;goto st1390;}
+ {stack[top++] = 221;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st215;
-st215:
+ goto st221;
+st221:
if ( ++p == pe )
- goto _test_eof215;
-case 215:
+ goto _test_eof221;
+case 221:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -30705,21 +31389,21 @@ case 215:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
- case 78: goto st176;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
+ case 78: goto st182;
case 80: goto st74;
- case 110: goto st176;
+ case 110: goto st182;
case 112: goto st74;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr128:
+ goto tr841;
+tr130:
{
s->r_class = s->default_class;
}
@@ -30730,95 +31414,96 @@ tr128:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 216;goto st844;}
+ {stack[top++] = 222;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 216;goto st846;}
+ {stack[top++] = 222;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 216;goto st848;}
+ {stack[top++] = 222;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 216;goto st880;}
+ {stack[top++] = 222;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 216;goto st885;}
+ {stack[top++] = 222;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 216;goto st890;}
+ {stack[top++] = 222;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 216;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 222;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 216;goto st899;}
+ {stack[top++] = 222;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 216;goto st901;}
+ {stack[top++] = 222;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 216;goto st956;}
+ {stack[top++] = 222;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 216;goto st967;}
+ {stack[top++] = 222;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 216;goto st984;}
+ {stack[top++] = 222;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 216;goto st995;}
+ {stack[top++] = 222;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 216;goto st1006;}
+ {stack[top++] = 222;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 216;goto st1019;}
+ {stack[top++] = 222;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 216;goto st1029;}
+ {stack[top++] = 222;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 216;goto st1068;}
+ {stack[top++] = 222;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 216;goto st1254;}
+ {stack[top++] = 222;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 216;goto st1257;}
+ {stack[top++] = 222;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 216;goto st1268;}
+ {stack[top++] = 222;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 216;goto st1270;}
+ {stack[top++] = 222;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 216;goto st1299;}
+ {stack[top++] = 222;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 216;goto st1312;}
+ {stack[top++] = 222;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 216;goto st1325;}
+ {stack[top++] = 222;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 216;goto st1331;}
+ {stack[top++] = 222;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 216;goto st1349;}
+ {stack[top++] = 222;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 216;goto st1344;}
+ {stack[top++] = 222;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 216;goto st1362;}
+ {stack[top++] = 222;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 216;goto st1368;}
+ {stack[top++] = 222;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 216;goto st1374;}
+ {stack[top++] = 222;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 216;goto st1382;}
+ {stack[top++] = 222;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 216;goto st1390;}
+ {stack[top++] = 222;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st216;
-st216:
+ goto st222;
+st222:
if ( ++p == pe )
- goto _test_eof216;
-case 216:
+ goto _test_eof222;
+case 222:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -30832,21 +31517,21 @@ case 216:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 69: goto st82;
case 88: goto st84;
case 101: goto st82;
case 120: goto st84;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr129:
+ goto tr841;
+tr131:
{
s->r_class = s->default_class;
}
@@ -30857,95 +31542,96 @@ tr129:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 217;goto st844;}
+ {stack[top++] = 223;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 217;goto st846;}
+ {stack[top++] = 223;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 217;goto st848;}
+ {stack[top++] = 223;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 217;goto st880;}
+ {stack[top++] = 223;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 217;goto st885;}
+ {stack[top++] = 223;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 217;goto st890;}
+ {stack[top++] = 223;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 217;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 223;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 217;goto st899;}
+ {stack[top++] = 223;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 217;goto st901;}
+ {stack[top++] = 223;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 217;goto st956;}
+ {stack[top++] = 223;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 217;goto st967;}
+ {stack[top++] = 223;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 217;goto st984;}
+ {stack[top++] = 223;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 217;goto st995;}
+ {stack[top++] = 223;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 217;goto st1006;}
+ {stack[top++] = 223;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 217;goto st1019;}
+ {stack[top++] = 223;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 217;goto st1029;}
+ {stack[top++] = 223;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 217;goto st1068;}
+ {stack[top++] = 223;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 217;goto st1254;}
+ {stack[top++] = 223;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 217;goto st1257;}
+ {stack[top++] = 223;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 217;goto st1268;}
+ {stack[top++] = 223;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 217;goto st1270;}
+ {stack[top++] = 223;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 217;goto st1299;}
+ {stack[top++] = 223;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 217;goto st1312;}
+ {stack[top++] = 223;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 217;goto st1325;}
+ {stack[top++] = 223;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 217;goto st1331;}
+ {stack[top++] = 223;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 217;goto st1349;}
+ {stack[top++] = 223;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 217;goto st1344;}
+ {stack[top++] = 223;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 217;goto st1362;}
+ {stack[top++] = 223;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 217;goto st1368;}
+ {stack[top++] = 223;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 217;goto st1374;}
+ {stack[top++] = 223;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 217;goto st1382;}
+ {stack[top++] = 223;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 217;goto st1390;}
+ {stack[top++] = 223;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st217;
-st217:
+ goto st223;
+st223:
if ( ++p == pe )
- goto _test_eof217;
-case 217:
+ goto _test_eof223;
+case 223:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -30959,23 +31645,23 @@ case 217:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 51: goto st86;
case 54: goto st88;
case 79: goto st90;
case 80: goto st92;
case 111: goto st90;
case 112: goto st92;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr130:
+ goto tr841;
+tr132:
{
s->r_class = s->default_class;
}
@@ -30986,95 +31672,96 @@ tr130:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 218;goto st844;}
+ {stack[top++] = 224;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 218;goto st846;}
+ {stack[top++] = 224;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 218;goto st848;}
+ {stack[top++] = 224;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 218;goto st880;}
+ {stack[top++] = 224;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 218;goto st885;}
+ {stack[top++] = 224;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 218;goto st890;}
+ {stack[top++] = 224;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 218;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 224;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 218;goto st899;}
+ {stack[top++] = 224;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 218;goto st901;}
+ {stack[top++] = 224;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 218;goto st956;}
+ {stack[top++] = 224;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 218;goto st967;}
+ {stack[top++] = 224;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 218;goto st984;}
+ {stack[top++] = 224;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 218;goto st995;}
+ {stack[top++] = 224;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 218;goto st1006;}
+ {stack[top++] = 224;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 218;goto st1019;}
+ {stack[top++] = 224;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 218;goto st1029;}
+ {stack[top++] = 224;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 218;goto st1068;}
+ {stack[top++] = 224;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 218;goto st1254;}
+ {stack[top++] = 224;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 218;goto st1257;}
+ {stack[top++] = 224;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 218;goto st1268;}
+ {stack[top++] = 224;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 218;goto st1270;}
+ {stack[top++] = 224;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 218;goto st1299;}
+ {stack[top++] = 224;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 218;goto st1312;}
+ {stack[top++] = 224;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 218;goto st1325;}
+ {stack[top++] = 224;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 218;goto st1331;}
+ {stack[top++] = 224;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 218;goto st1349;}
+ {stack[top++] = 224;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 218;goto st1344;}
+ {stack[top++] = 224;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 218;goto st1362;}
+ {stack[top++] = 224;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 218;goto st1368;}
+ {stack[top++] = 224;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 218;goto st1374;}
+ {stack[top++] = 224;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 218;goto st1382;}
+ {stack[top++] = 224;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 218;goto st1390;}
+ {stack[top++] = 224;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st218;
-st218:
+ goto st224;
+st224:
if ( ++p == pe )
- goto _test_eof218;
-case 218:
+ goto _test_eof224;
+case 224:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -31088,21 +31775,21 @@ case 218:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 73: goto st94;
case 88: goto st98;
case 105: goto st94;
case 120: goto st98;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr131:
+ goto tr841;
+tr133:
{
s->r_class = s->default_class;
}
@@ -31113,95 +31800,96 @@ tr131:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 219;goto st844;}
+ {stack[top++] = 225;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 219;goto st846;}
+ {stack[top++] = 225;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 219;goto st848;}
+ {stack[top++] = 225;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 219;goto st880;}
+ {stack[top++] = 225;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 219;goto st885;}
+ {stack[top++] = 225;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 219;goto st890;}
+ {stack[top++] = 225;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 219;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 225;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 219;goto st899;}
+ {stack[top++] = 225;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 219;goto st901;}
+ {stack[top++] = 225;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 219;goto st956;}
+ {stack[top++] = 225;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 219;goto st967;}
+ {stack[top++] = 225;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 219;goto st984;}
+ {stack[top++] = 225;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 219;goto st995;}
+ {stack[top++] = 225;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 219;goto st1006;}
+ {stack[top++] = 225;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 219;goto st1019;}
+ {stack[top++] = 225;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 219;goto st1029;}
+ {stack[top++] = 225;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 219;goto st1068;}
+ {stack[top++] = 225;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 219;goto st1254;}
+ {stack[top++] = 225;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 219;goto st1257;}
+ {stack[top++] = 225;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 219;goto st1268;}
+ {stack[top++] = 225;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 219;goto st1270;}
+ {stack[top++] = 225;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 219;goto st1299;}
+ {stack[top++] = 225;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 219;goto st1312;}
+ {stack[top++] = 225;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 219;goto st1325;}
+ {stack[top++] = 225;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 219;goto st1331;}
+ {stack[top++] = 225;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 219;goto st1349;}
+ {stack[top++] = 225;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 219;goto st1344;}
+ {stack[top++] = 225;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 219;goto st1362;}
+ {stack[top++] = 225;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 219;goto st1368;}
+ {stack[top++] = 225;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 219;goto st1374;}
+ {stack[top++] = 225;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 219;goto st1382;}
+ {stack[top++] = 225;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 219;goto st1390;}
+ {stack[top++] = 225;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st219;
-st219:
+ goto st225;
+st225:
if ( ++p == pe )
- goto _test_eof219;
-case 219:
+ goto _test_eof225;
+case 225:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -31215,23 +31903,23 @@ case 219:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 65: goto st100;
case 73: goto st104;
case 83: goto st106;
case 97: goto st100;
case 105: goto st104;
case 115: goto st106;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr132:
+ goto tr841;
+tr134:
{
s->r_class = s->default_class;
}
@@ -31242,95 +31930,96 @@ tr132:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 220;goto st844;}
+ {stack[top++] = 226;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 220;goto st846;}
+ {stack[top++] = 226;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 220;goto st848;}
+ {stack[top++] = 226;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 220;goto st880;}
+ {stack[top++] = 226;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 220;goto st885;}
+ {stack[top++] = 226;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 220;goto st890;}
+ {stack[top++] = 226;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 220;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 226;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 220;goto st899;}
+ {stack[top++] = 226;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 220;goto st901;}
+ {stack[top++] = 226;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 220;goto st956;}
+ {stack[top++] = 226;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 220;goto st967;}
+ {stack[top++] = 226;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 220;goto st984;}
+ {stack[top++] = 226;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 220;goto st995;}
+ {stack[top++] = 226;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 220;goto st1006;}
+ {stack[top++] = 226;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 220;goto st1019;}
+ {stack[top++] = 226;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 220;goto st1029;}
+ {stack[top++] = 226;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 220;goto st1068;}
+ {stack[top++] = 226;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 220;goto st1254;}
+ {stack[top++] = 226;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 220;goto st1257;}
+ {stack[top++] = 226;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 220;goto st1268;}
+ {stack[top++] = 226;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 220;goto st1270;}
+ {stack[top++] = 226;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 220;goto st1299;}
+ {stack[top++] = 226;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 220;goto st1312;}
+ {stack[top++] = 226;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 220;goto st1325;}
+ {stack[top++] = 226;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 220;goto st1331;}
+ {stack[top++] = 226;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 220;goto st1349;}
+ {stack[top++] = 226;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 220;goto st1344;}
+ {stack[top++] = 226;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 220;goto st1362;}
+ {stack[top++] = 226;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 220;goto st1368;}
+ {stack[top++] = 226;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 220;goto st1374;}
+ {stack[top++] = 226;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 220;goto st1382;}
+ {stack[top++] = 226;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 220;goto st1390;}
+ {stack[top++] = 226;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st220;
-st220:
+ goto st226;
+st226:
if ( ++p == pe )
- goto _test_eof220;
-case 220:
+ goto _test_eof226;
+case 226:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -31344,19 +32033,19 @@ case 220:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 80: goto st116;
case 112: goto st116;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr133:
+ goto tr841;
+tr135:
{
s->r_class = s->default_class;
}
@@ -31367,95 +32056,96 @@ tr133:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 221;goto st844;}
+ {stack[top++] = 227;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 221;goto st846;}
+ {stack[top++] = 227;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 221;goto st848;}
+ {stack[top++] = 227;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 221;goto st880;}
+ {stack[top++] = 227;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 221;goto st885;}
+ {stack[top++] = 227;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 221;goto st890;}
+ {stack[top++] = 227;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 221;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 227;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 221;goto st899;}
+ {stack[top++] = 227;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 221;goto st901;}
+ {stack[top++] = 227;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 221;goto st956;}
+ {stack[top++] = 227;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 221;goto st967;}
+ {stack[top++] = 227;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 221;goto st984;}
+ {stack[top++] = 227;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 221;goto st995;}
+ {stack[top++] = 227;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 221;goto st1006;}
+ {stack[top++] = 227;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 221;goto st1019;}
+ {stack[top++] = 227;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 221;goto st1029;}
+ {stack[top++] = 227;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 221;goto st1068;}
+ {stack[top++] = 227;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 221;goto st1254;}
+ {stack[top++] = 227;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 221;goto st1257;}
+ {stack[top++] = 227;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 221;goto st1268;}
+ {stack[top++] = 227;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 221;goto st1270;}
+ {stack[top++] = 227;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 221;goto st1299;}
+ {stack[top++] = 227;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 221;goto st1312;}
+ {stack[top++] = 227;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 221;goto st1325;}
+ {stack[top++] = 227;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 221;goto st1331;}
+ {stack[top++] = 227;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 221;goto st1349;}
+ {stack[top++] = 227;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 221;goto st1344;}
+ {stack[top++] = 227;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 221;goto st1362;}
+ {stack[top++] = 227;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 221;goto st1368;}
+ {stack[top++] = 227;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 221;goto st1374;}
+ {stack[top++] = 227;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 221;goto st1382;}
+ {stack[top++] = 227;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 221;goto st1390;}
+ {stack[top++] = 227;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st221;
-st221:
+ goto st227;
+st227:
if ( ++p == pe )
- goto _test_eof221;
-case 221:
+ goto _test_eof227;
+case 227:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -31469,19 +32159,19 @@ case 221:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 84: goto st126;
case 116: goto st126;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr134:
+ goto tr841;
+tr136:
{
s->r_class = s->default_class;
}
@@ -31492,95 +32182,96 @@ tr134:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 222;goto st844;}
+ {stack[top++] = 228;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 222;goto st846;}
+ {stack[top++] = 228;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 222;goto st848;}
+ {stack[top++] = 228;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 222;goto st880;}
+ {stack[top++] = 228;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 222;goto st885;}
+ {stack[top++] = 228;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 222;goto st890;}
+ {stack[top++] = 228;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 222;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 228;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 222;goto st899;}
+ {stack[top++] = 228;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 222;goto st901;}
+ {stack[top++] = 228;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 222;goto st956;}
+ {stack[top++] = 228;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 222;goto st967;}
+ {stack[top++] = 228;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 222;goto st984;}
+ {stack[top++] = 228;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 222;goto st995;}
+ {stack[top++] = 228;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 222;goto st1006;}
+ {stack[top++] = 228;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 222;goto st1019;}
+ {stack[top++] = 228;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 222;goto st1029;}
+ {stack[top++] = 228;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 222;goto st1068;}
+ {stack[top++] = 228;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 222;goto st1254;}
+ {stack[top++] = 228;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 222;goto st1257;}
+ {stack[top++] = 228;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 222;goto st1268;}
+ {stack[top++] = 228;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 222;goto st1270;}
+ {stack[top++] = 228;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 222;goto st1299;}
+ {stack[top++] = 228;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 222;goto st1312;}
+ {stack[top++] = 228;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 222;goto st1325;}
+ {stack[top++] = 228;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 222;goto st1331;}
+ {stack[top++] = 228;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 222;goto st1349;}
+ {stack[top++] = 228;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 222;goto st1344;}
+ {stack[top++] = 228;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 222;goto st1362;}
+ {stack[top++] = 228;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 222;goto st1368;}
+ {stack[top++] = 228;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 222;goto st1374;}
+ {stack[top++] = 228;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 222;goto st1382;}
+ {stack[top++] = 228;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 222;goto st1390;}
+ {stack[top++] = 228;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st222;
-st222:
+ goto st228;
+st228:
if ( ++p == pe )
- goto _test_eof222;
-case 222:
+ goto _test_eof228;
+case 228:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -31594,23 +32285,23 @@ case 222:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 80: goto st129;
case 82: goto st130;
case 84: goto st134;
case 112: goto st129;
case 114: goto st130;
case 116: goto st134;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr135:
+ goto tr841;
+tr137:
{
s->r_class = s->default_class;
}
@@ -31621,95 +32312,96 @@ tr135:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 223;goto st844;}
+ {stack[top++] = 229;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 223;goto st846;}
+ {stack[top++] = 229;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 223;goto st848;}
+ {stack[top++] = 229;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 223;goto st880;}
+ {stack[top++] = 229;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 223;goto st885;}
+ {stack[top++] = 229;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 223;goto st890;}
+ {stack[top++] = 229;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 223;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 229;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 223;goto st899;}
+ {stack[top++] = 229;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 223;goto st901;}
+ {stack[top++] = 229;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 223;goto st956;}
+ {stack[top++] = 229;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 223;goto st967;}
+ {stack[top++] = 229;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 223;goto st984;}
+ {stack[top++] = 229;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 223;goto st995;}
+ {stack[top++] = 229;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 223;goto st1006;}
+ {stack[top++] = 229;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 223;goto st1019;}
+ {stack[top++] = 229;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 223;goto st1029;}
+ {stack[top++] = 229;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 223;goto st1068;}
+ {stack[top++] = 229;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 223;goto st1254;}
+ {stack[top++] = 229;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 223;goto st1257;}
+ {stack[top++] = 229;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 223;goto st1268;}
+ {stack[top++] = 229;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 223;goto st1270;}
+ {stack[top++] = 229;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 223;goto st1299;}
+ {stack[top++] = 229;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 223;goto st1312;}
+ {stack[top++] = 229;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 223;goto st1325;}
+ {stack[top++] = 229;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 223;goto st1331;}
+ {stack[top++] = 229;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 223;goto st1349;}
+ {stack[top++] = 229;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 223;goto st1344;}
+ {stack[top++] = 229;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 223;goto st1362;}
+ {stack[top++] = 229;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 223;goto st1368;}
+ {stack[top++] = 229;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 223;goto st1374;}
+ {stack[top++] = 229;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 223;goto st1382;}
+ {stack[top++] = 229;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 223;goto st1390;}
+ {stack[top++] = 229;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st223;
-st223:
+ goto st229;
+st229:
if ( ++p == pe )
- goto _test_eof223;
-case 223:
+ goto _test_eof229;
+case 229:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -31723,10 +32415,10 @@ case 223:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 77: goto st136;
case 79: goto st141;
case 80: goto st143;
@@ -31739,13 +32431,13 @@ case 223:
case 114: goto st145;
case 115: goto st147;
case 118: goto st151;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr136:
+ goto tr841;
+tr138:
{
s->r_class = s->default_class;
}
@@ -31756,95 +32448,96 @@ tr136:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 224;goto st844;}
+ {stack[top++] = 230;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 224;goto st846;}
+ {stack[top++] = 230;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 224;goto st848;}
+ {stack[top++] = 230;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 224;goto st880;}
+ {stack[top++] = 230;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 224;goto st885;}
+ {stack[top++] = 230;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 224;goto st890;}
+ {stack[top++] = 230;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 224;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 230;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 224;goto st899;}
+ {stack[top++] = 230;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 224;goto st901;}
+ {stack[top++] = 230;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 224;goto st956;}
+ {stack[top++] = 230;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 224;goto st967;}
+ {stack[top++] = 230;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 224;goto st984;}
+ {stack[top++] = 230;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 224;goto st995;}
+ {stack[top++] = 230;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 224;goto st1006;}
+ {stack[top++] = 230;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 224;goto st1019;}
+ {stack[top++] = 230;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 224;goto st1029;}
+ {stack[top++] = 230;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 224;goto st1068;}
+ {stack[top++] = 230;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 224;goto st1254;}
+ {stack[top++] = 230;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 224;goto st1257;}
+ {stack[top++] = 230;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 224;goto st1268;}
+ {stack[top++] = 230;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 224;goto st1270;}
+ {stack[top++] = 230;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 224;goto st1299;}
+ {stack[top++] = 230;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 224;goto st1312;}
+ {stack[top++] = 230;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 224;goto st1325;}
+ {stack[top++] = 230;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 224;goto st1331;}
+ {stack[top++] = 230;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 224;goto st1349;}
+ {stack[top++] = 230;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 224;goto st1344;}
+ {stack[top++] = 230;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 224;goto st1362;}
+ {stack[top++] = 230;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 224;goto st1368;}
+ {stack[top++] = 230;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 224;goto st1374;}
+ {stack[top++] = 230;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 224;goto st1382;}
+ {stack[top++] = 230;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 224;goto st1390;}
+ {stack[top++] = 230;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st224;
-st224:
+ goto st230;
+st230:
if ( ++p == pe )
- goto _test_eof224;
-case 224:
+ goto _test_eof230;
+case 230:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -31858,23 +32551,23 @@ case 224:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 76: goto st155;
case 88: goto st158;
case 89: goto st160;
case 108: goto st155;
case 120: goto st158;
case 121: goto st160;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr137:
+ goto tr841;
+tr139:
{
s->r_class = s->default_class;
}
@@ -31885,95 +32578,96 @@ tr137:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 225;goto st844;}
+ {stack[top++] = 231;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 225;goto st846;}
+ {stack[top++] = 231;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 225;goto st848;}
+ {stack[top++] = 231;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 225;goto st880;}
+ {stack[top++] = 231;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 225;goto st885;}
+ {stack[top++] = 231;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 225;goto st890;}
+ {stack[top++] = 231;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 225;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 231;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 225;goto st899;}
+ {stack[top++] = 231;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 225;goto st901;}
+ {stack[top++] = 231;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 225;goto st956;}
+ {stack[top++] = 231;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 225;goto st967;}
+ {stack[top++] = 231;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 225;goto st984;}
+ {stack[top++] = 231;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 225;goto st995;}
+ {stack[top++] = 231;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 225;goto st1006;}
+ {stack[top++] = 231;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 225;goto st1019;}
+ {stack[top++] = 231;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 225;goto st1029;}
+ {stack[top++] = 231;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 225;goto st1068;}
+ {stack[top++] = 231;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 225;goto st1254;}
+ {stack[top++] = 231;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 225;goto st1257;}
+ {stack[top++] = 231;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 225;goto st1268;}
+ {stack[top++] = 231;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 225;goto st1270;}
+ {stack[top++] = 231;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 225;goto st1299;}
+ {stack[top++] = 231;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 225;goto st1312;}
+ {stack[top++] = 231;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 225;goto st1325;}
+ {stack[top++] = 231;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 225;goto st1331;}
+ {stack[top++] = 231;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 225;goto st1349;}
+ {stack[top++] = 231;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 225;goto st1344;}
+ {stack[top++] = 231;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 225;goto st1362;}
+ {stack[top++] = 231;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 225;goto st1368;}
+ {stack[top++] = 231;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 225;goto st1374;}
+ {stack[top++] = 231;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 225;goto st1382;}
+ {stack[top++] = 231;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 225;goto st1390;}
+ {stack[top++] = 231;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st225;
-st225:
+ goto st231;
+st231:
if ( ++p == pe )
- goto _test_eof225;
-case 225:
+ goto _test_eof231;
+case 231:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -31987,19 +32681,19 @@ case 225:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
case 82: goto st165;
case 114: goto st165;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr138:
+ goto tr841;
+tr140:
{
s->r_class = s->default_class;
}
@@ -32010,95 +32704,96 @@ tr138:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 226;goto st844;}
+ {stack[top++] = 232;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 226;goto st846;}
+ {stack[top++] = 232;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 226;goto st848;}
+ {stack[top++] = 232;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 226;goto st880;}
+ {stack[top++] = 232;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 226;goto st885;}
+ {stack[top++] = 232;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 226;goto st890;}
+ {stack[top++] = 232;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 226;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 232;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 226;goto st899;}
+ {stack[top++] = 232;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 226;goto st901;}
+ {stack[top++] = 232;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 226;goto st956;}
+ {stack[top++] = 232;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 226;goto st967;}
+ {stack[top++] = 232;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 226;goto st984;}
+ {stack[top++] = 232;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 226;goto st995;}
+ {stack[top++] = 232;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 226;goto st1006;}
+ {stack[top++] = 232;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 226;goto st1019;}
+ {stack[top++] = 232;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 226;goto st1029;}
+ {stack[top++] = 232;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 226;goto st1068;}
+ {stack[top++] = 232;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 226;goto st1254;}
+ {stack[top++] = 232;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 226;goto st1257;}
+ {stack[top++] = 232;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 226;goto st1268;}
+ {stack[top++] = 232;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 226;goto st1270;}
+ {stack[top++] = 232;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 226;goto st1299;}
+ {stack[top++] = 232;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 226;goto st1312;}
+ {stack[top++] = 232;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 226;goto st1325;}
+ {stack[top++] = 232;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 226;goto st1331;}
+ {stack[top++] = 232;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 226;goto st1349;}
+ {stack[top++] = 232;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 226;goto st1344;}
+ {stack[top++] = 232;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 226;goto st1362;}
+ {stack[top++] = 232;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 226;goto st1368;}
+ {stack[top++] = 232;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 226;goto st1374;}
+ {stack[top++] = 232;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 226;goto st1382;}
+ {stack[top++] = 232;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 226;goto st1390;}
+ {stack[top++] = 232;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st226;
-st226:
+ goto st232;
+st232:
if ( ++p == pe )
- goto _test_eof226;
-case 226:
+ goto _test_eof232;
+case 232:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -32112,31 +32807,157 @@ case 226:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
- case 79: goto st168;
- case 111: goto st168;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
+ case 65: goto st168;
+ case 97: goto st168;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr823;
-tr857:
+ goto tr841;
+tr141:
+ {
+ s->r_class = s->default_class;
+ }
+ {
+ s->r_ttl = s->default_ttl;
+ }
+ {
+ p--;
+ switch (s->r_type) {
+ case KNOT_RRTYPE_A:
+ {stack[top++] = 233;goto st886;}
+ case KNOT_RRTYPE_NS:
+ case KNOT_RRTYPE_CNAME:
+ case KNOT_RRTYPE_PTR:
+ case KNOT_RRTYPE_DNAME:
+ {stack[top++] = 233;goto st888;}
+ case KNOT_RRTYPE_SOA:
+ {stack[top++] = 233;goto st890;}
+ case KNOT_RRTYPE_HINFO:
+ {stack[top++] = 233;goto st922;}
+ case KNOT_RRTYPE_MINFO:
+ case KNOT_RRTYPE_RP:
+ {stack[top++] = 233;goto st927;}
+ case KNOT_RRTYPE_MX:
+ case KNOT_RRTYPE_AFSDB:
+ case KNOT_RRTYPE_RT:
+ case KNOT_RRTYPE_KX:
+ case KNOT_RRTYPE_LP:
+ {stack[top++] = 233;goto st932;}
+ case KNOT_RRTYPE_TXT:
+ case KNOT_RRTYPE_SPF:
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 233;goto st937;}
+ case KNOT_RRTYPE_AAAA:
+ {stack[top++] = 233;goto st941;}
+ case KNOT_RRTYPE_LOC:
+ {stack[top++] = 233;goto st943;}
+ case KNOT_RRTYPE_SRV:
+ {stack[top++] = 233;goto st998;}
+ case KNOT_RRTYPE_NAPTR:
+ {stack[top++] = 233;goto st1009;}
+ case KNOT_RRTYPE_CERT:
+ {stack[top++] = 233;goto st1026;}
+ case KNOT_RRTYPE_APL:
+ {stack[top++] = 233;goto st1037;}
+ case KNOT_RRTYPE_DS:
+ case KNOT_RRTYPE_CDS:
+ {stack[top++] = 233;goto st1048;}
+ case KNOT_RRTYPE_SSHFP:
+ {stack[top++] = 233;goto st1061;}
+ case KNOT_RRTYPE_IPSECKEY:
+ {stack[top++] = 233;goto st1071;}
+ case KNOT_RRTYPE_RRSIG:
+ {stack[top++] = 233;goto st1110;}
+ case KNOT_RRTYPE_NSEC:
+ {stack[top++] = 233;goto st1302;}
+ case KNOT_RRTYPE_KEY:
+ case KNOT_RRTYPE_DNSKEY:
+ case KNOT_RRTYPE_CDNSKEY:
+ {stack[top++] = 233;goto st1305;}
+ case KNOT_RRTYPE_DHCID:
+ case KNOT_RRTYPE_OPENPGPKEY:
+ {stack[top++] = 233;goto st1316;}
+ case KNOT_RRTYPE_NSEC3:
+ {stack[top++] = 233;goto st1318;}
+ case KNOT_RRTYPE_NSEC3PARAM:
+ {stack[top++] = 233;goto st1347;}
+ case KNOT_RRTYPE_TLSA:
+ case KNOT_RRTYPE_SMIMEA:
+ {stack[top++] = 233;goto st1360;}
+ case KNOT_RRTYPE_CSYNC:
+ {stack[top++] = 233;goto st1373;}
+ case KNOT_RRTYPE_ZONEMD:
+ {stack[top++] = 233;goto st1379;}
+ case KNOT_RRTYPE_NID:
+ case KNOT_RRTYPE_L64:
+ {stack[top++] = 233;goto st1397;}
+ case KNOT_RRTYPE_L32:
+ {stack[top++] = 233;goto st1392;}
+ case KNOT_RRTYPE_EUI48:
+ {stack[top++] = 233;goto st1410;}
+ case KNOT_RRTYPE_EUI64:
+ {stack[top++] = 233;goto st1416;}
+ case KNOT_RRTYPE_URI:
+ {stack[top++] = 233;goto st1422;}
+ case KNOT_RRTYPE_CAA:
+ {stack[top++] = 233;goto st1430;}
+ case KNOT_RRTYPE_SVCB:
+ case KNOT_RRTYPE_HTTPS:
+ {stack[top++] = 233;goto st1438;}
+ default:
+ WARN(ZS_CANNOT_TEXT_DATA);
+ {goto st316;}
+ }
+ }
+ goto st233;
+st233:
+ if ( ++p == pe )
+ goto _test_eof233;
+case 233:
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(1664 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(1664 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ }
+ switch( _widec ) {
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
+ case 79: goto st174;
+ case 111: goto st174;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
+ }
+ goto tr841;
+tr875:
{
s->buffer_length = 0;
}
- goto st227;
-tr859:
+ goto st234;
+tr877:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st227;
-tr988:
+ goto st234;
+tr1006:
{
s->buffer_length = 0;
}
@@ -32144,8 +32965,8 @@ tr988:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st227;
-tr926:
+ goto st234;
+tr944:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -32158,8 +32979,8 @@ tr926:
{
s->buffer_length = 0;
}
- goto st227;
-tr930:
+ goto st234;
+tr948:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -32168,8 +32989,8 @@ tr930:
{
s->buffer_length = 0;
}
- goto st227;
-tr895:
+ goto st234;
+tr913:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -32184,8 +33005,8 @@ tr895:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st227;
-tr4291:
+ goto st234;
+tr4373:
{
s->buffer_length = 0;
}
@@ -32196,14 +33017,14 @@ tr4291:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st227;
-st227:
+ goto st234;
+st234:
if ( ++p == pe )
- goto _test_eof227;
-case 227:
+ goto _test_eof234;
+case 234:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -32223,21 +33044,21 @@ case 227:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1802: goto tr96;
- case 2058: goto tr860;
+ case 1802: goto tr98;
+ case 2058: goto tr878;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr859;
+ goto tr877;
} else if ( _widec >= 1664 )
- goto tr95;
- goto tr83;
-tr139:
+ goto tr97;
+ goto tr85;
+tr142:
{
s->line_counter++;
}
- goto st1404;
-tr962:
+ goto st1452;
+tr980:
{
s->buffer[s->buffer_length++] = 0;
@@ -32247,15 +33068,15 @@ tr962:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1404; goto _out;}
+ {p++; cs = 1452; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1404;
-tr860:
+ goto st1452;
+tr878:
{
s->buffer[s->buffer_length++] = 0;
@@ -32265,7 +33086,7 @@ tr860:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1404; goto _out;}
+ {p++; cs = 1452; goto _out;}
}
}
}
@@ -32275,7 +33096,7 @@ tr860:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -32288,23 +33109,23 @@ tr860:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1404; goto _out;}
+ {p++; cs = 1452; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1404; goto _out;}
+ p--; {p++; cs = 1452; goto _out;}
}
}
- goto st1404;
-tr901:
+ goto st1452;
+tr919:
{
s->line_counter++;
}
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -32317,16 +33138,16 @@ tr901:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1404; goto _out;}
+ {p++; cs = 1452; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1404; goto _out;}
+ p--; {p++; cs = 1452; goto _out;}
}
}
- goto st1404;
-tr894:
+ goto st1452;
+tr912:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -32344,7 +33165,7 @@ tr894:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -32357,34 +33178,34 @@ tr894:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1404; goto _out;}
+ {p++; cs = 1452; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1404; goto _out;}
+ p--; {p++; cs = 1452; goto _out;}
}
}
- goto st1404;
-tr4221:
+ goto st1452;
+tr4301:
{
s->line_counter++;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st1404;
-st1404:
+ goto st1452;
+st1452:
if ( ++p == pe )
- goto _test_eof1404;
-case 1404:
+ goto _test_eof1452;
+case 1452:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -32402,179 +33223,182 @@ case 1404:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr4215;
- case 32: goto tr4215;
- case 36: goto tr4216;
- case 40: goto tr4217;
- case 41: goto tr4218;
- case 42: goto tr4219;
- case 58: goto tr73;
- case 65: goto tr4295;
- case 67: goto tr4296;
- case 68: goto tr4297;
- case 69: goto tr4298;
- case 72: goto tr4299;
- case 73: goto tr4300;
- case 75: goto tr4301;
- case 76: goto tr4302;
- case 77: goto tr4303;
- case 78: goto tr4304;
- case 79: goto tr4305;
- case 80: goto tr4306;
- case 82: goto tr4307;
- case 83: goto tr4308;
- case 84: goto tr4309;
- case 85: goto tr4310;
- case 90: goto tr4311;
- case 92: goto tr4220;
- case 95: goto tr4219;
- case 97: goto tr4295;
- case 99: goto tr4296;
- case 100: goto tr4297;
- case 101: goto tr4298;
- case 104: goto tr4299;
- case 105: goto tr4300;
- case 107: goto tr4301;
- case 108: goto tr4302;
- case 109: goto tr4303;
- case 110: goto tr4304;
- case 111: goto tr4305;
- case 112: goto tr4306;
- case 114: goto tr4307;
- case 115: goto tr4308;
- case 116: goto tr4309;
- case 117: goto tr4310;
- case 122: goto tr4311;
- case 2826: goto tr4211;
- case 2875: goto tr4212;
- case 3082: goto tr4221;
- case 3131: goto tr4222;
- case 3338: goto tr4223;
- case 3387: goto tr4224;
- case 3594: goto tr4225;
- case 3643: goto tr4226;
+ case 9: goto tr4295;
+ case 32: goto tr4295;
+ case 36: goto tr4296;
+ case 40: goto tr4297;
+ case 41: goto tr4298;
+ case 42: goto tr4299;
+ case 58: goto tr75;
+ case 65: goto tr4377;
+ case 67: goto tr4378;
+ case 68: goto tr4379;
+ case 69: goto tr4380;
+ case 72: goto tr4381;
+ case 73: goto tr4382;
+ case 75: goto tr4383;
+ case 76: goto tr4384;
+ case 77: goto tr4385;
+ case 78: goto tr4386;
+ case 79: goto tr4387;
+ case 80: goto tr4388;
+ case 82: goto tr4389;
+ case 83: goto tr4390;
+ case 84: goto tr4391;
+ case 85: goto tr4392;
+ case 87: goto tr4393;
+ case 90: goto tr4394;
+ case 92: goto tr4300;
+ case 95: goto tr4299;
+ case 97: goto tr4377;
+ case 99: goto tr4378;
+ case 100: goto tr4379;
+ case 101: goto tr4380;
+ case 104: goto tr4381;
+ case 105: goto tr4382;
+ case 107: goto tr4383;
+ case 108: goto tr4384;
+ case 109: goto tr4385;
+ case 110: goto tr4386;
+ case 111: goto tr4387;
+ case 112: goto tr4388;
+ case 114: goto tr4389;
+ case 115: goto tr4390;
+ case 116: goto tr4391;
+ case 117: goto tr4392;
+ case 119: goto tr4393;
+ case 122: goto tr4394;
+ case 2826: goto tr4291;
+ case 2875: goto tr4292;
+ case 3082: goto tr4301;
+ case 3131: goto tr4302;
+ case 3338: goto tr4303;
+ case 3387: goto tr4304;
+ case 3594: goto tr4305;
+ case 3643: goto tr4306;
}
if ( _widec < 60 ) {
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr73;
+ goto tr75;
} else if ( _widec > 44 ) {
if ( _widec > 47 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr4294;
+ goto tr4376;
} else if ( _widec >= 45 )
- goto tr4219;
+ goto tr4299;
} else
- goto tr73;
+ goto tr75;
} else if ( _widec > 63 ) {
if ( _widec < 91 ) {
if ( 64 <= _widec && _widec <= 89 )
- goto tr4219;
+ goto tr4299;
} else if ( _widec > 96 ) {
if ( _widec > 121 ) {
if ( 123 <= _widec )
- goto tr73;
+ goto tr75;
} else if ( _widec >= 98 )
- goto tr4219;
+ goto tr4299;
} else
- goto tr73;
+ goto tr75;
} else
- goto tr73;
- goto tr4293;
-tr4216:
+ goto tr75;
+ goto tr4375;
+tr4296:
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 228;goto st844;}
+ {stack[top++] = 235;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 228;goto st846;}
+ {stack[top++] = 235;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 228;goto st848;}
+ {stack[top++] = 235;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 228;goto st880;}
+ {stack[top++] = 235;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 228;goto st885;}
+ {stack[top++] = 235;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 228;goto st890;}
+ {stack[top++] = 235;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 228;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 235;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 228;goto st899;}
+ {stack[top++] = 235;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 228;goto st901;}
+ {stack[top++] = 235;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 228;goto st956;}
+ {stack[top++] = 235;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 228;goto st967;}
+ {stack[top++] = 235;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 228;goto st984;}
+ {stack[top++] = 235;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 228;goto st995;}
+ {stack[top++] = 235;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 228;goto st1006;}
+ {stack[top++] = 235;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 228;goto st1019;}
+ {stack[top++] = 235;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 228;goto st1029;}
+ {stack[top++] = 235;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 228;goto st1068;}
+ {stack[top++] = 235;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 228;goto st1254;}
+ {stack[top++] = 235;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 228;goto st1257;}
+ {stack[top++] = 235;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 228;goto st1268;}
+ {stack[top++] = 235;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 228;goto st1270;}
+ {stack[top++] = 235;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 228;goto st1299;}
+ {stack[top++] = 235;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 228;goto st1312;}
+ {stack[top++] = 235;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 228;goto st1325;}
+ {stack[top++] = 235;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 228;goto st1331;}
+ {stack[top++] = 235;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 228;goto st1349;}
+ {stack[top++] = 235;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 228;goto st1344;}
+ {stack[top++] = 235;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 228;goto st1362;}
+ {stack[top++] = 235;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 228;goto st1368;}
+ {stack[top++] = 235;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 228;goto st1374;}
+ {stack[top++] = 235;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 228;goto st1382;}
+ {stack[top++] = 235;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 228;goto st1390;}
+ {stack[top++] = 235;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st228;
-st228:
+ goto st235;
+st235:
if ( ++p == pe )
- goto _test_eof228;
-case 228:
+ goto _test_eof235;
+case 235:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -32588,222 +33412,223 @@ case 228:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr84;
- case 32: goto tr84;
- case 40: goto tr85;
- case 41: goto tr86;
- case 73: goto tr756;
- case 79: goto tr757;
- case 84: goto tr758;
- case 105: goto tr756;
- case 111: goto tr757;
- case 116: goto tr758;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr87;
- case 2107: goto tr88;
+ case 9: goto tr86;
+ case 32: goto tr86;
+ case 40: goto tr87;
+ case 41: goto tr88;
+ case 73: goto tr774;
+ case 79: goto tr775;
+ case 84: goto tr776;
+ case 105: goto tr774;
+ case 111: goto tr775;
+ case 116: goto tr776;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr89;
+ case 2107: goto tr90;
}
- goto tr861;
-tr757:
+ goto tr879;
+tr775:
{
ERR(ZS_OK);
}
- goto st229;
-st229:
+ goto st236;
+st236:
if ( ++p == pe )
- goto _test_eof229;
-case 229:
+ goto _test_eof236;
+case 236:
switch( (*p) ) {
- case 82: goto st230;
- case 114: goto st230;
+ case 82: goto st237;
+ case 114: goto st237;
}
- goto tr755;
-st230:
+ goto tr773;
+st237:
if ( ++p == pe )
- goto _test_eof230;
-case 230:
+ goto _test_eof237;
+case 237:
switch( (*p) ) {
- case 73: goto st231;
- case 105: goto st231;
+ case 73: goto st238;
+ case 105: goto st238;
}
- goto tr755;
-st231:
+ goto tr773;
+st238:
if ( ++p == pe )
- goto _test_eof231;
-case 231:
+ goto _test_eof238;
+case 238:
switch( (*p) ) {
- case 71: goto st232;
- case 103: goto st232;
+ case 71: goto st239;
+ case 103: goto st239;
}
- goto tr755;
-st232:
+ goto tr773;
+st239:
if ( ++p == pe )
- goto _test_eof232;
-case 232:
+ goto _test_eof239;
+case 239:
switch( (*p) ) {
- case 73: goto st233;
- case 105: goto st233;
+ case 73: goto st240;
+ case 105: goto st240;
}
- goto tr755;
-st233:
+ goto tr773;
+st240:
if ( ++p == pe )
- goto _test_eof233;
-case 233:
+ goto _test_eof240;
+case 240:
switch( (*p) ) {
- case 78: goto st234;
- case 110: goto st234;
+ case 78: goto st241;
+ case 110: goto st241;
}
- goto tr755;
-st234:
+ goto tr773;
+st241:
if ( ++p == pe )
- goto _test_eof234;
-case 234:
+ goto _test_eof241;
+case 241:
switch( (*p) ) {
- case 32: goto tr867;
- case 59: goto tr867;
+ case 32: goto tr885;
+ case 59: goto tr885;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr867;
+ goto tr885;
} else if ( (*p) >= 9 )
- goto tr867;
- goto tr755;
-tr758:
+ goto tr885;
+ goto tr773;
+tr776:
{
ERR(ZS_OK);
}
- goto st235;
-st235:
+ goto st242;
+st242:
if ( ++p == pe )
- goto _test_eof235;
-case 235:
+ goto _test_eof242;
+case 242:
switch( (*p) ) {
- case 84: goto st236;
- case 116: goto st236;
+ case 84: goto st243;
+ case 116: goto st243;
}
- goto tr755;
-st236:
+ goto tr773;
+st243:
if ( ++p == pe )
- goto _test_eof236;
-case 236:
+ goto _test_eof243;
+case 243:
switch( (*p) ) {
- case 76: goto st237;
- case 108: goto st237;
+ case 76: goto st244;
+ case 108: goto st244;
}
- goto tr755;
-st237:
+ goto tr773;
+st244:
if ( ++p == pe )
- goto _test_eof237;
-case 237:
+ goto _test_eof244;
+case 244:
switch( (*p) ) {
- case 32: goto tr870;
- case 59: goto tr870;
+ case 32: goto tr888;
+ case 59: goto tr888;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr870;
+ goto tr888;
} else if ( (*p) >= 9 )
- goto tr870;
- goto tr755;
-tr4219:
+ goto tr888;
+ goto tr773;
+tr4299:
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 238;goto st844;}
+ {stack[top++] = 245;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 238;goto st846;}
+ {stack[top++] = 245;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 238;goto st848;}
+ {stack[top++] = 245;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 238;goto st880;}
+ {stack[top++] = 245;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 238;goto st885;}
+ {stack[top++] = 245;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 238;goto st890;}
+ {stack[top++] = 245;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 238;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 245;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 238;goto st899;}
+ {stack[top++] = 245;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 238;goto st901;}
+ {stack[top++] = 245;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 238;goto st956;}
+ {stack[top++] = 245;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 238;goto st967;}
+ {stack[top++] = 245;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 238;goto st984;}
+ {stack[top++] = 245;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 238;goto st995;}
+ {stack[top++] = 245;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 238;goto st1006;}
+ {stack[top++] = 245;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 238;goto st1019;}
+ {stack[top++] = 245;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 238;goto st1029;}
+ {stack[top++] = 245;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 238;goto st1068;}
+ {stack[top++] = 245;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 238;goto st1254;}
+ {stack[top++] = 245;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 238;goto st1257;}
+ {stack[top++] = 245;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 238;goto st1268;}
+ {stack[top++] = 245;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 238;goto st1270;}
+ {stack[top++] = 245;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 238;goto st1299;}
+ {stack[top++] = 245;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 238;goto st1312;}
+ {stack[top++] = 245;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 238;goto st1325;}
+ {stack[top++] = 245;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 238;goto st1331;}
+ {stack[top++] = 245;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 238;goto st1349;}
+ {stack[top++] = 245;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 238;goto st1344;}
+ {stack[top++] = 245;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 238;goto st1362;}
+ {stack[top++] = 245;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 238;goto st1368;}
+ {stack[top++] = 245;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 238;goto st1374;}
+ {stack[top++] = 245;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 238;goto st1382;}
+ {stack[top++] = 245;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 238;goto st1390;}
+ {stack[top++] = 245;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 238;goto st309;} }
- goto st238;
-st238:
+ { p--; {stack[top++] = 245;goto st318;} }
+ goto st245;
+st245:
if ( ++p == pe )
- goto _test_eof238;
-case 238:
+ goto _test_eof245;
+case 245:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -32817,17 +33642,17 @@ case 238:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr871;
-tr4294:
+ goto tr889;
+tr4376:
{
s->number64 = 0;
}
@@ -32842,107 +33667,108 @@ tr4294:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 239;goto st844;}
+ {stack[top++] = 246;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 239;goto st846;}
+ {stack[top++] = 246;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 239;goto st848;}
+ {stack[top++] = 246;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 239;goto st880;}
+ {stack[top++] = 246;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 239;goto st885;}
+ {stack[top++] = 246;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 239;goto st890;}
+ {stack[top++] = 246;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 239;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 246;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 239;goto st899;}
+ {stack[top++] = 246;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 239;goto st901;}
+ {stack[top++] = 246;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 239;goto st956;}
+ {stack[top++] = 246;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 239;goto st967;}
+ {stack[top++] = 246;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 239;goto st984;}
+ {stack[top++] = 246;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 239;goto st995;}
+ {stack[top++] = 246;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 239;goto st1006;}
+ {stack[top++] = 246;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 239;goto st1019;}
+ {stack[top++] = 246;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 239;goto st1029;}
+ {stack[top++] = 246;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 239;goto st1068;}
+ {stack[top++] = 246;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 239;goto st1254;}
+ {stack[top++] = 246;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 239;goto st1257;}
+ {stack[top++] = 246;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 239;goto st1268;}
+ {stack[top++] = 246;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 239;goto st1270;}
+ {stack[top++] = 246;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 239;goto st1299;}
+ {stack[top++] = 246;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 239;goto st1312;}
+ {stack[top++] = 246;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 239;goto st1325;}
+ {stack[top++] = 246;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 239;goto st1331;}
+ {stack[top++] = 246;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 239;goto st1349;}
+ {stack[top++] = 246;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 239;goto st1344;}
+ {stack[top++] = 246;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 239;goto st1362;}
+ {stack[top++] = 246;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 239;goto st1368;}
+ {stack[top++] = 246;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 239;goto st1374;}
+ {stack[top++] = 246;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 239;goto st1382;}
+ {stack[top++] = 246;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 239;goto st1390;}
+ {stack[top++] = 246;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 239;goto st309;} }
- goto st239;
-st239:
+ { p--; {stack[top++] = 246;goto st318;} }
+ goto st246;
+st246:
if ( ++p == pe )
- goto _test_eof239;
-case 239:
+ goto _test_eof246;
+case 246:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -32956,47 +33782,47 @@ case 239:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr878;
- case 32: goto tr878;
- case 40: goto tr879;
- case 41: goto tr880;
- case 68: goto tr31;
- case 72: goto tr32;
- case 77: goto tr33;
- case 83: goto st198;
- case 87: goto tr35;
- case 100: goto tr31;
- case 104: goto tr32;
- case 109: goto tr33;
- case 115: goto st198;
- case 119: goto tr35;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr881;
- case 2107: goto tr882;
+ case 9: goto tr896;
+ case 32: goto tr896;
+ case 40: goto tr897;
+ case 41: goto tr898;
+ case 68: goto tr32;
+ case 72: goto tr33;
+ case 77: goto tr34;
+ case 83: goto st204;
+ case 87: goto tr36;
+ case 100: goto tr32;
+ case 104: goto tr33;
+ case 109: goto tr34;
+ case 115: goto st204;
+ case 119: goto tr36;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr899;
+ case 2107: goto tr900;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr30;
- goto tr877;
-tr884:
+ goto tr31;
+ goto tr895;
+tr902:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st240;
-tr885:
+ goto st247;
+tr903:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st240;
-tr878:
+ goto st247;
+tr896:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -33005,22 +33831,22 @@ tr878:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st240;
-tr879:
+ goto st247;
+tr897:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -33029,22 +33855,22 @@ tr879:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st240;
-tr880:
+ goto st247;
+tr898:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -33053,18 +33879,18 @@ tr880:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st240;
-st240:
+ goto st247;
+st247:
if ( ++p == pe )
- goto _test_eof240;
-case 240:
+ goto _test_eof247;
+case 247:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -33078,10 +33904,10 @@ case 240:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st240;
- case 32: goto st240;
- case 40: goto tr884;
- case 41: goto tr885;
+ case 9: goto st247;
+ case 32: goto st247;
+ case 40: goto tr902;
+ case 41: goto tr903;
case 65: goto tr5;
case 67: goto tr6;
case 68: goto tr7;
@@ -33098,7 +33924,8 @@ case 240:
case 83: goto tr18;
case 84: goto tr19;
case 85: goto tr20;
- case 90: goto tr21;
+ case 87: goto tr21;
+ case 90: goto tr22;
case 97: goto tr5;
case 99: goto tr6;
case 100: goto tr7;
@@ -33115,28 +33942,29 @@ case 240:
case 115: goto tr18;
case 116: goto tr19;
case 117: goto tr20;
- case 122: goto tr21;
- case 1802: goto tr93;
- case 1851: goto tr94;
- case 2058: goto tr886;
- case 2107: goto tr887;
+ case 119: goto tr21;
+ case 122: goto tr22;
+ case 1802: goto tr95;
+ case 1851: goto tr96;
+ case 2058: goto tr904;
+ case 2107: goto tr905;
}
if ( 48 <= _widec && _widec <= 57 )
goto tr4;
goto tr0;
-tr887:
+tr905:
{
s->buffer_length = 0;
}
- goto st241;
-tr888:
+ goto st248;
+tr906:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st241;
-tr882:
+ goto st248;
+tr900:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -33148,18 +33976,18 @@ tr882:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st241;
-st241:
+ goto st248;
+st248:
if ( ++p == pe )
- goto _test_eof241;
-case 241:
+ goto _test_eof248;
+case 248:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -33179,16 +34007,16 @@ case 241:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1802: goto tr96;
- case 2058: goto tr889;
+ case 1802: goto tr98;
+ case 2058: goto tr907;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr888;
+ goto tr906;
} else if ( _widec >= 1664 )
- goto tr95;
- goto tr151;
-tr4295:
+ goto tr97;
+ goto tr154;
+tr4377:
{
s->r_class = s->default_class;
}
@@ -33199,100 +34027,101 @@ tr4295:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 242;goto st844;}
+ {stack[top++] = 249;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 242;goto st846;}
+ {stack[top++] = 249;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 242;goto st848;}
+ {stack[top++] = 249;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 242;goto st880;}
+ {stack[top++] = 249;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 242;goto st885;}
+ {stack[top++] = 249;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 242;goto st890;}
+ {stack[top++] = 249;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 242;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 249;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 242;goto st899;}
+ {stack[top++] = 249;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 242;goto st901;}
+ {stack[top++] = 249;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 242;goto st956;}
+ {stack[top++] = 249;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 242;goto st967;}
+ {stack[top++] = 249;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 242;goto st984;}
+ {stack[top++] = 249;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 242;goto st995;}
+ {stack[top++] = 249;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 242;goto st1006;}
+ {stack[top++] = 249;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 242;goto st1019;}
+ {stack[top++] = 249;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 242;goto st1029;}
+ {stack[top++] = 249;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 242;goto st1068;}
+ {stack[top++] = 249;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 242;goto st1254;}
+ {stack[top++] = 249;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 242;goto st1257;}
+ {stack[top++] = 249;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 242;goto st1268;}
+ {stack[top++] = 249;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 242;goto st1270;}
+ {stack[top++] = 249;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 242;goto st1299;}
+ {stack[top++] = 249;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 242;goto st1312;}
+ {stack[top++] = 249;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 242;goto st1325;}
+ {stack[top++] = 249;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 242;goto st1331;}
+ {stack[top++] = 249;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 242;goto st1349;}
+ {stack[top++] = 249;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 242;goto st1344;}
+ {stack[top++] = 249;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 242;goto st1362;}
+ {stack[top++] = 249;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 242;goto st1368;}
+ {stack[top++] = 249;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 242;goto st1374;}
+ {stack[top++] = 249;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 242;goto st1382;}
+ {stack[top++] = 249;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 242;goto st1390;}
+ {stack[top++] = 249;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 242;goto st309;} }
- goto st242;
-st242:
+ { p--; {stack[top++] = 249;goto st318;} }
+ goto st249;
+st249:
if ( ++p == pe )
- goto _test_eof242;
-case 242:
+ goto _test_eof249;
+case 249:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -33310,45 +34139,45 @@ case 242:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr891;
- case 32: goto tr891;
- case 40: goto tr892;
- case 41: goto tr893;
- case 65: goto st266;
- case 70: goto st269;
- case 80: goto st273;
- case 97: goto st266;
- case 102: goto st269;
- case 112: goto st273;
- case 2826: goto tr87;
- case 2875: goto tr88;
- case 3082: goto tr894;
- case 3131: goto tr895;
- case 3338: goto tr829;
- case 3387: goto tr830;
- case 3594: goto tr896;
- case 3643: goto tr897;
- }
- goto tr890;
-tr899:
+ case 9: goto tr909;
+ case 32: goto tr909;
+ case 40: goto tr910;
+ case 41: goto tr911;
+ case 65: goto st274;
+ case 70: goto st277;
+ case 80: goto st281;
+ case 97: goto st274;
+ case 102: goto st277;
+ case 112: goto st281;
+ case 2826: goto tr89;
+ case 2875: goto tr90;
+ case 3082: goto tr912;
+ case 3131: goto tr913;
+ case 3338: goto tr847;
+ case 3387: goto tr848;
+ case 3594: goto tr914;
+ case 3643: goto tr915;
+ }
+ goto tr908;
+tr917:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st243;
-tr900:
+ goto st250;
+tr918:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st243;
-tr891:
+ goto st250;
+tr909:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -33360,15 +34189,15 @@ tr891:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st243;
-tr892:
+ goto st250;
+tr910:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -33380,15 +34209,15 @@ tr892:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st243;
-tr893:
+ goto st250;
+tr911:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -33400,11 +34229,11 @@ tr893:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st243;
-st243:
+ goto st250;
+st250:
if ( ++p == pe )
- goto _test_eof243;
-case 243:
+ goto _test_eof250;
+case 250:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -33422,68 +34251,70 @@ case 243:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st243;
- case 32: goto st243;
- case 40: goto tr899;
- case 41: goto tr900;
- case 58: goto tr73;
- case 65: goto tr122;
- case 67: goto tr123;
- case 68: goto tr124;
- case 69: goto tr125;
- case 72: goto tr126;
- case 73: goto tr127;
- case 75: goto tr128;
- case 76: goto tr129;
- case 77: goto tr130;
- case 78: goto tr131;
- case 79: goto tr132;
- case 80: goto tr133;
- case 82: goto tr134;
- case 83: goto tr135;
- case 84: goto tr136;
- case 85: goto tr137;
- case 90: goto tr138;
- case 92: goto tr78;
- case 97: goto tr122;
- case 99: goto tr123;
- case 100: goto tr124;
- case 101: goto tr125;
- case 104: goto tr126;
- case 105: goto tr127;
- case 107: goto tr128;
- case 108: goto tr129;
- case 109: goto tr130;
- case 110: goto tr131;
- case 111: goto tr132;
- case 112: goto tr133;
- case 114: goto tr134;
- case 115: goto tr135;
- case 116: goto tr136;
- case 117: goto tr137;
- case 122: goto tr138;
- case 2826: goto tr93;
- case 2875: goto tr94;
- case 3082: goto tr901;
- case 3131: goto tr857;
- case 3338: goto tr112;
- case 3387: goto tr113;
- case 3594: goto tr902;
- case 3643: goto tr858;
+ case 9: goto st250;
+ case 32: goto st250;
+ case 40: goto tr917;
+ case 41: goto tr918;
+ case 58: goto tr75;
+ case 65: goto tr124;
+ case 67: goto tr125;
+ case 68: goto tr126;
+ case 69: goto tr127;
+ case 72: goto tr128;
+ case 73: goto tr129;
+ case 75: goto tr130;
+ case 76: goto tr131;
+ case 77: goto tr132;
+ case 78: goto tr133;
+ case 79: goto tr134;
+ case 80: goto tr135;
+ case 82: goto tr136;
+ case 83: goto tr137;
+ case 84: goto tr138;
+ case 85: goto tr139;
+ case 87: goto tr140;
+ case 90: goto tr141;
+ case 92: goto tr80;
+ case 97: goto tr124;
+ case 99: goto tr125;
+ case 100: goto tr126;
+ case 101: goto tr127;
+ case 104: goto tr128;
+ case 105: goto tr129;
+ case 107: goto tr130;
+ case 108: goto tr131;
+ case 109: goto tr132;
+ case 110: goto tr133;
+ case 111: goto tr134;
+ case 112: goto tr135;
+ case 114: goto tr136;
+ case 115: goto tr137;
+ case 116: goto tr138;
+ case 117: goto tr139;
+ case 119: goto tr140;
+ case 122: goto tr141;
+ case 2826: goto tr95;
+ case 2875: goto tr96;
+ case 3082: goto tr919;
+ case 3131: goto tr875;
+ case 3338: goto tr114;
+ case 3387: goto tr115;
+ case 3594: goto tr920;
+ case 3643: goto tr876;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr73;
+ goto tr75;
} else if ( _widec > 47 ) {
if ( _widec > 57 ) {
if ( 60 <= _widec )
- goto tr73;
+ goto tr75;
} else if ( _widec >= 48 )
- goto tr121;
+ goto tr123;
} else
- goto tr73;
- goto tr118;
-tr143:
+ goto tr75;
+ goto tr120;
+tr146:
{
s->line_counter++;
}
@@ -33491,92 +34322,93 @@ tr143:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 1405;goto st844;}
+ {stack[top++] = 1453;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 1405;goto st846;}
+ {stack[top++] = 1453;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 1405;goto st848;}
+ {stack[top++] = 1453;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 1405;goto st880;}
+ {stack[top++] = 1453;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 1405;goto st885;}
+ {stack[top++] = 1453;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 1405;goto st890;}
+ {stack[top++] = 1453;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 1405;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 1453;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 1405;goto st899;}
+ {stack[top++] = 1453;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 1405;goto st901;}
+ {stack[top++] = 1453;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 1405;goto st956;}
+ {stack[top++] = 1453;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 1405;goto st967;}
+ {stack[top++] = 1453;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 1405;goto st984;}
+ {stack[top++] = 1453;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 1405;goto st995;}
+ {stack[top++] = 1453;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 1405;goto st1006;}
+ {stack[top++] = 1453;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 1405;goto st1019;}
+ {stack[top++] = 1453;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 1405;goto st1029;}
+ {stack[top++] = 1453;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 1405;goto st1068;}
+ {stack[top++] = 1453;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 1405;goto st1254;}
+ {stack[top++] = 1453;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 1405;goto st1257;}
+ {stack[top++] = 1453;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 1405;goto st1268;}
+ {stack[top++] = 1453;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 1405;goto st1270;}
+ {stack[top++] = 1453;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 1405;goto st1299;}
+ {stack[top++] = 1453;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 1405;goto st1312;}
+ {stack[top++] = 1453;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 1405;goto st1325;}
+ {stack[top++] = 1453;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 1405;goto st1331;}
+ {stack[top++] = 1453;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 1405;goto st1349;}
+ {stack[top++] = 1453;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 1405;goto st1344;}
+ {stack[top++] = 1453;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 1405;goto st1362;}
+ {stack[top++] = 1453;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 1405;goto st1368;}
+ {stack[top++] = 1453;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 1405;goto st1374;}
+ {stack[top++] = 1453;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 1405;goto st1382;}
+ {stack[top++] = 1453;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 1405;goto st1390;}
+ {stack[top++] = 1453;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st1405;
-tr902:
+ goto st1453;
+tr920:
{
s->line_counter++;
}
@@ -33584,94 +34416,95 @@ tr902:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 1405;goto st844;}
+ {stack[top++] = 1453;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 1405;goto st846;}
+ {stack[top++] = 1453;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 1405;goto st848;}
+ {stack[top++] = 1453;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 1405;goto st880;}
+ {stack[top++] = 1453;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 1405;goto st885;}
+ {stack[top++] = 1453;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 1405;goto st890;}
+ {stack[top++] = 1453;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 1405;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 1453;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 1405;goto st899;}
+ {stack[top++] = 1453;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 1405;goto st901;}
+ {stack[top++] = 1453;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 1405;goto st956;}
+ {stack[top++] = 1453;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 1405;goto st967;}
+ {stack[top++] = 1453;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 1405;goto st984;}
+ {stack[top++] = 1453;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 1405;goto st995;}
+ {stack[top++] = 1453;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 1405;goto st1006;}
+ {stack[top++] = 1453;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 1405;goto st1019;}
+ {stack[top++] = 1453;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 1405;goto st1029;}
+ {stack[top++] = 1453;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 1405;goto st1068;}
+ {stack[top++] = 1453;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 1405;goto st1254;}
+ {stack[top++] = 1453;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 1405;goto st1257;}
+ {stack[top++] = 1453;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 1405;goto st1268;}
+ {stack[top++] = 1453;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 1405;goto st1270;}
+ {stack[top++] = 1453;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 1405;goto st1299;}
+ {stack[top++] = 1453;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 1405;goto st1312;}
+ {stack[top++] = 1453;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 1405;goto st1325;}
+ {stack[top++] = 1453;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 1405;goto st1331;}
+ {stack[top++] = 1453;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 1405;goto st1349;}
+ {stack[top++] = 1453;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 1405;goto st1344;}
+ {stack[top++] = 1453;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 1405;goto st1362;}
+ {stack[top++] = 1453;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 1405;goto st1368;}
+ {stack[top++] = 1453;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 1405;goto st1374;}
+ {stack[top++] = 1453;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 1405;goto st1382;}
+ {stack[top++] = 1453;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 1405;goto st1390;}
+ {stack[top++] = 1453;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -33684,16 +34517,16 @@ tr902:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1405; goto _out;}
+ {p++; cs = 1453; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1405; goto _out;}
+ p--; {p++; cs = 1453; goto _out;}
}
}
- goto st1405;
-tr896:
+ goto st1453;
+tr914:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -33708,88 +34541,89 @@ tr896:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 1405;goto st844;}
+ {stack[top++] = 1453;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 1405;goto st846;}
+ {stack[top++] = 1453;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 1405;goto st848;}
+ {stack[top++] = 1453;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 1405;goto st880;}
+ {stack[top++] = 1453;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 1405;goto st885;}
+ {stack[top++] = 1453;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 1405;goto st890;}
+ {stack[top++] = 1453;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 1405;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 1453;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 1405;goto st899;}
+ {stack[top++] = 1453;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 1405;goto st901;}
+ {stack[top++] = 1453;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 1405;goto st956;}
+ {stack[top++] = 1453;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 1405;goto st967;}
+ {stack[top++] = 1453;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 1405;goto st984;}
+ {stack[top++] = 1453;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 1405;goto st995;}
+ {stack[top++] = 1453;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 1405;goto st1006;}
+ {stack[top++] = 1453;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 1405;goto st1019;}
+ {stack[top++] = 1453;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 1405;goto st1029;}
+ {stack[top++] = 1453;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 1405;goto st1068;}
+ {stack[top++] = 1453;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 1405;goto st1254;}
+ {stack[top++] = 1453;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 1405;goto st1257;}
+ {stack[top++] = 1453;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 1405;goto st1268;}
+ {stack[top++] = 1453;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 1405;goto st1270;}
+ {stack[top++] = 1453;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 1405;goto st1299;}
+ {stack[top++] = 1453;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 1405;goto st1312;}
+ {stack[top++] = 1453;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 1405;goto st1325;}
+ {stack[top++] = 1453;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 1405;goto st1331;}
+ {stack[top++] = 1453;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 1405;goto st1349;}
+ {stack[top++] = 1453;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 1405;goto st1344;}
+ {stack[top++] = 1453;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 1405;goto st1362;}
+ {stack[top++] = 1453;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 1405;goto st1368;}
+ {stack[top++] = 1453;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 1405;goto st1374;}
+ {stack[top++] = 1453;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 1405;goto st1382;}
+ {stack[top++] = 1453;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 1405;goto st1390;}
+ {stack[top++] = 1453;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
@@ -33799,7 +34633,7 @@ tr896:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -33812,16 +34646,16 @@ tr896:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1405; goto _out;}
+ {p++; cs = 1453; goto _out;}
}
}
} else {
// Return if external processing.
- p--; {p++; cs = 1405; goto _out;}
+ p--; {p++; cs = 1453; goto _out;}
}
}
- goto st1405;
-tr4225:
+ goto st1453;
+tr4305:
{
s->line_counter++;
}
@@ -33829,105 +34663,106 @@ tr4225:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 1405;goto st844;}
+ {stack[top++] = 1453;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 1405;goto st846;}
+ {stack[top++] = 1453;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 1405;goto st848;}
+ {stack[top++] = 1453;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 1405;goto st880;}
+ {stack[top++] = 1453;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 1405;goto st885;}
+ {stack[top++] = 1453;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 1405;goto st890;}
+ {stack[top++] = 1453;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 1405;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 1453;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 1405;goto st899;}
+ {stack[top++] = 1453;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 1405;goto st901;}
+ {stack[top++] = 1453;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 1405;goto st956;}
+ {stack[top++] = 1453;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 1405;goto st967;}
+ {stack[top++] = 1453;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 1405;goto st984;}
+ {stack[top++] = 1453;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 1405;goto st995;}
+ {stack[top++] = 1453;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 1405;goto st1006;}
+ {stack[top++] = 1453;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 1405;goto st1019;}
+ {stack[top++] = 1453;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 1405;goto st1029;}
+ {stack[top++] = 1453;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 1405;goto st1068;}
+ {stack[top++] = 1453;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 1405;goto st1254;}
+ {stack[top++] = 1453;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 1405;goto st1257;}
+ {stack[top++] = 1453;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 1405;goto st1268;}
+ {stack[top++] = 1453;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 1405;goto st1270;}
+ {stack[top++] = 1453;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 1405;goto st1299;}
+ {stack[top++] = 1453;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 1405;goto st1312;}
+ {stack[top++] = 1453;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 1405;goto st1325;}
+ {stack[top++] = 1453;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 1405;goto st1331;}
+ {stack[top++] = 1453;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 1405;goto st1349;}
+ {stack[top++] = 1453;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 1405;goto st1344;}
+ {stack[top++] = 1453;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 1405;goto st1362;}
+ {stack[top++] = 1453;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 1405;goto st1368;}
+ {stack[top++] = 1453;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 1405;goto st1374;}
+ {stack[top++] = 1453;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 1405;goto st1382;}
+ {stack[top++] = 1453;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 1405;goto st1390;}
+ {stack[top++] = 1453;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st1405;
-st1405:
+ goto st1453;
+st1453:
if ( ++p == pe )
- goto _test_eof1405;
-case 1405:
+ goto _test_eof1453;
+case 1453:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -33945,86 +34780,88 @@ case 1405:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr4288;
- case 32: goto tr4288;
- case 36: goto tr4216;
- case 40: goto tr4289;
- case 41: goto tr4290;
- case 42: goto tr4219;
- case 58: goto tr73;
- case 65: goto tr4295;
- case 67: goto tr4296;
- case 68: goto tr4297;
- case 69: goto tr4298;
- case 72: goto tr4299;
- case 73: goto tr4300;
- case 75: goto tr4301;
- case 76: goto tr4302;
- case 77: goto tr4303;
- case 78: goto tr4304;
- case 79: goto tr4305;
- case 80: goto tr4306;
- case 82: goto tr4307;
- case 83: goto tr4308;
- case 84: goto tr4309;
- case 85: goto tr4310;
- case 90: goto tr4311;
- case 92: goto tr4220;
- case 95: goto tr4219;
- case 97: goto tr4295;
- case 99: goto tr4296;
- case 100: goto tr4297;
- case 101: goto tr4298;
- case 104: goto tr4299;
- case 105: goto tr4300;
- case 107: goto tr4301;
- case 108: goto tr4302;
- case 109: goto tr4303;
- case 110: goto tr4304;
- case 111: goto tr4305;
- case 112: goto tr4306;
- case 114: goto tr4307;
- case 115: goto tr4308;
- case 116: goto tr4309;
- case 117: goto tr4310;
- case 122: goto tr4311;
- case 2826: goto tr87;
- case 2875: goto tr88;
- case 3082: goto tr4312;
- case 3131: goto tr4291;
- case 3338: goto tr105;
- case 3387: goto tr106;
- case 3594: goto tr4312;
- case 3643: goto tr4292;
+ case 9: goto tr4370;
+ case 32: goto tr4370;
+ case 36: goto tr4296;
+ case 40: goto tr4371;
+ case 41: goto tr4372;
+ case 42: goto tr4299;
+ case 58: goto tr75;
+ case 65: goto tr4377;
+ case 67: goto tr4378;
+ case 68: goto tr4379;
+ case 69: goto tr4380;
+ case 72: goto tr4381;
+ case 73: goto tr4382;
+ case 75: goto tr4383;
+ case 76: goto tr4384;
+ case 77: goto tr4385;
+ case 78: goto tr4386;
+ case 79: goto tr4387;
+ case 80: goto tr4388;
+ case 82: goto tr4389;
+ case 83: goto tr4390;
+ case 84: goto tr4391;
+ case 85: goto tr4392;
+ case 87: goto tr4393;
+ case 90: goto tr4394;
+ case 92: goto tr4300;
+ case 95: goto tr4299;
+ case 97: goto tr4377;
+ case 99: goto tr4378;
+ case 100: goto tr4379;
+ case 101: goto tr4380;
+ case 104: goto tr4381;
+ case 105: goto tr4382;
+ case 107: goto tr4383;
+ case 108: goto tr4384;
+ case 109: goto tr4385;
+ case 110: goto tr4386;
+ case 111: goto tr4387;
+ case 112: goto tr4388;
+ case 114: goto tr4389;
+ case 115: goto tr4390;
+ case 116: goto tr4391;
+ case 117: goto tr4392;
+ case 119: goto tr4393;
+ case 122: goto tr4394;
+ case 2826: goto tr89;
+ case 2875: goto tr90;
+ case 3082: goto tr4395;
+ case 3131: goto tr4373;
+ case 3338: goto tr107;
+ case 3387: goto tr108;
+ case 3594: goto tr4395;
+ case 3643: goto tr4374;
}
if ( _widec < 60 ) {
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr73;
+ goto tr75;
} else if ( _widec > 44 ) {
if ( _widec > 47 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr4294;
+ goto tr4376;
} else if ( _widec >= 45 )
- goto tr4219;
+ goto tr4299;
} else
- goto tr73;
+ goto tr75;
} else if ( _widec > 63 ) {
if ( _widec < 91 ) {
if ( 64 <= _widec && _widec <= 89 )
- goto tr4219;
+ goto tr4299;
} else if ( _widec > 96 ) {
if ( _widec > 121 ) {
if ( 123 <= _widec )
- goto tr73;
+ goto tr75;
} else if ( _widec >= 98 )
- goto tr4219;
+ goto tr4299;
} else
- goto tr73;
+ goto tr75;
} else
- goto tr73;
- goto tr4293;
-tr4296:
+ goto tr75;
+ goto tr4375;
+tr4378:
{
s->r_class = s->default_class;
}
@@ -34035,100 +34872,101 @@ tr4296:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 244;goto st844;}
+ {stack[top++] = 251;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 244;goto st846;}
+ {stack[top++] = 251;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 244;goto st848;}
+ {stack[top++] = 251;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 244;goto st880;}
+ {stack[top++] = 251;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 244;goto st885;}
+ {stack[top++] = 251;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 244;goto st890;}
+ {stack[top++] = 251;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 244;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 251;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 244;goto st899;}
+ {stack[top++] = 251;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 244;goto st901;}
+ {stack[top++] = 251;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 244;goto st956;}
+ {stack[top++] = 251;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 244;goto st967;}
+ {stack[top++] = 251;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 244;goto st984;}
+ {stack[top++] = 251;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 244;goto st995;}
+ {stack[top++] = 251;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 244;goto st1006;}
+ {stack[top++] = 251;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 244;goto st1019;}
+ {stack[top++] = 251;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 244;goto st1029;}
+ {stack[top++] = 251;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 244;goto st1068;}
+ {stack[top++] = 251;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 244;goto st1254;}
+ {stack[top++] = 251;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 244;goto st1257;}
+ {stack[top++] = 251;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 244;goto st1268;}
+ {stack[top++] = 251;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 244;goto st1270;}
+ {stack[top++] = 251;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 244;goto st1299;}
+ {stack[top++] = 251;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 244;goto st1312;}
+ {stack[top++] = 251;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 244;goto st1325;}
+ {stack[top++] = 251;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 244;goto st1331;}
+ {stack[top++] = 251;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 244;goto st1349;}
+ {stack[top++] = 251;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 244;goto st1344;}
+ {stack[top++] = 251;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 244;goto st1362;}
+ {stack[top++] = 251;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 244;goto st1368;}
+ {stack[top++] = 251;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 244;goto st1374;}
+ {stack[top++] = 251;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 244;goto st1382;}
+ {stack[top++] = 251;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 244;goto st1390;}
+ {stack[top++] = 251;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 244;goto st309;} }
- goto st244;
-st244:
+ { p--; {stack[top++] = 251;goto st318;} }
+ goto st251;
+st251:
if ( ++p == pe )
- goto _test_eof244;
-case 244:
+ goto _test_eof251;
+case 251:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -34142,10 +34980,10 @@ case 244:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 65: goto st18;
case 68: goto st22;
case 69: goto st29;
@@ -34156,13 +34994,13 @@ case 244:
case 101: goto st29;
case 110: goto st32;
case 115: goto st36;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4297:
+ goto tr908;
+tr4379:
{
s->r_class = s->default_class;
}
@@ -34173,100 +35011,101 @@ tr4297:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 245;goto st844;}
+ {stack[top++] = 252;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 245;goto st846;}
+ {stack[top++] = 252;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 245;goto st848;}
+ {stack[top++] = 252;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 245;goto st880;}
+ {stack[top++] = 252;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 245;goto st885;}
+ {stack[top++] = 252;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 245;goto st890;}
+ {stack[top++] = 252;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 245;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 252;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 245;goto st899;}
+ {stack[top++] = 252;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 245;goto st901;}
+ {stack[top++] = 252;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 245;goto st956;}
+ {stack[top++] = 252;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 245;goto st967;}
+ {stack[top++] = 252;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 245;goto st984;}
+ {stack[top++] = 252;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 245;goto st995;}
+ {stack[top++] = 252;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 245;goto st1006;}
+ {stack[top++] = 252;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 245;goto st1019;}
+ {stack[top++] = 252;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 245;goto st1029;}
+ {stack[top++] = 252;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 245;goto st1068;}
+ {stack[top++] = 252;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 245;goto st1254;}
+ {stack[top++] = 252;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 245;goto st1257;}
+ {stack[top++] = 252;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 245;goto st1268;}
+ {stack[top++] = 252;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 245;goto st1270;}
+ {stack[top++] = 252;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 245;goto st1299;}
+ {stack[top++] = 252;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 245;goto st1312;}
+ {stack[top++] = 252;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 245;goto st1325;}
+ {stack[top++] = 252;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 245;goto st1331;}
+ {stack[top++] = 252;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 245;goto st1349;}
+ {stack[top++] = 252;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 245;goto st1344;}
+ {stack[top++] = 252;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 245;goto st1362;}
+ {stack[top++] = 252;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 245;goto st1368;}
+ {stack[top++] = 252;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 245;goto st1374;}
+ {stack[top++] = 252;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 245;goto st1382;}
+ {stack[top++] = 252;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 245;goto st1390;}
+ {stack[top++] = 252;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 245;goto st309;} }
- goto st245;
-st245:
+ { p--; {stack[top++] = 252;goto st318;} }
+ goto st252;
+st252:
if ( ++p == pe )
- goto _test_eof245;
-case 245:
+ goto _test_eof252;
+case 252:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -34280,23 +35119,23 @@ case 245:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 72: goto st41;
case 78: goto st45;
case 83: goto st53;
case 104: goto st41;
case 110: goto st45;
case 115: goto st53;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4298:
+ goto tr908;
+tr4380:
{
s->r_class = s->default_class;
}
@@ -34307,100 +35146,101 @@ tr4298:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 246;goto st844;}
+ {stack[top++] = 253;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 246;goto st846;}
+ {stack[top++] = 253;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 246;goto st848;}
+ {stack[top++] = 253;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 246;goto st880;}
+ {stack[top++] = 253;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 246;goto st885;}
+ {stack[top++] = 253;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 246;goto st890;}
+ {stack[top++] = 253;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 246;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 253;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 246;goto st899;}
+ {stack[top++] = 253;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 246;goto st901;}
+ {stack[top++] = 253;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 246;goto st956;}
+ {stack[top++] = 253;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 246;goto st967;}
+ {stack[top++] = 253;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 246;goto st984;}
+ {stack[top++] = 253;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 246;goto st995;}
+ {stack[top++] = 253;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 246;goto st1006;}
+ {stack[top++] = 253;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 246;goto st1019;}
+ {stack[top++] = 253;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 246;goto st1029;}
+ {stack[top++] = 253;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 246;goto st1068;}
+ {stack[top++] = 253;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 246;goto st1254;}
+ {stack[top++] = 253;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 246;goto st1257;}
+ {stack[top++] = 253;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 246;goto st1268;}
+ {stack[top++] = 253;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 246;goto st1270;}
+ {stack[top++] = 253;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 246;goto st1299;}
+ {stack[top++] = 253;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 246;goto st1312;}
+ {stack[top++] = 253;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 246;goto st1325;}
+ {stack[top++] = 253;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 246;goto st1331;}
+ {stack[top++] = 253;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 246;goto st1349;}
+ {stack[top++] = 253;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 246;goto st1344;}
+ {stack[top++] = 253;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 246;goto st1362;}
+ {stack[top++] = 253;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 246;goto st1368;}
+ {stack[top++] = 253;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 246;goto st1374;}
+ {stack[top++] = 253;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 246;goto st1382;}
+ {stack[top++] = 253;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 246;goto st1390;}
+ {stack[top++] = 253;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 246;goto st309;} }
- goto st246;
-st246:
+ { p--; {stack[top++] = 253;goto st318;} }
+ goto st253;
+st253:
if ( ++p == pe )
- goto _test_eof246;
-case 246:
+ goto _test_eof253;
+case 253:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -34414,19 +35254,19 @@ case 246:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 85: goto st55;
case 117: goto st55;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4299:
+ goto tr908;
+tr4381:
{
s->r_class = s->default_class;
}
@@ -34437,100 +35277,101 @@ tr4299:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 247;goto st844;}
+ {stack[top++] = 254;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 247;goto st846;}
+ {stack[top++] = 254;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 247;goto st848;}
+ {stack[top++] = 254;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 247;goto st880;}
+ {stack[top++] = 254;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 247;goto st885;}
+ {stack[top++] = 254;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 247;goto st890;}
+ {stack[top++] = 254;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 247;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 254;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 247;goto st899;}
+ {stack[top++] = 254;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 247;goto st901;}
+ {stack[top++] = 254;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 247;goto st956;}
+ {stack[top++] = 254;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 247;goto st967;}
+ {stack[top++] = 254;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 247;goto st984;}
+ {stack[top++] = 254;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 247;goto st995;}
+ {stack[top++] = 254;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 247;goto st1006;}
+ {stack[top++] = 254;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 247;goto st1019;}
+ {stack[top++] = 254;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 247;goto st1029;}
+ {stack[top++] = 254;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 247;goto st1068;}
+ {stack[top++] = 254;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 247;goto st1254;}
+ {stack[top++] = 254;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 247;goto st1257;}
+ {stack[top++] = 254;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 247;goto st1268;}
+ {stack[top++] = 254;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 247;goto st1270;}
+ {stack[top++] = 254;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 247;goto st1299;}
+ {stack[top++] = 254;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 247;goto st1312;}
+ {stack[top++] = 254;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 247;goto st1325;}
+ {stack[top++] = 254;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 247;goto st1331;}
+ {stack[top++] = 254;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 247;goto st1349;}
+ {stack[top++] = 254;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 247;goto st1344;}
+ {stack[top++] = 254;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 247;goto st1362;}
+ {stack[top++] = 254;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 247;goto st1368;}
+ {stack[top++] = 254;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 247;goto st1374;}
+ {stack[top++] = 254;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 247;goto st1382;}
+ {stack[top++] = 254;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 247;goto st1390;}
+ {stack[top++] = 254;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 247;goto st309;} }
- goto st247;
-st247:
+ { p--; {stack[top++] = 254;goto st318;} }
+ goto st254;
+st254:
if ( ++p == pe )
- goto _test_eof247;
-case 247:
+ goto _test_eof254;
+case 254:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -34544,21 +35385,21 @@ case 247:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 73: goto st62;
case 84: goto st66;
case 105: goto st62;
case 116: goto st66;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4300:
+ goto tr908;
+tr4382:
{
s->r_class = s->default_class;
}
@@ -34569,100 +35410,101 @@ tr4300:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 248;goto st844;}
+ {stack[top++] = 255;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 248;goto st846;}
+ {stack[top++] = 255;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 248;goto st848;}
+ {stack[top++] = 255;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 248;goto st880;}
+ {stack[top++] = 255;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 248;goto st885;}
+ {stack[top++] = 255;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 248;goto st890;}
+ {stack[top++] = 255;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 248;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 255;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 248;goto st899;}
+ {stack[top++] = 255;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 248;goto st901;}
+ {stack[top++] = 255;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 248;goto st956;}
+ {stack[top++] = 255;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 248;goto st967;}
+ {stack[top++] = 255;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 248;goto st984;}
+ {stack[top++] = 255;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 248;goto st995;}
+ {stack[top++] = 255;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 248;goto st1006;}
+ {stack[top++] = 255;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 248;goto st1019;}
+ {stack[top++] = 255;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 248;goto st1029;}
+ {stack[top++] = 255;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 248;goto st1068;}
+ {stack[top++] = 255;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 248;goto st1254;}
+ {stack[top++] = 255;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 248;goto st1257;}
+ {stack[top++] = 255;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 248;goto st1268;}
+ {stack[top++] = 255;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 248;goto st1270;}
+ {stack[top++] = 255;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 248;goto st1299;}
+ {stack[top++] = 255;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 248;goto st1312;}
+ {stack[top++] = 255;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 248;goto st1325;}
+ {stack[top++] = 255;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 248;goto st1331;}
+ {stack[top++] = 255;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 248;goto st1349;}
+ {stack[top++] = 255;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 248;goto st1344;}
+ {stack[top++] = 255;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 248;goto st1362;}
+ {stack[top++] = 255;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 248;goto st1368;}
+ {stack[top++] = 255;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 248;goto st1374;}
+ {stack[top++] = 255;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 248;goto st1382;}
+ {stack[top++] = 255;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 248;goto st1390;}
+ {stack[top++] = 255;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 248;goto st309;} }
- goto st248;
-st248:
+ { p--; {stack[top++] = 255;goto st318;} }
+ goto st255;
+st255:
if ( ++p == pe )
- goto _test_eof248;
-case 248:
+ goto _test_eof255;
+case 255:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -34676,21 +35518,21 @@ case 248:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
- case 78: goto st176;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
+ case 78: goto st182;
case 80: goto st74;
- case 110: goto st176;
+ case 110: goto st182;
case 112: goto st74;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4301:
+ goto tr908;
+tr4383:
{
s->r_class = s->default_class;
}
@@ -34701,100 +35543,101 @@ tr4301:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 249;goto st844;}
+ {stack[top++] = 256;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 249;goto st846;}
+ {stack[top++] = 256;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 249;goto st848;}
+ {stack[top++] = 256;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 249;goto st880;}
+ {stack[top++] = 256;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 249;goto st885;}
+ {stack[top++] = 256;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 249;goto st890;}
+ {stack[top++] = 256;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 249;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 256;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 249;goto st899;}
+ {stack[top++] = 256;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 249;goto st901;}
+ {stack[top++] = 256;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 249;goto st956;}
+ {stack[top++] = 256;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 249;goto st967;}
+ {stack[top++] = 256;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 249;goto st984;}
+ {stack[top++] = 256;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 249;goto st995;}
+ {stack[top++] = 256;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 249;goto st1006;}
+ {stack[top++] = 256;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 249;goto st1019;}
+ {stack[top++] = 256;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 249;goto st1029;}
+ {stack[top++] = 256;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 249;goto st1068;}
+ {stack[top++] = 256;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 249;goto st1254;}
+ {stack[top++] = 256;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 249;goto st1257;}
+ {stack[top++] = 256;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 249;goto st1268;}
+ {stack[top++] = 256;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 249;goto st1270;}
+ {stack[top++] = 256;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 249;goto st1299;}
+ {stack[top++] = 256;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 249;goto st1312;}
+ {stack[top++] = 256;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 249;goto st1325;}
+ {stack[top++] = 256;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 249;goto st1331;}
+ {stack[top++] = 256;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 249;goto st1349;}
+ {stack[top++] = 256;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 249;goto st1344;}
+ {stack[top++] = 256;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 249;goto st1362;}
+ {stack[top++] = 256;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 249;goto st1368;}
+ {stack[top++] = 256;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 249;goto st1374;}
+ {stack[top++] = 256;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 249;goto st1382;}
+ {stack[top++] = 256;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 249;goto st1390;}
+ {stack[top++] = 256;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 249;goto st309;} }
- goto st249;
-st249:
+ { p--; {stack[top++] = 256;goto st318;} }
+ goto st256;
+st256:
if ( ++p == pe )
- goto _test_eof249;
-case 249:
+ goto _test_eof256;
+case 256:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -34808,21 +35651,21 @@ case 249:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 69: goto st82;
case 88: goto st84;
case 101: goto st82;
case 120: goto st84;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4302:
+ goto tr908;
+tr4384:
{
s->r_class = s->default_class;
}
@@ -34833,100 +35676,101 @@ tr4302:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 250;goto st844;}
+ {stack[top++] = 257;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 250;goto st846;}
+ {stack[top++] = 257;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 250;goto st848;}
+ {stack[top++] = 257;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 250;goto st880;}
+ {stack[top++] = 257;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 250;goto st885;}
+ {stack[top++] = 257;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 250;goto st890;}
+ {stack[top++] = 257;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 250;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 257;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 250;goto st899;}
+ {stack[top++] = 257;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 250;goto st901;}
+ {stack[top++] = 257;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 250;goto st956;}
+ {stack[top++] = 257;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 250;goto st967;}
+ {stack[top++] = 257;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 250;goto st984;}
+ {stack[top++] = 257;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 250;goto st995;}
+ {stack[top++] = 257;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 250;goto st1006;}
+ {stack[top++] = 257;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 250;goto st1019;}
+ {stack[top++] = 257;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 250;goto st1029;}
+ {stack[top++] = 257;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 250;goto st1068;}
+ {stack[top++] = 257;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 250;goto st1254;}
+ {stack[top++] = 257;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 250;goto st1257;}
+ {stack[top++] = 257;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 250;goto st1268;}
+ {stack[top++] = 257;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 250;goto st1270;}
+ {stack[top++] = 257;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 250;goto st1299;}
+ {stack[top++] = 257;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 250;goto st1312;}
+ {stack[top++] = 257;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 250;goto st1325;}
+ {stack[top++] = 257;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 250;goto st1331;}
+ {stack[top++] = 257;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 250;goto st1349;}
+ {stack[top++] = 257;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 250;goto st1344;}
+ {stack[top++] = 257;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 250;goto st1362;}
+ {stack[top++] = 257;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 250;goto st1368;}
+ {stack[top++] = 257;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 250;goto st1374;}
+ {stack[top++] = 257;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 250;goto st1382;}
+ {stack[top++] = 257;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 250;goto st1390;}
+ {stack[top++] = 257;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 250;goto st309;} }
- goto st250;
-st250:
+ { p--; {stack[top++] = 257;goto st318;} }
+ goto st257;
+st257:
if ( ++p == pe )
- goto _test_eof250;
-case 250:
+ goto _test_eof257;
+case 257:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -34940,23 +35784,23 @@ case 250:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 51: goto st86;
case 54: goto st88;
case 79: goto st90;
case 80: goto st92;
case 111: goto st90;
case 112: goto st92;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4303:
+ goto tr908;
+tr4385:
{
s->r_class = s->default_class;
}
@@ -34967,100 +35811,101 @@ tr4303:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 251;goto st844;}
+ {stack[top++] = 258;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 251;goto st846;}
+ {stack[top++] = 258;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 251;goto st848;}
+ {stack[top++] = 258;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 251;goto st880;}
+ {stack[top++] = 258;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 251;goto st885;}
+ {stack[top++] = 258;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 251;goto st890;}
+ {stack[top++] = 258;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 251;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 258;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 251;goto st899;}
+ {stack[top++] = 258;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 251;goto st901;}
+ {stack[top++] = 258;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 251;goto st956;}
+ {stack[top++] = 258;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 251;goto st967;}
+ {stack[top++] = 258;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 251;goto st984;}
+ {stack[top++] = 258;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 251;goto st995;}
+ {stack[top++] = 258;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 251;goto st1006;}
+ {stack[top++] = 258;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 251;goto st1019;}
+ {stack[top++] = 258;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 251;goto st1029;}
+ {stack[top++] = 258;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 251;goto st1068;}
+ {stack[top++] = 258;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 251;goto st1254;}
+ {stack[top++] = 258;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 251;goto st1257;}
+ {stack[top++] = 258;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 251;goto st1268;}
+ {stack[top++] = 258;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 251;goto st1270;}
+ {stack[top++] = 258;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 251;goto st1299;}
+ {stack[top++] = 258;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 251;goto st1312;}
+ {stack[top++] = 258;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 251;goto st1325;}
+ {stack[top++] = 258;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 251;goto st1331;}
+ {stack[top++] = 258;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 251;goto st1349;}
+ {stack[top++] = 258;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 251;goto st1344;}
+ {stack[top++] = 258;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 251;goto st1362;}
+ {stack[top++] = 258;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 251;goto st1368;}
+ {stack[top++] = 258;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 251;goto st1374;}
+ {stack[top++] = 258;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 251;goto st1382;}
+ {stack[top++] = 258;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 251;goto st1390;}
+ {stack[top++] = 258;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 251;goto st309;} }
- goto st251;
-st251:
+ { p--; {stack[top++] = 258;goto st318;} }
+ goto st258;
+st258:
if ( ++p == pe )
- goto _test_eof251;
-case 251:
+ goto _test_eof258;
+case 258:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -35074,21 +35919,21 @@ case 251:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 73: goto st94;
case 88: goto st98;
case 105: goto st94;
case 120: goto st98;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4304:
+ goto tr908;
+tr4386:
{
s->r_class = s->default_class;
}
@@ -35099,100 +35944,101 @@ tr4304:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 252;goto st844;}
+ {stack[top++] = 259;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 252;goto st846;}
+ {stack[top++] = 259;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 252;goto st848;}
+ {stack[top++] = 259;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 252;goto st880;}
+ {stack[top++] = 259;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 252;goto st885;}
+ {stack[top++] = 259;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 252;goto st890;}
+ {stack[top++] = 259;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 252;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 259;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 252;goto st899;}
+ {stack[top++] = 259;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 252;goto st901;}
+ {stack[top++] = 259;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 252;goto st956;}
+ {stack[top++] = 259;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 252;goto st967;}
+ {stack[top++] = 259;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 252;goto st984;}
+ {stack[top++] = 259;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 252;goto st995;}
+ {stack[top++] = 259;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 252;goto st1006;}
+ {stack[top++] = 259;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 252;goto st1019;}
+ {stack[top++] = 259;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 252;goto st1029;}
+ {stack[top++] = 259;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 252;goto st1068;}
+ {stack[top++] = 259;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 252;goto st1254;}
+ {stack[top++] = 259;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 252;goto st1257;}
+ {stack[top++] = 259;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 252;goto st1268;}
+ {stack[top++] = 259;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 252;goto st1270;}
+ {stack[top++] = 259;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 252;goto st1299;}
+ {stack[top++] = 259;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 252;goto st1312;}
+ {stack[top++] = 259;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 252;goto st1325;}
+ {stack[top++] = 259;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 252;goto st1331;}
+ {stack[top++] = 259;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 252;goto st1349;}
+ {stack[top++] = 259;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 252;goto st1344;}
+ {stack[top++] = 259;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 252;goto st1362;}
+ {stack[top++] = 259;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 252;goto st1368;}
+ {stack[top++] = 259;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 252;goto st1374;}
+ {stack[top++] = 259;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 252;goto st1382;}
+ {stack[top++] = 259;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 252;goto st1390;}
+ {stack[top++] = 259;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 252;goto st309;} }
- goto st252;
-st252:
+ { p--; {stack[top++] = 259;goto st318;} }
+ goto st259;
+st259:
if ( ++p == pe )
- goto _test_eof252;
-case 252:
+ goto _test_eof259;
+case 259:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -35206,23 +36052,23 @@ case 252:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 65: goto st100;
case 73: goto st104;
case 83: goto st106;
case 97: goto st100;
case 105: goto st104;
case 115: goto st106;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4305:
+ goto tr908;
+tr4387:
{
s->r_class = s->default_class;
}
@@ -35233,100 +36079,101 @@ tr4305:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 253;goto st844;}
+ {stack[top++] = 260;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 253;goto st846;}
+ {stack[top++] = 260;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 253;goto st848;}
+ {stack[top++] = 260;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 253;goto st880;}
+ {stack[top++] = 260;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 253;goto st885;}
+ {stack[top++] = 260;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 253;goto st890;}
+ {stack[top++] = 260;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 253;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 260;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 253;goto st899;}
+ {stack[top++] = 260;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 253;goto st901;}
+ {stack[top++] = 260;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 253;goto st956;}
+ {stack[top++] = 260;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 253;goto st967;}
+ {stack[top++] = 260;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 253;goto st984;}
+ {stack[top++] = 260;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 253;goto st995;}
+ {stack[top++] = 260;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 253;goto st1006;}
+ {stack[top++] = 260;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 253;goto st1019;}
+ {stack[top++] = 260;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 253;goto st1029;}
+ {stack[top++] = 260;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 253;goto st1068;}
+ {stack[top++] = 260;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 253;goto st1254;}
+ {stack[top++] = 260;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 253;goto st1257;}
+ {stack[top++] = 260;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 253;goto st1268;}
+ {stack[top++] = 260;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 253;goto st1270;}
+ {stack[top++] = 260;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 253;goto st1299;}
+ {stack[top++] = 260;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 253;goto st1312;}
+ {stack[top++] = 260;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 253;goto st1325;}
+ {stack[top++] = 260;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 253;goto st1331;}
+ {stack[top++] = 260;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 253;goto st1349;}
+ {stack[top++] = 260;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 253;goto st1344;}
+ {stack[top++] = 260;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 253;goto st1362;}
+ {stack[top++] = 260;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 253;goto st1368;}
+ {stack[top++] = 260;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 253;goto st1374;}
+ {stack[top++] = 260;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 253;goto st1382;}
+ {stack[top++] = 260;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 253;goto st1390;}
+ {stack[top++] = 260;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 253;goto st309;} }
- goto st253;
-st253:
+ { p--; {stack[top++] = 260;goto st318;} }
+ goto st260;
+st260:
if ( ++p == pe )
- goto _test_eof253;
-case 253:
+ goto _test_eof260;
+case 260:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -35340,19 +36187,19 @@ case 253:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 80: goto st116;
case 112: goto st116;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4306:
+ goto tr908;
+tr4388:
{
s->r_class = s->default_class;
}
@@ -35363,100 +36210,101 @@ tr4306:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 254;goto st844;}
+ {stack[top++] = 261;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 254;goto st846;}
+ {stack[top++] = 261;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 254;goto st848;}
+ {stack[top++] = 261;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 254;goto st880;}
+ {stack[top++] = 261;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 254;goto st885;}
+ {stack[top++] = 261;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 254;goto st890;}
+ {stack[top++] = 261;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 254;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 261;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 254;goto st899;}
+ {stack[top++] = 261;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 254;goto st901;}
+ {stack[top++] = 261;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 254;goto st956;}
+ {stack[top++] = 261;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 254;goto st967;}
+ {stack[top++] = 261;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 254;goto st984;}
+ {stack[top++] = 261;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 254;goto st995;}
+ {stack[top++] = 261;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 254;goto st1006;}
+ {stack[top++] = 261;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 254;goto st1019;}
+ {stack[top++] = 261;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 254;goto st1029;}
+ {stack[top++] = 261;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 254;goto st1068;}
+ {stack[top++] = 261;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 254;goto st1254;}
+ {stack[top++] = 261;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 254;goto st1257;}
+ {stack[top++] = 261;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 254;goto st1268;}
+ {stack[top++] = 261;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 254;goto st1270;}
+ {stack[top++] = 261;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 254;goto st1299;}
+ {stack[top++] = 261;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 254;goto st1312;}
+ {stack[top++] = 261;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 254;goto st1325;}
+ {stack[top++] = 261;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 254;goto st1331;}
+ {stack[top++] = 261;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 254;goto st1349;}
+ {stack[top++] = 261;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 254;goto st1344;}
+ {stack[top++] = 261;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 254;goto st1362;}
+ {stack[top++] = 261;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 254;goto st1368;}
+ {stack[top++] = 261;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 254;goto st1374;}
+ {stack[top++] = 261;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 254;goto st1382;}
+ {stack[top++] = 261;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 254;goto st1390;}
+ {stack[top++] = 261;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 254;goto st309;} }
- goto st254;
-st254:
+ { p--; {stack[top++] = 261;goto st318;} }
+ goto st261;
+st261:
if ( ++p == pe )
- goto _test_eof254;
-case 254:
+ goto _test_eof261;
+case 261:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -35470,19 +36318,19 @@ case 254:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 84: goto st126;
case 116: goto st126;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4307:
+ goto tr908;
+tr4389:
{
s->r_class = s->default_class;
}
@@ -35493,100 +36341,101 @@ tr4307:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 255;goto st844;}
+ {stack[top++] = 262;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 255;goto st846;}
+ {stack[top++] = 262;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 255;goto st848;}
+ {stack[top++] = 262;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 255;goto st880;}
+ {stack[top++] = 262;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 255;goto st885;}
+ {stack[top++] = 262;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 255;goto st890;}
+ {stack[top++] = 262;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 255;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 262;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 255;goto st899;}
+ {stack[top++] = 262;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 255;goto st901;}
+ {stack[top++] = 262;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 255;goto st956;}
+ {stack[top++] = 262;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 255;goto st967;}
+ {stack[top++] = 262;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 255;goto st984;}
+ {stack[top++] = 262;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 255;goto st995;}
+ {stack[top++] = 262;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 255;goto st1006;}
+ {stack[top++] = 262;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 255;goto st1019;}
+ {stack[top++] = 262;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 255;goto st1029;}
+ {stack[top++] = 262;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 255;goto st1068;}
+ {stack[top++] = 262;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 255;goto st1254;}
+ {stack[top++] = 262;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 255;goto st1257;}
+ {stack[top++] = 262;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 255;goto st1268;}
+ {stack[top++] = 262;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 255;goto st1270;}
+ {stack[top++] = 262;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 255;goto st1299;}
+ {stack[top++] = 262;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 255;goto st1312;}
+ {stack[top++] = 262;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 255;goto st1325;}
+ {stack[top++] = 262;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 255;goto st1331;}
+ {stack[top++] = 262;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 255;goto st1349;}
+ {stack[top++] = 262;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 255;goto st1344;}
+ {stack[top++] = 262;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 255;goto st1362;}
+ {stack[top++] = 262;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 255;goto st1368;}
+ {stack[top++] = 262;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 255;goto st1374;}
+ {stack[top++] = 262;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 255;goto st1382;}
+ {stack[top++] = 262;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 255;goto st1390;}
+ {stack[top++] = 262;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 255;goto st309;} }
- goto st255;
-st255:
+ { p--; {stack[top++] = 262;goto st318;} }
+ goto st262;
+st262:
if ( ++p == pe )
- goto _test_eof255;
-case 255:
+ goto _test_eof262;
+case 262:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -35600,23 +36449,23 @@ case 255:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 80: goto st129;
case 82: goto st130;
case 84: goto st134;
case 112: goto st129;
case 114: goto st130;
case 116: goto st134;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4308:
+ goto tr908;
+tr4390:
{
s->r_class = s->default_class;
}
@@ -35627,100 +36476,101 @@ tr4308:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 256;goto st844;}
+ {stack[top++] = 263;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 256;goto st846;}
+ {stack[top++] = 263;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 256;goto st848;}
+ {stack[top++] = 263;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 256;goto st880;}
+ {stack[top++] = 263;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 256;goto st885;}
+ {stack[top++] = 263;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 256;goto st890;}
+ {stack[top++] = 263;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 256;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 263;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 256;goto st899;}
+ {stack[top++] = 263;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 256;goto st901;}
+ {stack[top++] = 263;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 256;goto st956;}
+ {stack[top++] = 263;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 256;goto st967;}
+ {stack[top++] = 263;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 256;goto st984;}
+ {stack[top++] = 263;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 256;goto st995;}
+ {stack[top++] = 263;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 256;goto st1006;}
+ {stack[top++] = 263;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 256;goto st1019;}
+ {stack[top++] = 263;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 256;goto st1029;}
+ {stack[top++] = 263;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 256;goto st1068;}
+ {stack[top++] = 263;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 256;goto st1254;}
+ {stack[top++] = 263;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 256;goto st1257;}
+ {stack[top++] = 263;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 256;goto st1268;}
+ {stack[top++] = 263;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 256;goto st1270;}
+ {stack[top++] = 263;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 256;goto st1299;}
+ {stack[top++] = 263;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 256;goto st1312;}
+ {stack[top++] = 263;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 256;goto st1325;}
+ {stack[top++] = 263;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 256;goto st1331;}
+ {stack[top++] = 263;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 256;goto st1349;}
+ {stack[top++] = 263;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 256;goto st1344;}
+ {stack[top++] = 263;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 256;goto st1362;}
+ {stack[top++] = 263;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 256;goto st1368;}
+ {stack[top++] = 263;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 256;goto st1374;}
+ {stack[top++] = 263;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 256;goto st1382;}
+ {stack[top++] = 263;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 256;goto st1390;}
+ {stack[top++] = 263;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 256;goto st309;} }
- goto st256;
-st256:
+ { p--; {stack[top++] = 263;goto st318;} }
+ goto st263;
+st263:
if ( ++p == pe )
- goto _test_eof256;
-case 256:
+ goto _test_eof263;
+case 263:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -35734,10 +36584,10 @@ case 256:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 77: goto st136;
case 79: goto st141;
case 80: goto st143;
@@ -35750,13 +36600,13 @@ case 256:
case 114: goto st145;
case 115: goto st147;
case 118: goto st151;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4309:
+ goto tr908;
+tr4391:
{
s->r_class = s->default_class;
}
@@ -35767,100 +36617,101 @@ tr4309:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 257;goto st844;}
+ {stack[top++] = 264;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 257;goto st846;}
+ {stack[top++] = 264;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 257;goto st848;}
+ {stack[top++] = 264;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 257;goto st880;}
+ {stack[top++] = 264;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 257;goto st885;}
+ {stack[top++] = 264;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 257;goto st890;}
+ {stack[top++] = 264;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 257;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 264;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 257;goto st899;}
+ {stack[top++] = 264;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 257;goto st901;}
+ {stack[top++] = 264;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 257;goto st956;}
+ {stack[top++] = 264;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 257;goto st967;}
+ {stack[top++] = 264;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 257;goto st984;}
+ {stack[top++] = 264;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 257;goto st995;}
+ {stack[top++] = 264;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 257;goto st1006;}
+ {stack[top++] = 264;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 257;goto st1019;}
+ {stack[top++] = 264;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 257;goto st1029;}
+ {stack[top++] = 264;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 257;goto st1068;}
+ {stack[top++] = 264;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 257;goto st1254;}
+ {stack[top++] = 264;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 257;goto st1257;}
+ {stack[top++] = 264;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 257;goto st1268;}
+ {stack[top++] = 264;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 257;goto st1270;}
+ {stack[top++] = 264;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 257;goto st1299;}
+ {stack[top++] = 264;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 257;goto st1312;}
+ {stack[top++] = 264;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 257;goto st1325;}
+ {stack[top++] = 264;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 257;goto st1331;}
+ {stack[top++] = 264;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 257;goto st1349;}
+ {stack[top++] = 264;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 257;goto st1344;}
+ {stack[top++] = 264;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 257;goto st1362;}
+ {stack[top++] = 264;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 257;goto st1368;}
+ {stack[top++] = 264;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 257;goto st1374;}
+ {stack[top++] = 264;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 257;goto st1382;}
+ {stack[top++] = 264;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 257;goto st1390;}
+ {stack[top++] = 264;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 257;goto st309;} }
- goto st257;
-st257:
+ { p--; {stack[top++] = 264;goto st318;} }
+ goto st264;
+st264:
if ( ++p == pe )
- goto _test_eof257;
-case 257:
+ goto _test_eof264;
+case 264:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -35874,23 +36725,23 @@ case 257:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 76: goto st155;
case 88: goto st158;
case 89: goto st160;
case 108: goto st155;
case 120: goto st158;
case 121: goto st160;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4310:
+ goto tr908;
+tr4392:
{
s->r_class = s->default_class;
}
@@ -35901,100 +36752,101 @@ tr4310:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 258;goto st844;}
+ {stack[top++] = 265;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 258;goto st846;}
+ {stack[top++] = 265;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 258;goto st848;}
+ {stack[top++] = 265;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 258;goto st880;}
+ {stack[top++] = 265;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 258;goto st885;}
+ {stack[top++] = 265;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 258;goto st890;}
+ {stack[top++] = 265;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 258;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 265;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 258;goto st899;}
+ {stack[top++] = 265;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 258;goto st901;}
+ {stack[top++] = 265;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 258;goto st956;}
+ {stack[top++] = 265;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 258;goto st967;}
+ {stack[top++] = 265;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 258;goto st984;}
+ {stack[top++] = 265;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 258;goto st995;}
+ {stack[top++] = 265;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 258;goto st1006;}
+ {stack[top++] = 265;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 258;goto st1019;}
+ {stack[top++] = 265;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 258;goto st1029;}
+ {stack[top++] = 265;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 258;goto st1068;}
+ {stack[top++] = 265;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 258;goto st1254;}
+ {stack[top++] = 265;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 258;goto st1257;}
+ {stack[top++] = 265;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 258;goto st1268;}
+ {stack[top++] = 265;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 258;goto st1270;}
+ {stack[top++] = 265;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 258;goto st1299;}
+ {stack[top++] = 265;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 258;goto st1312;}
+ {stack[top++] = 265;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 258;goto st1325;}
+ {stack[top++] = 265;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 258;goto st1331;}
+ {stack[top++] = 265;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 258;goto st1349;}
+ {stack[top++] = 265;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 258;goto st1344;}
+ {stack[top++] = 265;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 258;goto st1362;}
+ {stack[top++] = 265;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 258;goto st1368;}
+ {stack[top++] = 265;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 258;goto st1374;}
+ {stack[top++] = 265;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 258;goto st1382;}
+ {stack[top++] = 265;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 258;goto st1390;}
+ {stack[top++] = 265;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 258;goto st309;} }
- goto st258;
-st258:
+ { p--; {stack[top++] = 265;goto st318;} }
+ goto st265;
+st265:
if ( ++p == pe )
- goto _test_eof258;
-case 258:
+ goto _test_eof265;
+case 265:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -36008,19 +36860,19 @@ case 258:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
case 82: goto st165;
case 114: goto st165;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
}
- goto tr890;
-tr4311:
+ goto tr908;
+tr4393:
{
s->r_class = s->default_class;
}
@@ -36031,100 +36883,101 @@ tr4311:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 259;goto st844;}
+ {stack[top++] = 266;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 259;goto st846;}
+ {stack[top++] = 266;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 259;goto st848;}
+ {stack[top++] = 266;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 259;goto st880;}
+ {stack[top++] = 266;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 259;goto st885;}
+ {stack[top++] = 266;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 259;goto st890;}
+ {stack[top++] = 266;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 259;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 266;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 259;goto st899;}
+ {stack[top++] = 266;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 259;goto st901;}
+ {stack[top++] = 266;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 259;goto st956;}
+ {stack[top++] = 266;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 259;goto st967;}
+ {stack[top++] = 266;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 259;goto st984;}
+ {stack[top++] = 266;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 259;goto st995;}
+ {stack[top++] = 266;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 259;goto st1006;}
+ {stack[top++] = 266;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 259;goto st1019;}
+ {stack[top++] = 266;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 259;goto st1029;}
+ {stack[top++] = 266;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 259;goto st1068;}
+ {stack[top++] = 266;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 259;goto st1254;}
+ {stack[top++] = 266;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 259;goto st1257;}
+ {stack[top++] = 266;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 259;goto st1268;}
+ {stack[top++] = 266;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 259;goto st1270;}
+ {stack[top++] = 266;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 259;goto st1299;}
+ {stack[top++] = 266;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 259;goto st1312;}
+ {stack[top++] = 266;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 259;goto st1325;}
+ {stack[top++] = 266;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 259;goto st1331;}
+ {stack[top++] = 266;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 259;goto st1349;}
+ {stack[top++] = 266;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 259;goto st1344;}
+ {stack[top++] = 266;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 259;goto st1362;}
+ {stack[top++] = 266;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 259;goto st1368;}
+ {stack[top++] = 266;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 259;goto st1374;}
+ {stack[top++] = 266;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 259;goto st1382;}
+ {stack[top++] = 266;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 259;goto st1390;}
+ {stack[top++] = 266;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 259;goto st309;} }
- goto st259;
-st259:
+ { p--; {stack[top++] = 266;goto st318;} }
+ goto st266;
+st266:
if ( ++p == pe )
- goto _test_eof259;
-case 259:
+ goto _test_eof266;
+case 266:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -36138,19 +36991,150 @@ case 259:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr872;
- case 32: goto tr872;
- case 40: goto tr873;
- case 41: goto tr874;
- case 79: goto st168;
- case 111: goto st168;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr875;
- case 2107: goto tr876;
- }
- goto tr890;
-tr4220:
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
+ case 65: goto st168;
+ case 97: goto st168;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
+ }
+ goto tr908;
+tr4394:
+ {
+ s->r_class = s->default_class;
+ }
+ {
+ s->r_ttl = s->default_ttl;
+ }
+ {
+ p--;
+ switch (s->r_type) {
+ case KNOT_RRTYPE_A:
+ {stack[top++] = 267;goto st886;}
+ case KNOT_RRTYPE_NS:
+ case KNOT_RRTYPE_CNAME:
+ case KNOT_RRTYPE_PTR:
+ case KNOT_RRTYPE_DNAME:
+ {stack[top++] = 267;goto st888;}
+ case KNOT_RRTYPE_SOA:
+ {stack[top++] = 267;goto st890;}
+ case KNOT_RRTYPE_HINFO:
+ {stack[top++] = 267;goto st922;}
+ case KNOT_RRTYPE_MINFO:
+ case KNOT_RRTYPE_RP:
+ {stack[top++] = 267;goto st927;}
+ case KNOT_RRTYPE_MX:
+ case KNOT_RRTYPE_AFSDB:
+ case KNOT_RRTYPE_RT:
+ case KNOT_RRTYPE_KX:
+ case KNOT_RRTYPE_LP:
+ {stack[top++] = 267;goto st932;}
+ case KNOT_RRTYPE_TXT:
+ case KNOT_RRTYPE_SPF:
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 267;goto st937;}
+ case KNOT_RRTYPE_AAAA:
+ {stack[top++] = 267;goto st941;}
+ case KNOT_RRTYPE_LOC:
+ {stack[top++] = 267;goto st943;}
+ case KNOT_RRTYPE_SRV:
+ {stack[top++] = 267;goto st998;}
+ case KNOT_RRTYPE_NAPTR:
+ {stack[top++] = 267;goto st1009;}
+ case KNOT_RRTYPE_CERT:
+ {stack[top++] = 267;goto st1026;}
+ case KNOT_RRTYPE_APL:
+ {stack[top++] = 267;goto st1037;}
+ case KNOT_RRTYPE_DS:
+ case KNOT_RRTYPE_CDS:
+ {stack[top++] = 267;goto st1048;}
+ case KNOT_RRTYPE_SSHFP:
+ {stack[top++] = 267;goto st1061;}
+ case KNOT_RRTYPE_IPSECKEY:
+ {stack[top++] = 267;goto st1071;}
+ case KNOT_RRTYPE_RRSIG:
+ {stack[top++] = 267;goto st1110;}
+ case KNOT_RRTYPE_NSEC:
+ {stack[top++] = 267;goto st1302;}
+ case KNOT_RRTYPE_KEY:
+ case KNOT_RRTYPE_DNSKEY:
+ case KNOT_RRTYPE_CDNSKEY:
+ {stack[top++] = 267;goto st1305;}
+ case KNOT_RRTYPE_DHCID:
+ case KNOT_RRTYPE_OPENPGPKEY:
+ {stack[top++] = 267;goto st1316;}
+ case KNOT_RRTYPE_NSEC3:
+ {stack[top++] = 267;goto st1318;}
+ case KNOT_RRTYPE_NSEC3PARAM:
+ {stack[top++] = 267;goto st1347;}
+ case KNOT_RRTYPE_TLSA:
+ case KNOT_RRTYPE_SMIMEA:
+ {stack[top++] = 267;goto st1360;}
+ case KNOT_RRTYPE_CSYNC:
+ {stack[top++] = 267;goto st1373;}
+ case KNOT_RRTYPE_ZONEMD:
+ {stack[top++] = 267;goto st1379;}
+ case KNOT_RRTYPE_NID:
+ case KNOT_RRTYPE_L64:
+ {stack[top++] = 267;goto st1397;}
+ case KNOT_RRTYPE_L32:
+ {stack[top++] = 267;goto st1392;}
+ case KNOT_RRTYPE_EUI48:
+ {stack[top++] = 267;goto st1410;}
+ case KNOT_RRTYPE_EUI64:
+ {stack[top++] = 267;goto st1416;}
+ case KNOT_RRTYPE_URI:
+ {stack[top++] = 267;goto st1422;}
+ case KNOT_RRTYPE_CAA:
+ {stack[top++] = 267;goto st1430;}
+ case KNOT_RRTYPE_SVCB:
+ case KNOT_RRTYPE_HTTPS:
+ {stack[top++] = 267;goto st1438;}
+ default:
+ WARN(ZS_CANNOT_TEXT_DATA);
+ {goto st316;}
+ }
+ }
+ {
+ s->dname = s->r_owner;
+ s->r_owner_length = 0;
+ }
+ { p--; {stack[top++] = 267;goto st318;} }
+ goto st267;
+st267:
+ if ( ++p == pe )
+ goto _test_eof267;
+case 267:
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(1664 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(1664 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ }
+ switch( _widec ) {
+ case 9: goto tr890;
+ case 32: goto tr890;
+ case 40: goto tr891;
+ case 41: goto tr892;
+ case 79: goto st174;
+ case 111: goto st174;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr893;
+ case 2107: goto tr894;
+ }
+ goto tr908;
+tr4300:
{
if (pe - p == 1) {
*wrap = WRAP_DETECTED;
@@ -36160,12 +37144,12 @@ tr4220:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 260;goto st309;} }
- goto st260;
-st260:
+ { p--; {stack[top++] = 268;goto st318;} }
+ goto st268;
+st268:
if ( ++p == pe )
- goto _test_eof260;
-case 260:
+ goto _test_eof268;
+case 268:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -36179,26 +37163,26 @@ case 260:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr903;
- case 32: goto tr903;
- case 35: goto tr98;
- case 40: goto tr905;
- case 41: goto tr906;
- case 1802: goto tr97;
- case 1851: goto tr97;
- case 2058: goto tr907;
- case 2107: goto tr908;
+ case 9: goto tr921;
+ case 32: goto tr921;
+ case 35: goto tr100;
+ case 40: goto tr923;
+ case 41: goto tr924;
+ case 1802: goto tr99;
+ case 1851: goto tr99;
+ case 2058: goto tr925;
+ case 2107: goto tr926;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr97;
+ goto tr99;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr97;
+ goto tr99;
} else
- goto tr97;
- goto tr904;
-tr903:
+ goto tr99;
+ goto tr922;
+tr921:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -36211,99 +37195,100 @@ tr903:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 261;goto st844;}
+ {stack[top++] = 269;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 261;goto st846;}
+ {stack[top++] = 269;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 261;goto st848;}
+ {stack[top++] = 269;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 261;goto st880;}
+ {stack[top++] = 269;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 261;goto st885;}
+ {stack[top++] = 269;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 261;goto st890;}
+ {stack[top++] = 269;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 261;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 269;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 261;goto st899;}
+ {stack[top++] = 269;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 261;goto st901;}
+ {stack[top++] = 269;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 261;goto st956;}
+ {stack[top++] = 269;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 261;goto st967;}
+ {stack[top++] = 269;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 261;goto st984;}
+ {stack[top++] = 269;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 261;goto st995;}
+ {stack[top++] = 269;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 261;goto st1006;}
+ {stack[top++] = 269;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 261;goto st1019;}
+ {stack[top++] = 269;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 261;goto st1029;}
+ {stack[top++] = 269;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 261;goto st1068;}
+ {stack[top++] = 269;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 261;goto st1254;}
+ {stack[top++] = 269;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 261;goto st1257;}
+ {stack[top++] = 269;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 261;goto st1268;}
+ {stack[top++] = 269;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 261;goto st1270;}
+ {stack[top++] = 269;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 261;goto st1299;}
+ {stack[top++] = 269;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 261;goto st1312;}
+ {stack[top++] = 269;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 261;goto st1325;}
+ {stack[top++] = 269;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 261;goto st1331;}
+ {stack[top++] = 269;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 261;goto st1349;}
+ {stack[top++] = 269;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 261;goto st1344;}
+ {stack[top++] = 269;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 261;goto st1362;}
+ {stack[top++] = 269;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 261;goto st1368;}
+ {stack[top++] = 269;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 261;goto st1374;}
+ {stack[top++] = 269;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 261;goto st1382;}
+ {stack[top++] = 269;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 261;goto st1390;}
+ {stack[top++] = 269;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st261;
-tr905:
+ goto st269;
+tr923:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -36316,99 +37301,100 @@ tr905:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 261;goto st844;}
+ {stack[top++] = 269;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 261;goto st846;}
+ {stack[top++] = 269;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 261;goto st848;}
+ {stack[top++] = 269;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 261;goto st880;}
+ {stack[top++] = 269;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 261;goto st885;}
+ {stack[top++] = 269;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 261;goto st890;}
+ {stack[top++] = 269;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 261;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 269;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 261;goto st899;}
+ {stack[top++] = 269;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 261;goto st901;}
+ {stack[top++] = 269;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 261;goto st956;}
+ {stack[top++] = 269;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 261;goto st967;}
+ {stack[top++] = 269;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 261;goto st984;}
+ {stack[top++] = 269;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 261;goto st995;}
+ {stack[top++] = 269;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 261;goto st1006;}
+ {stack[top++] = 269;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 261;goto st1019;}
+ {stack[top++] = 269;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 261;goto st1029;}
+ {stack[top++] = 269;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 261;goto st1068;}
+ {stack[top++] = 269;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 261;goto st1254;}
+ {stack[top++] = 269;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 261;goto st1257;}
+ {stack[top++] = 269;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 261;goto st1268;}
+ {stack[top++] = 269;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 261;goto st1270;}
+ {stack[top++] = 269;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 261;goto st1299;}
+ {stack[top++] = 269;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 261;goto st1312;}
+ {stack[top++] = 269;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 261;goto st1325;}
+ {stack[top++] = 269;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 261;goto st1331;}
+ {stack[top++] = 269;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 261;goto st1349;}
+ {stack[top++] = 269;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 261;goto st1344;}
+ {stack[top++] = 269;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 261;goto st1362;}
+ {stack[top++] = 269;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 261;goto st1368;}
+ {stack[top++] = 269;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 261;goto st1374;}
+ {stack[top++] = 269;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 261;goto st1382;}
+ {stack[top++] = 269;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 261;goto st1390;}
+ {stack[top++] = 269;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st261;
-tr906:
+ goto st269;
+tr924:
{
s->r_owner_length = s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -36421,92 +37407,93 @@ tr906:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 261;goto st844;}
+ {stack[top++] = 269;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 261;goto st846;}
+ {stack[top++] = 269;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 261;goto st848;}
+ {stack[top++] = 269;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 261;goto st880;}
+ {stack[top++] = 269;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 261;goto st885;}
+ {stack[top++] = 269;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 261;goto st890;}
+ {stack[top++] = 269;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 261;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 269;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 261;goto st899;}
+ {stack[top++] = 269;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 261;goto st901;}
+ {stack[top++] = 269;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 261;goto st956;}
+ {stack[top++] = 269;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 261;goto st967;}
+ {stack[top++] = 269;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 261;goto st984;}
+ {stack[top++] = 269;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 261;goto st995;}
+ {stack[top++] = 269;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 261;goto st1006;}
+ {stack[top++] = 269;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 261;goto st1019;}
+ {stack[top++] = 269;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 261;goto st1029;}
+ {stack[top++] = 269;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 261;goto st1068;}
+ {stack[top++] = 269;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 261;goto st1254;}
+ {stack[top++] = 269;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 261;goto st1257;}
+ {stack[top++] = 269;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 261;goto st1268;}
+ {stack[top++] = 269;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 261;goto st1270;}
+ {stack[top++] = 269;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 261;goto st1299;}
+ {stack[top++] = 269;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 261;goto st1312;}
+ {stack[top++] = 269;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 261;goto st1325;}
+ {stack[top++] = 269;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 261;goto st1331;}
+ {stack[top++] = 269;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 261;goto st1349;}
+ {stack[top++] = 269;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 261;goto st1344;}
+ {stack[top++] = 269;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 261;goto st1362;}
+ {stack[top++] = 269;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 261;goto st1368;}
+ {stack[top++] = 269;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 261;goto st1374;}
+ {stack[top++] = 269;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 261;goto st1382;}
+ {stack[top++] = 269;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 261;goto st1390;}
+ {stack[top++] = 269;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st261;
-tr907:
+ goto st269;
+tr925:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -36522,95 +37509,96 @@ tr907:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 261;goto st844;}
+ {stack[top++] = 269;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 261;goto st846;}
+ {stack[top++] = 269;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 261;goto st848;}
+ {stack[top++] = 269;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 261;goto st880;}
+ {stack[top++] = 269;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 261;goto st885;}
+ {stack[top++] = 269;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 261;goto st890;}
+ {stack[top++] = 269;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 261;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 269;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 261;goto st899;}
+ {stack[top++] = 269;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 261;goto st901;}
+ {stack[top++] = 269;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 261;goto st956;}
+ {stack[top++] = 269;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 261;goto st967;}
+ {stack[top++] = 269;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 261;goto st984;}
+ {stack[top++] = 269;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 261;goto st995;}
+ {stack[top++] = 269;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 261;goto st1006;}
+ {stack[top++] = 269;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 261;goto st1019;}
+ {stack[top++] = 269;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 261;goto st1029;}
+ {stack[top++] = 269;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 261;goto st1068;}
+ {stack[top++] = 269;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 261;goto st1254;}
+ {stack[top++] = 269;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 261;goto st1257;}
+ {stack[top++] = 269;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 261;goto st1268;}
+ {stack[top++] = 269;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 261;goto st1270;}
+ {stack[top++] = 269;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 261;goto st1299;}
+ {stack[top++] = 269;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 261;goto st1312;}
+ {stack[top++] = 269;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 261;goto st1325;}
+ {stack[top++] = 269;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 261;goto st1331;}
+ {stack[top++] = 269;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 261;goto st1349;}
+ {stack[top++] = 269;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 261;goto st1344;}
+ {stack[top++] = 269;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 261;goto st1362;}
+ {stack[top++] = 269;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 261;goto st1368;}
+ {stack[top++] = 269;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 261;goto st1374;}
+ {stack[top++] = 269;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 261;goto st1382;}
+ {stack[top++] = 269;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 261;goto st1390;}
+ {stack[top++] = 269;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st261;
-st261:
+ goto st269;
+st269:
if ( ++p == pe )
- goto _test_eof261;
-case 261:
+ goto _test_eof269;
+case 269:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -36624,10 +37612,10 @@ case 261:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr909;
- case 32: goto tr909;
- case 40: goto tr910;
- case 41: goto tr911;
+ case 9: goto tr927;
+ case 32: goto tr927;
+ case 40: goto tr928;
+ case 41: goto tr929;
case 65: goto tr5;
case 67: goto tr6;
case 68: goto tr7;
@@ -36644,7 +37632,8 @@ case 261:
case 83: goto tr18;
case 84: goto tr19;
case 85: goto tr20;
- case 90: goto tr21;
+ case 87: goto tr21;
+ case 90: goto tr22;
case 97: goto tr5;
case 99: goto tr6;
case 100: goto tr7;
@@ -36661,16 +37650,17 @@ case 261:
case 115: goto tr18;
case 116: goto tr19;
case 117: goto tr20;
- case 122: goto tr21;
- case 1802: goto tr87;
- case 1851: goto tr88;
- case 2058: goto tr912;
- case 2107: goto tr913;
+ case 119: goto tr21;
+ case 122: goto tr22;
+ case 1802: goto tr89;
+ case 1851: goto tr90;
+ case 2058: goto tr930;
+ case 2107: goto tr931;
}
if ( 48 <= _widec && _widec <= 57 )
goto tr4;
- goto tr118;
-tr908:
+ goto tr120;
+tr926:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -36686,95 +37676,96 @@ tr908:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 262;goto st844;}
+ {stack[top++] = 270;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 262;goto st846;}
+ {stack[top++] = 270;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 262;goto st848;}
+ {stack[top++] = 270;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 262;goto st880;}
+ {stack[top++] = 270;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 262;goto st885;}
+ {stack[top++] = 270;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 262;goto st890;}
+ {stack[top++] = 270;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 262;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 270;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 262;goto st899;}
+ {stack[top++] = 270;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 262;goto st901;}
+ {stack[top++] = 270;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 262;goto st956;}
+ {stack[top++] = 270;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 262;goto st967;}
+ {stack[top++] = 270;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 262;goto st984;}
+ {stack[top++] = 270;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 262;goto st995;}
+ {stack[top++] = 270;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 262;goto st1006;}
+ {stack[top++] = 270;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 262;goto st1019;}
+ {stack[top++] = 270;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 262;goto st1029;}
+ {stack[top++] = 270;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 262;goto st1068;}
+ {stack[top++] = 270;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 262;goto st1254;}
+ {stack[top++] = 270;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 262;goto st1257;}
+ {stack[top++] = 270;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 262;goto st1268;}
+ {stack[top++] = 270;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 262;goto st1270;}
+ {stack[top++] = 270;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 262;goto st1299;}
+ {stack[top++] = 270;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 262;goto st1312;}
+ {stack[top++] = 270;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 262;goto st1325;}
+ {stack[top++] = 270;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 262;goto st1331;}
+ {stack[top++] = 270;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 262;goto st1349;}
+ {stack[top++] = 270;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 262;goto st1344;}
+ {stack[top++] = 270;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 262;goto st1362;}
+ {stack[top++] = 270;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 262;goto st1368;}
+ {stack[top++] = 270;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 262;goto st1374;}
+ {stack[top++] = 270;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 262;goto st1382;}
+ {stack[top++] = 270;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 262;goto st1390;}
+ {stack[top++] = 270;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st262;
-st262:
+ goto st270;
+st270:
if ( ++p == pe )
- goto _test_eof262;
-case 262:
+ goto _test_eof270;
+case 270:
_widec = (*p);
if ( (*p) < 11 ) {
if ( (*p) > 9 ) {
@@ -36806,30 +37797,30 @@ case 262:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1801: goto tr84;
- case 1802: goto tr87;
- case 1824: goto tr84;
- case 1832: goto tr85;
- case 1833: goto tr86;
- case 1851: goto tr88;
- case 2057: goto tr914;
- case 2058: goto tr915;
- case 2080: goto tr914;
- case 2088: goto tr916;
- case 2089: goto tr917;
- case 2107: goto tr918;
+ case 1801: goto tr86;
+ case 1802: goto tr89;
+ case 1824: goto tr86;
+ case 1832: goto tr87;
+ case 1833: goto tr88;
+ case 1851: goto tr90;
+ case 2057: goto tr932;
+ case 2058: goto tr933;
+ case 2080: goto tr932;
+ case 2088: goto tr934;
+ case 2089: goto tr935;
+ case 2107: goto tr936;
}
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr777;
- goto tr83;
-tr919:
+ goto tr795;
+ goto tr85;
+tr937:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st263;
-tr914:
+ goto st271;
+tr932:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -36839,8 +37830,8 @@ tr914:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st263;
-tr916:
+ goto st271;
+tr934:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -36853,12 +37844,12 @@ tr916:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st263;
-tr917:
+ goto st271;
+tr935:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -36871,12 +37862,12 @@ tr917:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st263;
-tr920:
+ goto st271;
+tr938:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -36885,12 +37876,12 @@ tr920:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st263;
-tr921:
+ goto st271;
+tr939:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -36899,15 +37890,15 @@ tr921:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st263;
-st263:
+ goto st271;
+st271:
if ( ++p == pe )
- goto _test_eof263;
-case 263:
+ goto _test_eof271;
+case 271:
_widec = (*p);
if ( (*p) < 11 ) {
if ( (*p) > 9 ) {
@@ -36940,22 +37931,22 @@ case 263:
}
switch( _widec ) {
case 1801: goto st7;
- case 1802: goto tr93;
+ case 1802: goto tr95;
case 1824: goto st7;
- case 1832: goto tr91;
- case 1833: goto tr92;
- case 1851: goto tr94;
- case 2057: goto tr919;
- case 2058: goto tr844;
- case 2080: goto tr919;
- case 2088: goto tr920;
- case 2089: goto tr921;
- case 2107: goto tr922;
+ case 1832: goto tr93;
+ case 1833: goto tr94;
+ case 1851: goto tr96;
+ case 2057: goto tr937;
+ case 2058: goto tr862;
+ case 2080: goto tr937;
+ case 2088: goto tr938;
+ case 2089: goto tr939;
+ case 2107: goto tr940;
}
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr777;
- goto tr89;
-tr858:
+ goto tr795;
+ goto tr91;
+tr876:
{
s->buffer_length = 0;
}
@@ -36963,92 +37954,93 @@ tr858:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 264;goto st844;}
+ {stack[top++] = 272;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 264;goto st846;}
+ {stack[top++] = 272;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 264;goto st848;}
+ {stack[top++] = 272;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 264;goto st880;}
+ {stack[top++] = 272;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 264;goto st885;}
+ {stack[top++] = 272;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 264;goto st890;}
+ {stack[top++] = 272;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 264;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 272;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 264;goto st899;}
+ {stack[top++] = 272;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 264;goto st901;}
+ {stack[top++] = 272;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 264;goto st956;}
+ {stack[top++] = 272;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 264;goto st967;}
+ {stack[top++] = 272;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 264;goto st984;}
+ {stack[top++] = 272;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 264;goto st995;}
+ {stack[top++] = 272;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 264;goto st1006;}
+ {stack[top++] = 272;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 264;goto st1019;}
+ {stack[top++] = 272;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 264;goto st1029;}
+ {stack[top++] = 272;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 264;goto st1068;}
+ {stack[top++] = 272;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 264;goto st1254;}
+ {stack[top++] = 272;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 264;goto st1257;}
+ {stack[top++] = 272;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 264;goto st1268;}
+ {stack[top++] = 272;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 264;goto st1270;}
+ {stack[top++] = 272;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 264;goto st1299;}
+ {stack[top++] = 272;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 264;goto st1312;}
+ {stack[top++] = 272;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 264;goto st1325;}
+ {stack[top++] = 272;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 264;goto st1331;}
+ {stack[top++] = 272;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 264;goto st1349;}
+ {stack[top++] = 272;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 264;goto st1344;}
+ {stack[top++] = 272;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 264;goto st1362;}
+ {stack[top++] = 272;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 264;goto st1368;}
+ {stack[top++] = 272;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 264;goto st1374;}
+ {stack[top++] = 272;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 264;goto st1382;}
+ {stack[top++] = 272;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 264;goto st1390;}
+ {stack[top++] = 272;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st264;
-tr989:
+ goto st272;
+tr1007:
{
s->buffer_length = 0;
}
@@ -37056,96 +38048,97 @@ tr989:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 264;goto st844;}
+ {stack[top++] = 272;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 264;goto st846;}
+ {stack[top++] = 272;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 264;goto st848;}
+ {stack[top++] = 272;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 264;goto st880;}
+ {stack[top++] = 272;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 264;goto st885;}
+ {stack[top++] = 272;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 264;goto st890;}
+ {stack[top++] = 272;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 264;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 272;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 264;goto st899;}
+ {stack[top++] = 272;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 264;goto st901;}
+ {stack[top++] = 272;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 264;goto st956;}
+ {stack[top++] = 272;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 264;goto st967;}
+ {stack[top++] = 272;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 264;goto st984;}
+ {stack[top++] = 272;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 264;goto st995;}
+ {stack[top++] = 272;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 264;goto st1006;}
+ {stack[top++] = 272;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 264;goto st1019;}
+ {stack[top++] = 272;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 264;goto st1029;}
+ {stack[top++] = 272;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 264;goto st1068;}
+ {stack[top++] = 272;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 264;goto st1254;}
+ {stack[top++] = 272;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 264;goto st1257;}
+ {stack[top++] = 272;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 264;goto st1268;}
+ {stack[top++] = 272;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 264;goto st1270;}
+ {stack[top++] = 272;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 264;goto st1299;}
+ {stack[top++] = 272;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 264;goto st1312;}
+ {stack[top++] = 272;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 264;goto st1325;}
+ {stack[top++] = 272;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 264;goto st1331;}
+ {stack[top++] = 272;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 264;goto st1349;}
+ {stack[top++] = 272;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 264;goto st1344;}
+ {stack[top++] = 272;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 264;goto st1362;}
+ {stack[top++] = 272;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 264;goto st1368;}
+ {stack[top++] = 272;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 264;goto st1374;}
+ {stack[top++] = 272;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 264;goto st1382;}
+ {stack[top++] = 272;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 264;goto st1390;}
+ {stack[top++] = 272;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st264;
-tr897:
+ goto st272;
+tr915:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -37160,96 +38153,97 @@ tr897:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 264;goto st844;}
+ {stack[top++] = 272;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 264;goto st846;}
+ {stack[top++] = 272;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 264;goto st848;}
+ {stack[top++] = 272;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 264;goto st880;}
+ {stack[top++] = 272;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 264;goto st885;}
+ {stack[top++] = 272;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 264;goto st890;}
+ {stack[top++] = 272;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 264;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 272;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 264;goto st899;}
+ {stack[top++] = 272;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 264;goto st901;}
+ {stack[top++] = 272;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 264;goto st956;}
+ {stack[top++] = 272;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 264;goto st967;}
+ {stack[top++] = 272;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 264;goto st984;}
+ {stack[top++] = 272;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 264;goto st995;}
+ {stack[top++] = 272;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 264;goto st1006;}
+ {stack[top++] = 272;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 264;goto st1019;}
+ {stack[top++] = 272;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 264;goto st1029;}
+ {stack[top++] = 272;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 264;goto st1068;}
+ {stack[top++] = 272;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 264;goto st1254;}
+ {stack[top++] = 272;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 264;goto st1257;}
+ {stack[top++] = 272;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 264;goto st1268;}
+ {stack[top++] = 272;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 264;goto st1270;}
+ {stack[top++] = 272;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 264;goto st1299;}
+ {stack[top++] = 272;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 264;goto st1312;}
+ {stack[top++] = 272;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 264;goto st1325;}
+ {stack[top++] = 272;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 264;goto st1331;}
+ {stack[top++] = 272;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 264;goto st1349;}
+ {stack[top++] = 272;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 264;goto st1344;}
+ {stack[top++] = 272;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 264;goto st1362;}
+ {stack[top++] = 272;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 264;goto st1368;}
+ {stack[top++] = 272;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 264;goto st1374;}
+ {stack[top++] = 272;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 264;goto st1382;}
+ {stack[top++] = 272;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 264;goto st1390;}
+ {stack[top++] = 272;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st264;
-tr4292:
+ goto st272;
+tr4374:
{
s->buffer_length = 0;
}
@@ -37257,88 +38251,89 @@ tr4292:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 264;goto st844;}
+ {stack[top++] = 272;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 264;goto st846;}
+ {stack[top++] = 272;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 264;goto st848;}
+ {stack[top++] = 272;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 264;goto st880;}
+ {stack[top++] = 272;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 264;goto st885;}
+ {stack[top++] = 272;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 264;goto st890;}
+ {stack[top++] = 272;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 264;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 272;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 264;goto st899;}
+ {stack[top++] = 272;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 264;goto st901;}
+ {stack[top++] = 272;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 264;goto st956;}
+ {stack[top++] = 272;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 264;goto st967;}
+ {stack[top++] = 272;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 264;goto st984;}
+ {stack[top++] = 272;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 264;goto st995;}
+ {stack[top++] = 272;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 264;goto st1006;}
+ {stack[top++] = 272;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 264;goto st1019;}
+ {stack[top++] = 272;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 264;goto st1029;}
+ {stack[top++] = 272;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 264;goto st1068;}
+ {stack[top++] = 272;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 264;goto st1254;}
+ {stack[top++] = 272;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 264;goto st1257;}
+ {stack[top++] = 272;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 264;goto st1268;}
+ {stack[top++] = 272;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 264;goto st1270;}
+ {stack[top++] = 272;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 264;goto st1299;}
+ {stack[top++] = 272;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 264;goto st1312;}
+ {stack[top++] = 272;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 264;goto st1325;}
+ {stack[top++] = 272;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 264;goto st1331;}
+ {stack[top++] = 272;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 264;goto st1349;}
+ {stack[top++] = 272;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 264;goto st1344;}
+ {stack[top++] = 272;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 264;goto st1362;}
+ {stack[top++] = 272;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 264;goto st1368;}
+ {stack[top++] = 272;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 264;goto st1374;}
+ {stack[top++] = 272;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 264;goto st1382;}
+ {stack[top++] = 272;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 264;goto st1390;}
+ {stack[top++] = 272;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
@@ -37348,14 +38343,14 @@ tr4292:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st264;
-st264:
+ goto st272;
+st272:
if ( ++p == pe )
- goto _test_eof264;
-case 264:
+ goto _test_eof272;
+case 272:
_widec = (*p);
if ( (*p) < 11 ) {
if ( (*p) > 9 ) {
@@ -37387,33 +38382,33 @@ case 264:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1801: goto tr845;
- case 1802: goto tr848;
- case 1824: goto tr845;
- case 1832: goto tr846;
- case 1833: goto tr847;
- case 1851: goto tr849;
- case 2057: goto tr923;
- case 2058: goto tr915;
- case 2080: goto tr923;
- case 2088: goto tr924;
- case 2089: goto tr925;
- case 2107: goto tr926;
+ case 1801: goto tr863;
+ case 1802: goto tr866;
+ case 1824: goto tr863;
+ case 1832: goto tr864;
+ case 1833: goto tr865;
+ case 1851: goto tr867;
+ case 2057: goto tr941;
+ case 2058: goto tr933;
+ case 2080: goto tr941;
+ case 2088: goto tr942;
+ case 2089: goto tr943;
+ case 2107: goto tr944;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr859;
+ goto tr877;
} else if ( _widec >= 1664 )
- goto tr95;
- goto tr83;
-tr927:
+ goto tr97;
+ goto tr85;
+tr945:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st265;
-tr923:
+ goto st273;
+tr941:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -37423,8 +38418,8 @@ tr923:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st265;
-tr924:
+ goto st273;
+tr942:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -37437,12 +38432,12 @@ tr924:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st265;
-tr925:
+ goto st273;
+tr943:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -37455,12 +38450,12 @@ tr925:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st265;
-tr928:
+ goto st273;
+tr946:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -37469,12 +38464,12 @@ tr928:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st265;
-tr929:
+ goto st273;
+tr947:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -37483,15 +38478,15 @@ tr929:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st265;
-st265:
+ goto st273;
+st273:
if ( ++p == pe )
- goto _test_eof265;
-case 265:
+ goto _test_eof273;
+case 273:
_widec = (*p);
if ( (*p) < 11 ) {
if ( (*p) > 9 ) {
@@ -37523,47 +38518,47 @@ case 265:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1801: goto tr850;
- case 1802: goto tr96;
- case 1824: goto tr850;
- case 1832: goto tr851;
- case 1833: goto tr852;
- case 1851: goto tr853;
- case 2057: goto tr927;
- case 2058: goto tr844;
- case 2080: goto tr927;
- case 2088: goto tr928;
- case 2089: goto tr929;
- case 2107: goto tr930;
+ case 1801: goto tr868;
+ case 1802: goto tr98;
+ case 1824: goto tr868;
+ case 1832: goto tr869;
+ case 1833: goto tr870;
+ case 1851: goto tr871;
+ case 2057: goto tr945;
+ case 2058: goto tr862;
+ case 2080: goto tr945;
+ case 2088: goto tr946;
+ case 2089: goto tr947;
+ case 2107: goto tr948;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr859;
+ goto tr877;
} else if ( _widec >= 1664 )
- goto tr95;
- goto tr83;
-st266:
+ goto tr97;
+ goto tr85;
+st274:
if ( ++p == pe )
- goto _test_eof266;
-case 266:
+ goto _test_eof274;
+case 274:
switch( (*p) ) {
- case 65: goto st267;
- case 97: goto st267;
+ case 65: goto st275;
+ case 97: goto st275;
}
- goto tr38;
-st267:
+ goto tr39;
+st275:
if ( ++p == pe )
- goto _test_eof267;
-case 267:
+ goto _test_eof275;
+case 275:
switch( (*p) ) {
- case 65: goto st268;
- case 97: goto st268;
+ case 65: goto st276;
+ case 97: goto st276;
}
- goto tr38;
-st268:
+ goto tr39;
+st276:
if ( ++p == pe )
- goto _test_eof268;
-case 268:
+ goto _test_eof276;
+case 276:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -37581,49 +38576,49 @@ case 268:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr933;
- case 32: goto tr933;
- case 40: goto tr934;
- case 41: goto tr935;
- case 3082: goto tr936;
- case 3131: goto tr937;
- case 3338: goto tr938;
- case 3387: goto tr938;
- case 3594: goto tr939;
- case 3643: goto tr940;
+ case 9: goto tr951;
+ case 32: goto tr951;
+ case 40: goto tr952;
+ case 41: goto tr953;
+ case 3082: goto tr954;
+ case 3131: goto tr955;
+ case 3338: goto tr956;
+ case 3387: goto tr956;
+ case 3594: goto tr957;
+ case 3643: goto tr958;
}
- goto tr61;
-st269:
+ goto tr63;
+st277:
if ( ++p == pe )
- goto _test_eof269;
-case 269:
+ goto _test_eof277;
+case 277:
switch( (*p) ) {
- case 83: goto st270;
- case 115: goto st270;
+ case 83: goto st278;
+ case 115: goto st278;
}
- goto tr38;
-st270:
+ goto tr39;
+st278:
if ( ++p == pe )
- goto _test_eof270;
-case 270:
+ goto _test_eof278;
+case 278:
switch( (*p) ) {
- case 68: goto st271;
- case 100: goto st271;
+ case 68: goto st279;
+ case 100: goto st279;
}
- goto tr38;
-st271:
+ goto tr39;
+st279:
if ( ++p == pe )
- goto _test_eof271;
-case 271:
+ goto _test_eof279;
+case 279:
switch( (*p) ) {
- case 66: goto st272;
- case 98: goto st272;
+ case 66: goto st280;
+ case 98: goto st280;
}
- goto tr38;
-st272:
+ goto tr39;
+st280:
if ( ++p == pe )
- goto _test_eof272;
-case 272:
+ goto _test_eof280;
+case 280:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -37641,31 +38636,31 @@ case 272:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr944;
- case 32: goto tr944;
- case 40: goto tr945;
- case 41: goto tr946;
- case 3082: goto tr947;
- case 3131: goto tr948;
- case 3338: goto tr949;
- case 3387: goto tr949;
- case 3594: goto tr950;
- case 3643: goto tr951;
+ case 9: goto tr962;
+ case 32: goto tr962;
+ case 40: goto tr963;
+ case 41: goto tr964;
+ case 3082: goto tr965;
+ case 3131: goto tr966;
+ case 3338: goto tr967;
+ case 3387: goto tr967;
+ case 3594: goto tr968;
+ case 3643: goto tr969;
}
- goto tr61;
-st273:
+ goto tr63;
+st281:
if ( ++p == pe )
- goto _test_eof273;
-case 273:
+ goto _test_eof281;
+case 281:
switch( (*p) ) {
- case 76: goto st274;
- case 108: goto st274;
+ case 76: goto st282;
+ case 108: goto st282;
}
- goto tr38;
-st274:
+ goto tr39;
+st282:
if ( ++p == pe )
- goto _test_eof274;
-case 274:
+ goto _test_eof282;
+case 282:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -37683,49 +38678,49 @@ case 274:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr953;
- case 32: goto tr953;
- case 40: goto tr954;
- case 41: goto tr955;
- case 3082: goto tr956;
- case 3131: goto tr957;
- case 3338: goto tr958;
- case 3387: goto tr958;
- case 3594: goto tr959;
- case 3643: goto tr960;
+ case 9: goto tr971;
+ case 32: goto tr971;
+ case 40: goto tr972;
+ case 41: goto tr973;
+ case 3082: goto tr974;
+ case 3131: goto tr975;
+ case 3338: goto tr976;
+ case 3387: goto tr976;
+ case 3594: goto tr977;
+ case 3643: goto tr978;
}
- goto tr61;
-tr140:
+ goto tr63;
+tr143:
{
s->buffer_length = 0;
}
- goto st275;
-tr961:
+ goto st283;
+tr979:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st275;
-tr4222:
+ goto st283;
+tr4302:
{
s->buffer_length = 0;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st275;
-st275:
+ goto st283;
+st283:
if ( ++p == pe )
- goto _test_eof275;
-case 275:
+ goto _test_eof283;
+case 283:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -37745,102 +38740,103 @@ case 275:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1802: goto tr754;
- case 2058: goto tr962;
+ case 1802: goto tr772;
+ case 2058: goto tr980;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr961;
+ goto tr979;
} else if ( _widec >= 1664 )
- goto tr753;
- goto tr83;
-tr4224:
+ goto tr771;
+ goto tr85;
+tr4304:
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 276;goto st844;}
+ {stack[top++] = 284;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 276;goto st846;}
+ {stack[top++] = 284;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 276;goto st848;}
+ {stack[top++] = 284;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 276;goto st880;}
+ {stack[top++] = 284;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 276;goto st885;}
+ {stack[top++] = 284;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 276;goto st890;}
+ {stack[top++] = 284;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 276;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 284;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 276;goto st899;}
+ {stack[top++] = 284;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 276;goto st901;}
+ {stack[top++] = 284;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 276;goto st956;}
+ {stack[top++] = 284;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 276;goto st967;}
+ {stack[top++] = 284;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 276;goto st984;}
+ {stack[top++] = 284;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 276;goto st995;}
+ {stack[top++] = 284;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 276;goto st1006;}
+ {stack[top++] = 284;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 276;goto st1019;}
+ {stack[top++] = 284;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 276;goto st1029;}
+ {stack[top++] = 284;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 276;goto st1068;}
+ {stack[top++] = 284;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 276;goto st1254;}
+ {stack[top++] = 284;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 276;goto st1257;}
+ {stack[top++] = 284;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 276;goto st1268;}
+ {stack[top++] = 284;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 276;goto st1270;}
+ {stack[top++] = 284;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 276;goto st1299;}
+ {stack[top++] = 284;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 276;goto st1312;}
+ {stack[top++] = 284;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 276;goto st1325;}
+ {stack[top++] = 284;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 276;goto st1331;}
+ {stack[top++] = 284;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 276;goto st1349;}
+ {stack[top++] = 284;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 276;goto st1344;}
+ {stack[top++] = 284;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 276;goto st1362;}
+ {stack[top++] = 284;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 276;goto st1368;}
+ {stack[top++] = 284;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 276;goto st1374;}
+ {stack[top++] = 284;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 276;goto st1382;}
+ {stack[top++] = 284;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 276;goto st1390;}
+ {stack[top++] = 284;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
@@ -37850,104 +38846,105 @@ tr4224:
{
s->buffer_length = 0;
}
- goto st276;
-tr142:
+ goto st284;
+tr145:
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 276;goto st844;}
+ {stack[top++] = 284;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 276;goto st846;}
+ {stack[top++] = 284;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 276;goto st848;}
+ {stack[top++] = 284;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 276;goto st880;}
+ {stack[top++] = 284;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 276;goto st885;}
+ {stack[top++] = 284;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 276;goto st890;}
+ {stack[top++] = 284;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 276;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 284;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 276;goto st899;}
+ {stack[top++] = 284;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 276;goto st901;}
+ {stack[top++] = 284;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 276;goto st956;}
+ {stack[top++] = 284;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 276;goto st967;}
+ {stack[top++] = 284;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 276;goto st984;}
+ {stack[top++] = 284;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 276;goto st995;}
+ {stack[top++] = 284;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 276;goto st1006;}
+ {stack[top++] = 284;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 276;goto st1019;}
+ {stack[top++] = 284;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 276;goto st1029;}
+ {stack[top++] = 284;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 276;goto st1068;}
+ {stack[top++] = 284;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 276;goto st1254;}
+ {stack[top++] = 284;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 276;goto st1257;}
+ {stack[top++] = 284;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 276;goto st1268;}
+ {stack[top++] = 284;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 276;goto st1270;}
+ {stack[top++] = 284;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 276;goto st1299;}
+ {stack[top++] = 284;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 276;goto st1312;}
+ {stack[top++] = 284;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 276;goto st1325;}
+ {stack[top++] = 284;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 276;goto st1331;}
+ {stack[top++] = 284;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 276;goto st1349;}
+ {stack[top++] = 284;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 276;goto st1344;}
+ {stack[top++] = 284;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 276;goto st1362;}
+ {stack[top++] = 284;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 276;goto st1368;}
+ {stack[top++] = 284;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 276;goto st1374;}
+ {stack[top++] = 284;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 276;goto st1382;}
+ {stack[top++] = 284;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 276;goto st1390;}
+ {stack[top++] = 284;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st276;
-st276:
+ goto st284;
+st284:
if ( ++p == pe )
- goto _test_eof276;
-case 276:
+ goto _test_eof284;
+case 284:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -37961,32 +38958,32 @@ case 276:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr963;
- case 32: goto tr963;
- case 40: goto tr964;
- case 41: goto tr965;
- case 1802: goto tr966;
- case 1851: goto tr849;
- case 2058: goto tr966;
- case 2107: goto tr849;
+ case 9: goto tr981;
+ case 32: goto tr981;
+ case 40: goto tr982;
+ case 41: goto tr983;
+ case 1802: goto tr984;
+ case 1851: goto tr867;
+ case 2058: goto tr984;
+ case 2107: goto tr867;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr753;
+ goto tr771;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr753;
+ goto tr771;
} else
- goto tr753;
- goto tr83;
-tr967:
+ goto tr771;
+ goto tr85;
+tr985:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st277;
-tr963:
+ goto st285;
+tr981:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -37996,8 +38993,8 @@ tr963:
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st277;
-tr964:
+ goto st285;
+tr982:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -38005,7 +39002,7 @@ tr964:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -38014,8 +39011,8 @@ tr964:
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st277;
-tr965:
+ goto st285;
+tr983:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -38023,7 +39020,7 @@ tr965:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -38032,12 +39029,12 @@ tr965:
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st277;
-tr968:
+ goto st285;
+tr986:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -38046,12 +39043,12 @@ tr968:
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st277;
-tr969:
+ goto st285;
+tr987:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -38060,11 +39057,11 @@ tr969:
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st277;
-st277:
+ goto st285;
+st285:
if ( ++p == pe )
- goto _test_eof277;
-case 277:
+ goto _test_eof285;
+case 285:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -38078,25 +39075,25 @@ case 277:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr967;
- case 32: goto tr967;
- case 40: goto tr968;
- case 41: goto tr969;
- case 1802: goto tr970;
- case 1851: goto tr853;
- case 2058: goto tr970;
- case 2107: goto tr853;
+ case 9: goto tr985;
+ case 32: goto tr985;
+ case 40: goto tr986;
+ case 41: goto tr987;
+ case 1802: goto tr988;
+ case 1851: goto tr871;
+ case 2058: goto tr988;
+ case 2107: goto tr871;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr753;
+ goto tr771;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr753;
+ goto tr771;
} else
- goto tr753;
- goto tr89;
-tr144:
+ goto tr771;
+ goto tr91;
+tr147:
{
s->buffer_length = 0;
}
@@ -38104,92 +39101,93 @@ tr144:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 278;goto st844;}
+ {stack[top++] = 286;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 278;goto st846;}
+ {stack[top++] = 286;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 278;goto st848;}
+ {stack[top++] = 286;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 278;goto st880;}
+ {stack[top++] = 286;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 278;goto st885;}
+ {stack[top++] = 286;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 278;goto st890;}
+ {stack[top++] = 286;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 278;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 286;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 278;goto st899;}
+ {stack[top++] = 286;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 278;goto st901;}
+ {stack[top++] = 286;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 278;goto st956;}
+ {stack[top++] = 286;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 278;goto st967;}
+ {stack[top++] = 286;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 278;goto st984;}
+ {stack[top++] = 286;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 278;goto st995;}
+ {stack[top++] = 286;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 278;goto st1006;}
+ {stack[top++] = 286;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 278;goto st1019;}
+ {stack[top++] = 286;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 278;goto st1029;}
+ {stack[top++] = 286;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 278;goto st1068;}
+ {stack[top++] = 286;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 278;goto st1254;}
+ {stack[top++] = 286;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 278;goto st1257;}
+ {stack[top++] = 286;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 278;goto st1268;}
+ {stack[top++] = 286;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 278;goto st1270;}
+ {stack[top++] = 286;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 278;goto st1299;}
+ {stack[top++] = 286;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 278;goto st1312;}
+ {stack[top++] = 286;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 278;goto st1325;}
+ {stack[top++] = 286;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 278;goto st1331;}
+ {stack[top++] = 286;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 278;goto st1349;}
+ {stack[top++] = 286;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 278;goto st1344;}
+ {stack[top++] = 286;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 278;goto st1362;}
+ {stack[top++] = 286;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 278;goto st1368;}
+ {stack[top++] = 286;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 278;goto st1374;}
+ {stack[top++] = 286;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 278;goto st1382;}
+ {stack[top++] = 286;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 278;goto st1390;}
+ {stack[top++] = 286;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st278;
-tr4226:
+ goto st286;
+tr4306:
{
s->buffer_length = 0;
}
@@ -38197,105 +39195,106 @@ tr4226:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 278;goto st844;}
+ {stack[top++] = 286;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 278;goto st846;}
+ {stack[top++] = 286;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 278;goto st848;}
+ {stack[top++] = 286;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 278;goto st880;}
+ {stack[top++] = 286;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 278;goto st885;}
+ {stack[top++] = 286;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 278;goto st890;}
+ {stack[top++] = 286;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 278;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 286;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 278;goto st899;}
+ {stack[top++] = 286;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 278;goto st901;}
+ {stack[top++] = 286;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 278;goto st956;}
+ {stack[top++] = 286;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 278;goto st967;}
+ {stack[top++] = 286;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 278;goto st984;}
+ {stack[top++] = 286;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 278;goto st995;}
+ {stack[top++] = 286;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 278;goto st1006;}
+ {stack[top++] = 286;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 278;goto st1019;}
+ {stack[top++] = 286;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 278;goto st1029;}
+ {stack[top++] = 286;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 278;goto st1068;}
+ {stack[top++] = 286;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 278;goto st1254;}
+ {stack[top++] = 286;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 278;goto st1257;}
+ {stack[top++] = 286;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 278;goto st1268;}
+ {stack[top++] = 286;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 278;goto st1270;}
+ {stack[top++] = 286;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 278;goto st1299;}
+ {stack[top++] = 286;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 278;goto st1312;}
+ {stack[top++] = 286;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 278;goto st1325;}
+ {stack[top++] = 286;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 278;goto st1331;}
+ {stack[top++] = 286;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 278;goto st1349;}
+ {stack[top++] = 286;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 278;goto st1344;}
+ {stack[top++] = 286;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 278;goto st1362;}
+ {stack[top++] = 286;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 278;goto st1368;}
+ {stack[top++] = 286;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 278;goto st1374;}
+ {stack[top++] = 286;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 278;goto st1382;}
+ {stack[top++] = 286;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 278;goto st1390;}
+ {stack[top++] = 286;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st278;
-st278:
+ goto st286;
+st286:
if ( ++p == pe )
- goto _test_eof278;
-case 278:
+ goto _test_eof286;
+case 286:
_widec = (*p);
if ( (*p) < 11 ) {
if ( (*p) > 9 ) {
@@ -38327,33 +39326,33 @@ case 278:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1801: goto tr963;
- case 1802: goto tr966;
- case 1824: goto tr963;
- case 1832: goto tr964;
- case 1833: goto tr965;
- case 1851: goto tr849;
- case 2057: goto tr971;
- case 2058: goto tr915;
- case 2080: goto tr971;
- case 2088: goto tr972;
- case 2089: goto tr973;
- case 2107: goto tr926;
+ case 1801: goto tr981;
+ case 1802: goto tr984;
+ case 1824: goto tr981;
+ case 1832: goto tr982;
+ case 1833: goto tr983;
+ case 1851: goto tr867;
+ case 2057: goto tr989;
+ case 2058: goto tr933;
+ case 2080: goto tr989;
+ case 2088: goto tr990;
+ case 2089: goto tr991;
+ case 2107: goto tr944;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr961;
+ goto tr979;
} else if ( _widec >= 1664 )
- goto tr753;
- goto tr83;
-tr974:
+ goto tr771;
+ goto tr85;
+tr992:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st279;
-tr971:
+ goto st287;
+tr989:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -38363,8 +39362,8 @@ tr971:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st279;
-tr972:
+ goto st287;
+tr990:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -38377,12 +39376,12 @@ tr972:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st279;
-tr973:
+ goto st287;
+tr991:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -38395,12 +39394,12 @@ tr973:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st279;
-tr975:
+ goto st287;
+tr993:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -38409,12 +39408,12 @@ tr975:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st279;
-tr976:
+ goto st287;
+tr994:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -38423,15 +39422,15 @@ tr976:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st279;
-st279:
+ goto st287;
+st287:
if ( ++p == pe )
- goto _test_eof279;
-case 279:
+ goto _test_eof287;
+case 287:
_widec = (*p);
if ( (*p) < 11 ) {
if ( (*p) > 9 ) {
@@ -38463,26 +39462,26 @@ case 279:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1801: goto tr967;
- case 1802: goto tr970;
- case 1824: goto tr967;
- case 1832: goto tr968;
- case 1833: goto tr969;
- case 1851: goto tr853;
- case 2057: goto tr974;
- case 2058: goto tr844;
- case 2080: goto tr974;
- case 2088: goto tr975;
- case 2089: goto tr976;
- case 2107: goto tr930;
+ case 1801: goto tr985;
+ case 1802: goto tr988;
+ case 1824: goto tr985;
+ case 1832: goto tr986;
+ case 1833: goto tr987;
+ case 1851: goto tr871;
+ case 2057: goto tr992;
+ case 2058: goto tr862;
+ case 2080: goto tr992;
+ case 2088: goto tr993;
+ case 2089: goto tr994;
+ case 2107: goto tr948;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr961;
+ goto tr979;
} else if ( _widec >= 1664 )
- goto tr753;
- goto tr83;
-tr114:
+ goto tr771;
+ goto tr85;
+tr116:
{
s->buffer_length = 0;
}
@@ -38490,92 +39489,93 @@ tr114:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 280;goto st844;}
+ {stack[top++] = 288;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 280;goto st846;}
+ {stack[top++] = 288;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 280;goto st848;}
+ {stack[top++] = 288;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 280;goto st880;}
+ {stack[top++] = 288;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 280;goto st885;}
+ {stack[top++] = 288;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 280;goto st890;}
+ {stack[top++] = 288;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 280;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 288;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 280;goto st899;}
+ {stack[top++] = 288;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 280;goto st901;}
+ {stack[top++] = 288;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 280;goto st956;}
+ {stack[top++] = 288;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 280;goto st967;}
+ {stack[top++] = 288;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 280;goto st984;}
+ {stack[top++] = 288;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 280;goto st995;}
+ {stack[top++] = 288;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 280;goto st1006;}
+ {stack[top++] = 288;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 280;goto st1019;}
+ {stack[top++] = 288;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 280;goto st1029;}
+ {stack[top++] = 288;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 280;goto st1068;}
+ {stack[top++] = 288;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 280;goto st1254;}
+ {stack[top++] = 288;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 280;goto st1257;}
+ {stack[top++] = 288;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 280;goto st1268;}
+ {stack[top++] = 288;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 280;goto st1270;}
+ {stack[top++] = 288;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 280;goto st1299;}
+ {stack[top++] = 288;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 280;goto st1312;}
+ {stack[top++] = 288;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 280;goto st1325;}
+ {stack[top++] = 288;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 280;goto st1331;}
+ {stack[top++] = 288;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 280;goto st1349;}
+ {stack[top++] = 288;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 280;goto st1344;}
+ {stack[top++] = 288;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 280;goto st1362;}
+ {stack[top++] = 288;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 280;goto st1368;}
+ {stack[top++] = 288;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 280;goto st1374;}
+ {stack[top++] = 288;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 280;goto st1382;}
+ {stack[top++] = 288;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 280;goto st1390;}
+ {stack[top++] = 288;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st280;
-tr107:
+ goto st288;
+tr109:
{
s->buffer_length = 0;
}
@@ -38583,96 +39583,97 @@ tr107:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 280;goto st844;}
+ {stack[top++] = 288;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 280;goto st846;}
+ {stack[top++] = 288;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 280;goto st848;}
+ {stack[top++] = 288;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 280;goto st880;}
+ {stack[top++] = 288;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 280;goto st885;}
+ {stack[top++] = 288;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 280;goto st890;}
+ {stack[top++] = 288;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 280;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 288;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 280;goto st899;}
+ {stack[top++] = 288;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 280;goto st901;}
+ {stack[top++] = 288;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 280;goto st956;}
+ {stack[top++] = 288;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 280;goto st967;}
+ {stack[top++] = 288;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 280;goto st984;}
+ {stack[top++] = 288;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 280;goto st995;}
+ {stack[top++] = 288;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 280;goto st1006;}
+ {stack[top++] = 288;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 280;goto st1019;}
+ {stack[top++] = 288;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 280;goto st1029;}
+ {stack[top++] = 288;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 280;goto st1068;}
+ {stack[top++] = 288;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 280;goto st1254;}
+ {stack[top++] = 288;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 280;goto st1257;}
+ {stack[top++] = 288;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 280;goto st1268;}
+ {stack[top++] = 288;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 280;goto st1270;}
+ {stack[top++] = 288;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 280;goto st1299;}
+ {stack[top++] = 288;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 280;goto st1312;}
+ {stack[top++] = 288;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 280;goto st1325;}
+ {stack[top++] = 288;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 280;goto st1331;}
+ {stack[top++] = 288;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 280;goto st1349;}
+ {stack[top++] = 288;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 280;goto st1344;}
+ {stack[top++] = 288;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 280;goto st1362;}
+ {stack[top++] = 288;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 280;goto st1368;}
+ {stack[top++] = 288;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 280;goto st1374;}
+ {stack[top++] = 288;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 280;goto st1382;}
+ {stack[top++] = 288;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 280;goto st1390;}
+ {stack[top++] = 288;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st280;
-tr832:
+ goto st288;
+tr850:
{ s->r_type = KNOT_RRTYPE_A; }
{
rdata_tail = s->r_data;
@@ -38684,99 +39685,100 @@ tr832:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 280;goto st844;}
+ {stack[top++] = 288;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 280;goto st846;}
+ {stack[top++] = 288;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 280;goto st848;}
+ {stack[top++] = 288;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 280;goto st880;}
+ {stack[top++] = 288;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 280;goto st885;}
+ {stack[top++] = 288;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 280;goto st890;}
+ {stack[top++] = 288;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 280;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 288;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 280;goto st899;}
+ {stack[top++] = 288;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 280;goto st901;}
+ {stack[top++] = 288;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 280;goto st956;}
+ {stack[top++] = 288;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 280;goto st967;}
+ {stack[top++] = 288;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 280;goto st984;}
+ {stack[top++] = 288;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 280;goto st995;}
+ {stack[top++] = 288;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 280;goto st1006;}
+ {stack[top++] = 288;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 280;goto st1019;}
+ {stack[top++] = 288;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 280;goto st1029;}
+ {stack[top++] = 288;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 280;goto st1068;}
+ {stack[top++] = 288;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 280;goto st1254;}
+ {stack[top++] = 288;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 280;goto st1257;}
+ {stack[top++] = 288;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 280;goto st1268;}
+ {stack[top++] = 288;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 280;goto st1270;}
+ {stack[top++] = 288;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 280;goto st1299;}
+ {stack[top++] = 288;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 280;goto st1312;}
+ {stack[top++] = 288;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 280;goto st1325;}
+ {stack[top++] = 288;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 280;goto st1331;}
+ {stack[top++] = 288;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 280;goto st1349;}
+ {stack[top++] = 288;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 280;goto st1344;}
+ {stack[top++] = 288;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 280;goto st1362;}
+ {stack[top++] = 288;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 280;goto st1368;}
+ {stack[top++] = 288;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 280;goto st1374;}
+ {stack[top++] = 288;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 280;goto st1382;}
+ {stack[top++] = 288;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 280;goto st1390;}
+ {stack[top++] = 288;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st280;
-st280:
+ goto st288;
+st288:
if ( ++p == pe )
- goto _test_eof280;
-case 280:
+ goto _test_eof288;
+case 288:
_widec = (*p);
if ( (*p) < 11 ) {
if ( (*p) > 9 ) {
@@ -38808,33 +39810,33 @@ case 280:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1801: goto tr845;
- case 1802: goto tr848;
- case 1824: goto tr845;
- case 1832: goto tr846;
- case 1833: goto tr847;
- case 1851: goto tr849;
- case 2057: goto tr977;
- case 2058: goto tr848;
- case 2080: goto tr977;
- case 2088: goto tr978;
- case 2089: goto tr979;
- case 2107: goto tr174;
+ case 1801: goto tr863;
+ case 1802: goto tr866;
+ case 1824: goto tr863;
+ case 1832: goto tr864;
+ case 1833: goto tr865;
+ case 1851: goto tr867;
+ case 2057: goto tr995;
+ case 2058: goto tr866;
+ case 2080: goto tr995;
+ case 2088: goto tr996;
+ case 2089: goto tr997;
+ case 2107: goto tr177;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr115;
+ goto tr117;
} else if ( _widec >= 1664 )
- goto tr95;
- goto tr83;
-tr980:
+ goto tr97;
+ goto tr85;
+tr998:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st281;
-tr977:
+ goto st289;
+tr995:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -38844,8 +39846,8 @@ tr977:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st281;
-tr978:
+ goto st289;
+tr996:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -38858,12 +39860,12 @@ tr978:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st281;
-tr979:
+ goto st289;
+tr997:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -38876,12 +39878,12 @@ tr979:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st281;
-tr981:
+ goto st289;
+tr999:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -38890,12 +39892,12 @@ tr981:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st281;
-tr982:
+ goto st289;
+tr1000:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -38904,15 +39906,15 @@ tr982:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st281;
-st281:
+ goto st289;
+st289:
if ( ++p == pe )
- goto _test_eof281;
-case 281:
+ goto _test_eof289;
+case 289:
_widec = (*p);
if ( (*p) < 11 ) {
if ( (*p) > 9 ) {
@@ -38944,38 +39946,38 @@ case 281:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1801: goto tr850;
- case 1802: goto tr96;
- case 1824: goto tr850;
- case 1832: goto tr851;
- case 1833: goto tr852;
- case 1851: goto tr853;
- case 2057: goto tr980;
- case 2058: goto tr96;
- case 2080: goto tr980;
- case 2088: goto tr981;
- case 2089: goto tr982;
- case 2107: goto tr178;
+ case 1801: goto tr868;
+ case 1802: goto tr98;
+ case 1824: goto tr868;
+ case 1832: goto tr869;
+ case 1833: goto tr870;
+ case 1851: goto tr871;
+ case 2057: goto tr998;
+ case 2058: goto tr98;
+ case 2080: goto tr998;
+ case 2088: goto tr999;
+ case 2089: goto tr1000;
+ case 2107: goto tr181;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr115;
+ goto tr117;
} else if ( _widec >= 1664 )
- goto tr95;
- goto tr83;
-tr820:
+ goto tr97;
+ goto tr85;
+tr838:
{
s->buffer_length = 0;
}
- goto st282;
-tr983:
+ goto st290;
+tr1001:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st282;
-tr813:
+ goto st290;
+tr831:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -38986,11 +39988,11 @@ tr813:
{
rdata_tail = s->r_data;
}
- goto st282;
-st282:
+ goto st290;
+st290:
if ( ++p == pe )
- goto _test_eof282;
-case 282:
+ goto _test_eof290;
+case 290:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -39010,11 +40012,11 @@ case 282:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr984;
+ goto tr1002;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr983;
- goto tr75;
-tr821:
+ goto tr1001;
+ goto tr77;
+tr839:
{
s->line_counter++;
}
@@ -39022,92 +40024,93 @@ tr821:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 283;goto st844;}
+ {stack[top++] = 291;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 283;goto st846;}
+ {stack[top++] = 291;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 283;goto st848;}
+ {stack[top++] = 291;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 283;goto st880;}
+ {stack[top++] = 291;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 283;goto st885;}
+ {stack[top++] = 291;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 283;goto st890;}
+ {stack[top++] = 291;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 283;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 291;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 283;goto st899;}
+ {stack[top++] = 291;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 283;goto st901;}
+ {stack[top++] = 291;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 283;goto st956;}
+ {stack[top++] = 291;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 283;goto st967;}
+ {stack[top++] = 291;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 283;goto st984;}
+ {stack[top++] = 291;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 283;goto st995;}
+ {stack[top++] = 291;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 283;goto st1006;}
+ {stack[top++] = 291;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 283;goto st1019;}
+ {stack[top++] = 291;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 283;goto st1029;}
+ {stack[top++] = 291;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 283;goto st1068;}
+ {stack[top++] = 291;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 283;goto st1254;}
+ {stack[top++] = 291;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 283;goto st1257;}
+ {stack[top++] = 291;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 283;goto st1268;}
+ {stack[top++] = 291;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 283;goto st1270;}
+ {stack[top++] = 291;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 283;goto st1299;}
+ {stack[top++] = 291;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 283;goto st1312;}
+ {stack[top++] = 291;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 283;goto st1325;}
+ {stack[top++] = 291;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 283;goto st1331;}
+ {stack[top++] = 291;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 283;goto st1349;}
+ {stack[top++] = 291;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 283;goto st1344;}
+ {stack[top++] = 291;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 283;goto st1362;}
+ {stack[top++] = 291;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 283;goto st1368;}
+ {stack[top++] = 291;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 283;goto st1374;}
+ {stack[top++] = 291;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 283;goto st1382;}
+ {stack[top++] = 291;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 283;goto st1390;}
+ {stack[top++] = 291;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st283;
-tr814:
+ goto st291;
+tr832:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -39122,95 +40125,96 @@ tr814:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 283;goto st844;}
+ {stack[top++] = 291;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 283;goto st846;}
+ {stack[top++] = 291;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 283;goto st848;}
+ {stack[top++] = 291;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 283;goto st880;}
+ {stack[top++] = 291;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 283;goto st885;}
+ {stack[top++] = 291;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 283;goto st890;}
+ {stack[top++] = 291;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 283;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 291;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 283;goto st899;}
+ {stack[top++] = 291;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 283;goto st901;}
+ {stack[top++] = 291;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 283;goto st956;}
+ {stack[top++] = 291;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 283;goto st967;}
+ {stack[top++] = 291;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 283;goto st984;}
+ {stack[top++] = 291;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 283;goto st995;}
+ {stack[top++] = 291;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 283;goto st1006;}
+ {stack[top++] = 291;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 283;goto st1019;}
+ {stack[top++] = 291;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 283;goto st1029;}
+ {stack[top++] = 291;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 283;goto st1068;}
+ {stack[top++] = 291;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 283;goto st1254;}
+ {stack[top++] = 291;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 283;goto st1257;}
+ {stack[top++] = 291;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 283;goto st1268;}
+ {stack[top++] = 291;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 283;goto st1270;}
+ {stack[top++] = 291;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 283;goto st1299;}
+ {stack[top++] = 291;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 283;goto st1312;}
+ {stack[top++] = 291;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 283;goto st1325;}
+ {stack[top++] = 291;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 283;goto st1331;}
+ {stack[top++] = 291;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 283;goto st1349;}
+ {stack[top++] = 291;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 283;goto st1344;}
+ {stack[top++] = 291;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 283;goto st1362;}
+ {stack[top++] = 291;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 283;goto st1368;}
+ {stack[top++] = 291;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 283;goto st1374;}
+ {stack[top++] = 291;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 283;goto st1382;}
+ {stack[top++] = 291;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 283;goto st1390;}
+ {stack[top++] = 291;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st283;
-st283:
+ goto st291;
+st291:
if ( ++p == pe )
- goto _test_eof283;
-case 283:
+ goto _test_eof291;
+case 291:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -39228,68 +40232,70 @@ case 283:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr985;
- case 32: goto tr985;
- case 40: goto tr986;
- case 41: goto tr987;
- case 58: goto tr73;
- case 65: goto tr122;
- case 67: goto tr123;
- case 68: goto tr124;
- case 69: goto tr125;
- case 72: goto tr126;
- case 73: goto tr127;
- case 75: goto tr128;
- case 76: goto tr129;
- case 77: goto tr130;
- case 78: goto tr131;
- case 79: goto tr132;
- case 80: goto tr133;
- case 82: goto tr134;
- case 83: goto tr135;
- case 84: goto tr136;
- case 85: goto tr137;
- case 90: goto tr138;
- case 92: goto tr78;
- case 97: goto tr122;
- case 99: goto tr123;
- case 100: goto tr124;
- case 101: goto tr125;
- case 104: goto tr126;
- case 105: goto tr127;
- case 107: goto tr128;
- case 108: goto tr129;
- case 109: goto tr130;
- case 110: goto tr131;
- case 111: goto tr132;
- case 112: goto tr133;
- case 114: goto tr134;
- case 115: goto tr135;
- case 116: goto tr136;
- case 117: goto tr137;
- case 122: goto tr138;
- case 2826: goto tr87;
- case 2875: goto tr88;
- case 3082: goto tr912;
- case 3131: goto tr988;
- case 3338: goto tr105;
- case 3387: goto tr106;
- case 3594: goto tr912;
- case 3643: goto tr989;
+ case 9: goto tr1003;
+ case 32: goto tr1003;
+ case 40: goto tr1004;
+ case 41: goto tr1005;
+ case 58: goto tr75;
+ case 65: goto tr124;
+ case 67: goto tr125;
+ case 68: goto tr126;
+ case 69: goto tr127;
+ case 72: goto tr128;
+ case 73: goto tr129;
+ case 75: goto tr130;
+ case 76: goto tr131;
+ case 77: goto tr132;
+ case 78: goto tr133;
+ case 79: goto tr134;
+ case 80: goto tr135;
+ case 82: goto tr136;
+ case 83: goto tr137;
+ case 84: goto tr138;
+ case 85: goto tr139;
+ case 87: goto tr140;
+ case 90: goto tr141;
+ case 92: goto tr80;
+ case 97: goto tr124;
+ case 99: goto tr125;
+ case 100: goto tr126;
+ case 101: goto tr127;
+ case 104: goto tr128;
+ case 105: goto tr129;
+ case 107: goto tr130;
+ case 108: goto tr131;
+ case 109: goto tr132;
+ case 110: goto tr133;
+ case 111: goto tr134;
+ case 112: goto tr135;
+ case 114: goto tr136;
+ case 115: goto tr137;
+ case 116: goto tr138;
+ case 117: goto tr139;
+ case 119: goto tr140;
+ case 122: goto tr141;
+ case 2826: goto tr89;
+ case 2875: goto tr90;
+ case 3082: goto tr930;
+ case 3131: goto tr1006;
+ case 3338: goto tr107;
+ case 3387: goto tr108;
+ case 3594: goto tr930;
+ case 3643: goto tr1007;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr73;
+ goto tr75;
} else if ( _widec > 47 ) {
if ( _widec > 57 ) {
if ( 60 <= _widec )
- goto tr73;
+ goto tr75;
} else if ( _widec >= 48 )
- goto tr121;
+ goto tr123;
} else
- goto tr73;
- goto tr118;
-tr822:
+ goto tr75;
+ goto tr120;
+tr840:
{
s->buffer_length = 0;
}
@@ -39297,92 +40303,93 @@ tr822:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 284;goto st844;}
+ {stack[top++] = 292;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 284;goto st846;}
+ {stack[top++] = 292;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 284;goto st848;}
+ {stack[top++] = 292;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 284;goto st880;}
+ {stack[top++] = 292;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 284;goto st885;}
+ {stack[top++] = 292;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 284;goto st890;}
+ {stack[top++] = 292;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 284;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 292;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 284;goto st899;}
+ {stack[top++] = 292;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 284;goto st901;}
+ {stack[top++] = 292;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 284;goto st956;}
+ {stack[top++] = 292;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 284;goto st967;}
+ {stack[top++] = 292;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 284;goto st984;}
+ {stack[top++] = 292;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 284;goto st995;}
+ {stack[top++] = 292;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 284;goto st1006;}
+ {stack[top++] = 292;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 284;goto st1019;}
+ {stack[top++] = 292;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 284;goto st1029;}
+ {stack[top++] = 292;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 284;goto st1068;}
+ {stack[top++] = 292;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 284;goto st1254;}
+ {stack[top++] = 292;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 284;goto st1257;}
+ {stack[top++] = 292;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 284;goto st1268;}
+ {stack[top++] = 292;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 284;goto st1270;}
+ {stack[top++] = 292;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 284;goto st1299;}
+ {stack[top++] = 292;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 284;goto st1312;}
+ {stack[top++] = 292;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 284;goto st1325;}
+ {stack[top++] = 292;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 284;goto st1331;}
+ {stack[top++] = 292;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 284;goto st1349;}
+ {stack[top++] = 292;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 284;goto st1344;}
+ {stack[top++] = 292;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 284;goto st1362;}
+ {stack[top++] = 292;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 284;goto st1368;}
+ {stack[top++] = 292;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 284;goto st1374;}
+ {stack[top++] = 292;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 284;goto st1382;}
+ {stack[top++] = 292;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 284;goto st1390;}
+ {stack[top++] = 292;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st284;
-tr815:
+ goto st292;
+tr833:
{
s->r_owner_length = s->dname_tmp_length;
}
@@ -39397,95 +40404,96 @@ tr815:
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = 284;goto st844;}
+ {stack[top++] = 292;goto st886;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = 284;goto st846;}
+ {stack[top++] = 292;goto st888;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = 284;goto st848;}
+ {stack[top++] = 292;goto st890;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = 284;goto st880;}
+ {stack[top++] = 292;goto st922;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = 284;goto st885;}
+ {stack[top++] = 292;goto st927;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = 284;goto st890;}
+ {stack[top++] = 292;goto st932;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = 284;goto st895;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = 292;goto st937;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = 284;goto st899;}
+ {stack[top++] = 292;goto st941;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = 284;goto st901;}
+ {stack[top++] = 292;goto st943;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = 284;goto st956;}
+ {stack[top++] = 292;goto st998;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = 284;goto st967;}
+ {stack[top++] = 292;goto st1009;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = 284;goto st984;}
+ {stack[top++] = 292;goto st1026;}
case KNOT_RRTYPE_APL:
- {stack[top++] = 284;goto st995;}
+ {stack[top++] = 292;goto st1037;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = 284;goto st1006;}
+ {stack[top++] = 292;goto st1048;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = 284;goto st1019;}
+ {stack[top++] = 292;goto st1061;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = 284;goto st1029;}
+ {stack[top++] = 292;goto st1071;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = 284;goto st1068;}
+ {stack[top++] = 292;goto st1110;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = 284;goto st1254;}
+ {stack[top++] = 292;goto st1302;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = 284;goto st1257;}
+ {stack[top++] = 292;goto st1305;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = 284;goto st1268;}
+ {stack[top++] = 292;goto st1316;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = 284;goto st1270;}
+ {stack[top++] = 292;goto st1318;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = 284;goto st1299;}
+ {stack[top++] = 292;goto st1347;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = 284;goto st1312;}
+ {stack[top++] = 292;goto st1360;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = 284;goto st1325;}
+ {stack[top++] = 292;goto st1373;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = 284;goto st1331;}
+ {stack[top++] = 292;goto st1379;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = 284;goto st1349;}
+ {stack[top++] = 292;goto st1397;}
case KNOT_RRTYPE_L32:
- {stack[top++] = 284;goto st1344;}
+ {stack[top++] = 292;goto st1392;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = 284;goto st1362;}
+ {stack[top++] = 292;goto st1410;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = 284;goto st1368;}
+ {stack[top++] = 292;goto st1416;}
case KNOT_RRTYPE_URI:
- {stack[top++] = 284;goto st1374;}
+ {stack[top++] = 292;goto st1422;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = 284;goto st1382;}
+ {stack[top++] = 292;goto st1430;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = 284;goto st1390;}
+ {stack[top++] = 292;goto st1438;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {goto st307;}
+ {goto st316;}
}
}
- goto st284;
-st284:
+ goto st292;
+st292:
if ( ++p == pe )
- goto _test_eof284;
-case 284:
+ goto _test_eof292;
+case 292:
_widec = (*p);
if ( (*p) < 11 ) {
if ( (*p) > 9 ) {
@@ -39517,30 +40525,30 @@ case 284:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1801: goto tr84;
- case 1802: goto tr87;
- case 1824: goto tr84;
- case 1832: goto tr85;
- case 1833: goto tr86;
- case 1851: goto tr88;
- case 2057: goto tr990;
- case 2058: goto tr915;
- case 2080: goto tr990;
- case 2088: goto tr991;
- case 2089: goto tr992;
- case 2107: goto tr926;
+ case 1801: goto tr86;
+ case 1802: goto tr89;
+ case 1824: goto tr86;
+ case 1832: goto tr87;
+ case 1833: goto tr88;
+ case 1851: goto tr90;
+ case 2057: goto tr1008;
+ case 2058: goto tr933;
+ case 2080: goto tr1008;
+ case 2088: goto tr1009;
+ case 2089: goto tr1010;
+ case 2107: goto tr944;
}
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr983;
- goto tr83;
-tr993:
+ goto tr1001;
+ goto tr85;
+tr1011:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st285;
-tr990:
+ goto st293;
+tr1008:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -39550,8 +40558,8 @@ tr990:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st285;
-tr991:
+ goto st293;
+tr1009:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -39564,12 +40572,12 @@ tr991:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st285;
-tr992:
+ goto st293;
+tr1010:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -39582,12 +40590,12 @@ tr992:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st285;
-tr994:
+ goto st293;
+tr1012:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -39596,12 +40604,12 @@ tr994:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st285;
-tr995:
+ goto st293;
+tr1013:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
@@ -39610,15 +40618,15 @@ tr995:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st285;
-st285:
+ goto st293;
+st293:
if ( ++p == pe )
- goto _test_eof285;
-case 285:
+ goto _test_eof293;
+case 293:
_widec = (*p);
if ( (*p) < 11 ) {
if ( (*p) > 9 ) {
@@ -39651,22 +40659,22 @@ case 285:
}
switch( _widec ) {
case 1801: goto st7;
- case 1802: goto tr93;
+ case 1802: goto tr95;
case 1824: goto st7;
- case 1832: goto tr91;
- case 1833: goto tr92;
- case 1851: goto tr94;
- case 2057: goto tr993;
- case 2058: goto tr844;
- case 2080: goto tr993;
- case 2088: goto tr994;
- case 2089: goto tr995;
- case 2107: goto tr930;
+ case 1832: goto tr93;
+ case 1833: goto tr94;
+ case 1851: goto tr96;
+ case 2057: goto tr1011;
+ case 2058: goto tr862;
+ case 2080: goto tr1011;
+ case 2088: goto tr1012;
+ case 2089: goto tr1013;
+ case 2107: goto tr948;
}
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr983;
- goto tr83;
-tr4232:
+ goto tr1001;
+ goto tr85;
+tr4312:
{
s->r_class = s->default_class;
}
@@ -39674,9 +40682,9 @@ tr4232:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 286;goto st309;} }
- goto st286;
-tr4253:
+ { p--; {stack[top++] = 294;goto st318;} }
+ goto st294;
+tr4334:
{
s->r_class = s->default_class;
}
@@ -39687,12 +40695,12 @@ tr4253:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 286;goto st309;} }
- goto st286;
-st286:
+ { p--; {stack[top++] = 294;goto st318;} }
+ goto st294;
+st294:
if ( ++p == pe )
- goto _test_eof286;
-case 286:
+ goto _test_eof294;
+case 294:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -39706,10 +40714,10 @@ case 286:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 65: goto st18;
case 68: goto st22;
case 69: goto st29;
@@ -39720,11 +40728,11 @@ case 286:
case 101: goto st29;
case 110: goto st32;
case 115: goto st36;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4233:
+ goto tr1014;
+tr4313:
{
s->r_class = s->default_class;
}
@@ -39732,9 +40740,9 @@ tr4233:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 287;goto st309;} }
- goto st287;
-tr4254:
+ { p--; {stack[top++] = 295;goto st318;} }
+ goto st295;
+tr4335:
{
s->r_class = s->default_class;
}
@@ -39745,12 +40753,12 @@ tr4254:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 287;goto st309;} }
- goto st287;
-st287:
+ { p--; {stack[top++] = 295;goto st318;} }
+ goto st295;
+st295:
if ( ++p == pe )
- goto _test_eof287;
-case 287:
+ goto _test_eof295;
+case 295:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -39764,21 +40772,21 @@ case 287:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 72: goto st41;
case 78: goto st45;
case 83: goto st53;
case 104: goto st41;
case 110: goto st45;
case 115: goto st53;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4234:
+ goto tr1014;
+tr4314:
{
s->r_class = s->default_class;
}
@@ -39786,9 +40794,9 @@ tr4234:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 288;goto st309;} }
- goto st288;
-tr4255:
+ { p--; {stack[top++] = 296;goto st318;} }
+ goto st296;
+tr4336:
{
s->r_class = s->default_class;
}
@@ -39799,12 +40807,12 @@ tr4255:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 288;goto st309;} }
- goto st288;
-st288:
+ { p--; {stack[top++] = 296;goto st318;} }
+ goto st296;
+st296:
if ( ++p == pe )
- goto _test_eof288;
-case 288:
+ goto _test_eof296;
+case 296:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -39818,17 +40826,17 @@ case 288:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 85: goto st55;
case 117: goto st55;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4235:
+ goto tr1014;
+tr4315:
{
s->r_class = s->default_class;
}
@@ -39836,9 +40844,9 @@ tr4235:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 289;goto st309;} }
- goto st289;
-tr4256:
+ { p--; {stack[top++] = 297;goto st318;} }
+ goto st297;
+tr4337:
{
s->r_class = s->default_class;
}
@@ -39849,12 +40857,12 @@ tr4256:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 289;goto st309;} }
- goto st289;
-st289:
+ { p--; {stack[top++] = 297;goto st318;} }
+ goto st297;
+st297:
if ( ++p == pe )
- goto _test_eof289;
-case 289:
+ goto _test_eof297;
+case 297:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -39868,19 +40876,19 @@ case 289:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 73: goto st62;
case 84: goto st66;
case 105: goto st62;
case 116: goto st66;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4257:
+ goto tr1014;
+tr4338:
{
s->r_class = s->default_class;
}
@@ -39891,12 +40899,12 @@ tr4257:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 290;goto st309;} }
- goto st290;
-st290:
+ { p--; {stack[top++] = 298;goto st318;} }
+ goto st298;
+st298:
if ( ++p == pe )
- goto _test_eof290;
-case 290:
+ goto _test_eof298;
+case 298:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -39910,19 +40918,19 @@ case 290:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
- case 78: goto st176;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
+ case 78: goto st182;
case 80: goto st74;
- case 110: goto st176;
+ case 110: goto st182;
case 112: goto st74;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4237:
+ goto tr1014;
+tr4317:
{
s->r_class = s->default_class;
}
@@ -39930,9 +40938,9 @@ tr4237:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 291;goto st309;} }
- goto st291;
-tr4258:
+ { p--; {stack[top++] = 299;goto st318;} }
+ goto st299;
+tr4339:
{
s->r_class = s->default_class;
}
@@ -39943,12 +40951,12 @@ tr4258:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 291;goto st309;} }
- goto st291;
-st291:
+ { p--; {stack[top++] = 299;goto st318;} }
+ goto st299;
+st299:
if ( ++p == pe )
- goto _test_eof291;
-case 291:
+ goto _test_eof299;
+case 299:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -39962,19 +40970,19 @@ case 291:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 69: goto st82;
case 88: goto st84;
case 101: goto st82;
case 120: goto st84;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4238:
+ goto tr1014;
+tr4318:
{
s->r_class = s->default_class;
}
@@ -39982,9 +40990,9 @@ tr4238:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 292;goto st309;} }
- goto st292;
-tr4259:
+ { p--; {stack[top++] = 300;goto st318;} }
+ goto st300;
+tr4340:
{
s->r_class = s->default_class;
}
@@ -39995,12 +41003,12 @@ tr4259:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 292;goto st309;} }
- goto st292;
-st292:
+ { p--; {stack[top++] = 300;goto st318;} }
+ goto st300;
+st300:
if ( ++p == pe )
- goto _test_eof292;
-case 292:
+ goto _test_eof300;
+case 300:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -40014,21 +41022,21 @@ case 292:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 51: goto st86;
case 54: goto st88;
case 79: goto st90;
case 80: goto st92;
case 111: goto st90;
case 112: goto st92;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4239:
+ goto tr1014;
+tr4319:
{
s->r_class = s->default_class;
}
@@ -40036,9 +41044,9 @@ tr4239:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 293;goto st309;} }
- goto st293;
-tr4260:
+ { p--; {stack[top++] = 301;goto st318;} }
+ goto st301;
+tr4341:
{
s->r_class = s->default_class;
}
@@ -40049,12 +41057,12 @@ tr4260:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 293;goto st309;} }
- goto st293;
-st293:
+ { p--; {stack[top++] = 301;goto st318;} }
+ goto st301;
+st301:
if ( ++p == pe )
- goto _test_eof293;
-case 293:
+ goto _test_eof301;
+case 301:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -40068,19 +41076,19 @@ case 293:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 73: goto st94;
case 88: goto st98;
case 105: goto st94;
case 120: goto st98;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4240:
+ goto tr1014;
+tr4320:
{
s->r_class = s->default_class;
}
@@ -40088,9 +41096,9 @@ tr4240:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 294;goto st309;} }
- goto st294;
-tr4261:
+ { p--; {stack[top++] = 302;goto st318;} }
+ goto st302;
+tr4342:
{
s->r_class = s->default_class;
}
@@ -40101,12 +41109,12 @@ tr4261:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 294;goto st309;} }
- goto st294;
-st294:
+ { p--; {stack[top++] = 302;goto st318;} }
+ goto st302;
+st302:
if ( ++p == pe )
- goto _test_eof294;
-case 294:
+ goto _test_eof302;
+case 302:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -40120,21 +41128,21 @@ case 294:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 65: goto st100;
case 73: goto st104;
case 83: goto st106;
case 97: goto st100;
case 105: goto st104;
case 115: goto st106;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4241:
+ goto tr1014;
+tr4321:
{
s->r_class = s->default_class;
}
@@ -40142,9 +41150,9 @@ tr4241:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 295;goto st309;} }
- goto st295;
-tr4262:
+ { p--; {stack[top++] = 303;goto st318;} }
+ goto st303;
+tr4343:
{
s->r_class = s->default_class;
}
@@ -40155,12 +41163,12 @@ tr4262:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 295;goto st309;} }
- goto st295;
-st295:
+ { p--; {stack[top++] = 303;goto st318;} }
+ goto st303;
+st303:
if ( ++p == pe )
- goto _test_eof295;
-case 295:
+ goto _test_eof303;
+case 303:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -40174,17 +41182,17 @@ case 295:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 80: goto st116;
case 112: goto st116;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4242:
+ goto tr1014;
+tr4322:
{
s->r_class = s->default_class;
}
@@ -40192,9 +41200,9 @@ tr4242:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 296;goto st309;} }
- goto st296;
-tr4263:
+ { p--; {stack[top++] = 304;goto st318;} }
+ goto st304;
+tr4344:
{
s->r_class = s->default_class;
}
@@ -40205,12 +41213,12 @@ tr4263:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 296;goto st309;} }
- goto st296;
-st296:
+ { p--; {stack[top++] = 304;goto st318;} }
+ goto st304;
+st304:
if ( ++p == pe )
- goto _test_eof296;
-case 296:
+ goto _test_eof304;
+case 304:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -40224,17 +41232,17 @@ case 296:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 84: goto st126;
case 116: goto st126;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4243:
+ goto tr1014;
+tr4323:
{
s->r_class = s->default_class;
}
@@ -40242,9 +41250,9 @@ tr4243:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 297;goto st309;} }
- goto st297;
-tr4264:
+ { p--; {stack[top++] = 305;goto st318;} }
+ goto st305;
+tr4345:
{
s->r_class = s->default_class;
}
@@ -40255,12 +41263,12 @@ tr4264:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 297;goto st309;} }
- goto st297;
-st297:
+ { p--; {stack[top++] = 305;goto st318;} }
+ goto st305;
+st305:
if ( ++p == pe )
- goto _test_eof297;
-case 297:
+ goto _test_eof305;
+case 305:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -40274,21 +41282,21 @@ case 297:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 80: goto st129;
case 82: goto st130;
case 84: goto st134;
case 112: goto st129;
case 114: goto st130;
case 116: goto st134;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4244:
+ goto tr1014;
+tr4324:
{
s->r_class = s->default_class;
}
@@ -40296,9 +41304,9 @@ tr4244:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 298;goto st309;} }
- goto st298;
-tr4265:
+ { p--; {stack[top++] = 306;goto st318;} }
+ goto st306;
+tr4346:
{
s->r_class = s->default_class;
}
@@ -40309,12 +41317,12 @@ tr4265:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 298;goto st309;} }
- goto st298;
-st298:
+ { p--; {stack[top++] = 306;goto st318;} }
+ goto st306;
+st306:
if ( ++p == pe )
- goto _test_eof298;
-case 298:
+ goto _test_eof306;
+case 306:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -40328,10 +41336,10 @@ case 298:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 77: goto st136;
case 79: goto st141;
case 80: goto st143;
@@ -40344,11 +41352,11 @@ case 298:
case 114: goto st145;
case 115: goto st147;
case 118: goto st151;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4245:
+ goto tr1014;
+tr4325:
{
s->r_class = s->default_class;
}
@@ -40356,9 +41364,9 @@ tr4245:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 299;goto st309;} }
- goto st299;
-tr4266:
+ { p--; {stack[top++] = 307;goto st318;} }
+ goto st307;
+tr4347:
{
s->r_class = s->default_class;
}
@@ -40369,12 +41377,12 @@ tr4266:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 299;goto st309;} }
- goto st299;
-st299:
+ { p--; {stack[top++] = 307;goto st318;} }
+ goto st307;
+st307:
if ( ++p == pe )
- goto _test_eof299;
-case 299:
+ goto _test_eof307;
+case 307:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -40388,21 +41396,21 @@ case 299:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 76: goto st155;
case 88: goto st158;
case 89: goto st160;
case 108: goto st155;
case 120: goto st158;
case 121: goto st160;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4246:
+ goto tr1014;
+tr4326:
{
s->r_class = s->default_class;
}
@@ -40410,9 +41418,9 @@ tr4246:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 300;goto st309;} }
- goto st300;
-tr4267:
+ { p--; {stack[top++] = 308;goto st318;} }
+ goto st308;
+tr4348:
{
s->r_class = s->default_class;
}
@@ -40423,12 +41431,12 @@ tr4267:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 300;goto st309;} }
- goto st300;
-st300:
+ { p--; {stack[top++] = 308;goto st318;} }
+ goto st308;
+st308:
if ( ++p == pe )
- goto _test_eof300;
-case 300:
+ goto _test_eof308;
+case 308:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -40442,17 +41450,17 @@ case 300:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 82: goto st165;
case 114: goto st165;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr4247:
+ goto tr1014;
+tr4327:
{
s->r_class = s->default_class;
}
@@ -40460,9 +41468,9 @@ tr4247:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 301;goto st309;} }
- goto st301;
-tr4268:
+ { p--; {stack[top++] = 309;goto st318;} }
+ goto st309;
+tr4349:
{
s->r_class = s->default_class;
}
@@ -40473,12 +41481,12 @@ tr4268:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 301;goto st309;} }
- goto st301;
-st301:
+ { p--; {stack[top++] = 309;goto st318;} }
+ goto st309;
+st309:
if ( ++p == pe )
- goto _test_eof301;
-case 301:
+ goto _test_eof309;
+case 309:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -40492,33 +41500,83 @@ case 301:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
- case 79: goto st168;
- case 111: goto st168;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
+ case 65: goto st168;
+ case 97: goto st168;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr25:
+ goto tr1014;
+tr4328:
+ {
+ s->r_class = s->default_class;
+ }
+ {
+ s->dname = s->r_owner;
+ s->r_owner_length = 0;
+ }
+ { p--; {stack[top++] = 310;goto st318;} }
+ goto st310;
+tr4350:
+ {
+ s->r_class = s->default_class;
+ }
+ {
+ s->r_ttl = s->default_ttl;
+ }
+ {
+ s->dname = s->r_owner;
+ s->r_owner_length = 0;
+ }
+ { p--; {stack[top++] = 310;goto st318;} }
+ goto st310;
+st310:
+ if ( ++p == pe )
+ goto _test_eof310;
+case 310:
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(1664 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(1664 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ }
+ switch( _widec ) {
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
+ case 79: goto st174;
+ case 111: goto st174;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
+ }
+ goto tr1014;
+tr26:
{
s->buffer_length = 0;
}
- goto st302;
-tr997:
+ goto st311;
+tr1015:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st302;
-tr4214:
+ goto st311;
+tr4294:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -40528,30 +41586,30 @@ tr4214:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st302;
-tr4282:
+ goto st311;
+tr4364:
{
s->buffer_length = 0;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st302;
-tr4278:
+ goto st311;
+tr4360:
{
NOERR;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -40561,11 +41619,11 @@ tr4278:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st302;
-st302:
+ goto st311;
+st311:
if ( ++p == pe )
- goto _test_eof302;
-case 302:
+ goto _test_eof311;
+case 311:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -40585,46 +41643,46 @@ case 302:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1802: goto tr754;
- case 2058: goto tr998;
+ case 1802: goto tr772;
+ case 2058: goto tr1016;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr997;
+ goto tr1015;
} else if ( _widec >= 1664 )
- goto tr753;
- goto tr89;
-tr697:
+ goto tr771;
+ goto tr91;
+tr714:
{
s->buffer_length = 0;
}
- goto st303;
-tr999:
+ goto st312;
+tr1017:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st303;
-tr4249:
+ goto st312;
+tr4330:
{
s->buffer_length = 0;
}
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st303;
-st303:
+ goto st312;
+st312:
if ( ++p == pe )
- goto _test_eof303;
-case 303:
+ goto _test_eof312;
+case 312:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -40644,16 +41702,16 @@ case 303:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1802: goto tr754;
- case 2058: goto tr1000;
+ case 1802: goto tr772;
+ case 2058: goto tr1018;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr999;
+ goto tr1017;
} else if ( _widec >= 1664 )
- goto tr753;
- goto tr151;
-tr4236:
+ goto tr771;
+ goto tr154;
+tr4316:
{
s->r_class = s->default_class;
}
@@ -40661,12 +41719,12 @@ tr4236:
s->dname = s->r_owner;
s->r_owner_length = 0;
}
- { p--; {stack[top++] = 304;goto st309;} }
- goto st304;
-st304:
+ { p--; {stack[top++] = 313;goto st318;} }
+ goto st313;
+st313:
if ( ++p == pe )
- goto _test_eof304;
-case 304:
+ goto _test_eof313;
+case 313:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -40680,37 +41738,37 @@ case 304:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr767;
- case 32: goto tr767;
- case 40: goto tr768;
- case 41: goto tr769;
+ case 9: goto tr785;
+ case 32: goto tr785;
+ case 40: goto tr786;
+ case 41: goto tr787;
case 78: goto st71;
case 80: goto st74;
case 110: goto st71;
case 112: goto st74;
- case 2058: goto tr770;
- case 2107: goto tr771;
+ case 2058: goto tr788;
+ case 2107: goto tr789;
}
- goto tr996;
-tr156:
+ goto tr1014;
+tr159:
{
s->buffer_length = 0;
}
- goto st305;
-tr1001:
+ goto st314;
+tr1019:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st305;
-tr150:
+ goto st314;
+tr153:
{
if (s->number64 <= UINT32_MAX) {
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -40720,11 +41778,11 @@ tr150:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st305;
-st305:
+ goto st314;
+st314:
if ( ++p == pe )
- goto _test_eof305;
-case 305:
+ goto _test_eof314;
+case 314:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -40744,33 +41802,33 @@ case 305:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1802: goto tr96;
- case 2058: goto tr1002;
+ case 1802: goto tr98;
+ case 2058: goto tr1020;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1001;
+ goto tr1019;
} else if ( _widec >= 1664 )
- goto tr95;
- goto tr151;
-tr1006:
+ goto tr97;
+ goto tr154;
+tr1024:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st306;
-tr1005:
+ goto st315;
+tr1023:
{
s->line_counter++;
}
- goto st306;
-st306:
+ goto st315;
+st315:
if ( ++p == pe )
- goto _test_eof306;
-case 306:
+ goto _test_eof315;
+case 315:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 41 <= (*p) && (*p) <= 41 ) {
@@ -40784,38 +41842,38 @@ case 306:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 266: goto tr1004;
- case 522: goto tr1005;
- case 1065: goto tr1006;
+ case 266: goto tr1022;
+ case 522: goto tr1023;
+ case 1065: goto tr1024;
}
if ( _widec < 11 ) {
if ( _widec <= 9 )
- goto st306;
+ goto st315;
} else if ( _widec > 40 ) {
if ( 42 <= _widec )
- goto st306;
+ goto st315;
} else
- goto st306;
+ goto st315;
goto st0;
-tr1004:
- { p--; {stack[top++] = 1406;goto st1396;} }
+tr1022:
+ { p--; {stack[top++] = 1454;goto st1444;} }
{
s->line_counter++;
}
- goto st1406;
-st1406:
+ goto st1454;
+st1454:
if ( ++p == pe )
- goto _test_eof1406;
-case 1406:
+ goto _test_eof1454;
+case 1454:
goto st0;
-st307:
+st316:
if ( ++p == pe )
- goto _test_eof307;
-case 307:
+ goto _test_eof316;
+case 316:
if ( (*p) == 10 )
- goto tr1008;
- goto tr1007;
-tr1007:
+ goto tr1026;
+ goto tr1025;
+tr1025:
{
s->buffer_length = 0;
}
@@ -40828,8 +41886,8 @@ tr1007:
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st308;
-tr1009:
+ goto st317;
+tr1027:
{
if ((*p) == '\r') {
ERR(ZS_DOS_NEWLINE);
@@ -40839,16 +41897,16 @@ tr1009:
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st308;
-st308:
+ goto st317;
+st317:
if ( ++p == pe )
- goto _test_eof308;
-case 308:
+ goto _test_eof317;
+case 317:
if ( (*p) == 10 )
- goto tr1010;
- goto tr1009;
-tr1008:
- cs = 1407;
+ goto tr1028;
+ goto tr1027;
+tr1026:
+ cs = 1455;
{
s->buffer_length = 0;
}
@@ -40885,18 +41943,18 @@ tr1008:
if (s->error.fatal) {
{p++; goto _out;}
}
- {goto st306;}
+ {goto st315;}
} else {
// Return if external processing.
- p--; cs = 306; {p++; goto _out;}
+ p--; cs = 315; {p++; goto _out;}
}
}
{
s->line_counter++;
}
goto _again;
-tr1010:
- cs = 1407;
+tr1028:
+ cs = 1455;
{
// Terminate the error context string.
s->buffer[s->buffer_length++] = 0;
@@ -40930,42 +41988,42 @@ tr1010:
if (s->error.fatal) {
{p++; goto _out;}
}
- {goto st306;}
+ {goto st315;}
} else {
// Return if external processing.
- p--; cs = 306; {p++; goto _out;}
+ p--; cs = 315; {p++; goto _out;}
}
}
{
s->line_counter++;
}
goto _again;
-st1407:
+st1455:
if ( ++p == pe )
- goto _test_eof1407;
-case 1407:
+ goto _test_eof1455;
+case 1455:
goto st0;
-st309:
+st318:
if ( ++p == pe )
- goto _test_eof309;
-case 309:
+ goto _test_eof318;
+case 318:
switch( (*p) ) {
- case 42: goto tr1012;
- case 46: goto tr1013;
- case 64: goto st317;
- case 92: goto tr1015;
- case 95: goto tr1012;
+ case 42: goto tr1030;
+ case 46: goto tr1031;
+ case 64: goto st326;
+ case 92: goto tr1033;
+ case 95: goto tr1030;
}
if ( (*p) < 65 ) {
if ( 45 <= (*p) && (*p) <= 57 )
- goto tr1012;
+ goto tr1030;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1012;
+ goto tr1030;
} else
- goto tr1012;
- goto tr1011;
-tr1012:
+ goto tr1030;
+ goto tr1029;
+tr1030:
{
s->item_length_position = 0;
s->dname_tmp_length = 0;
@@ -40981,11 +42039,11 @@ tr1012:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st310;
-tr1017:
+ goto st319;
+tr1035:
{
// Check for maximum dname label length.
if (s->item_length < ZS_MAX_LABEL_LENGTH) {
@@ -40993,11 +42051,11 @@ tr1017:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st310;
-tr1021:
+ goto st319;
+tr1039:
{
s->item_length = 0;
s->item_length_position = s->dname_tmp_length++;
@@ -41009,11 +42067,11 @@ tr1021:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st310;
-tr1028:
+ goto st319;
+tr1046:
{
s->dname_tmp_length++;
}
@@ -41024,38 +42082,38 @@ tr1028:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st310;
-st310:
+ goto st319;
+st319:
if ( ++p == pe )
- goto _test_eof310;
-case 310:
+ goto _test_eof319;
+case 319:
switch( (*p) ) {
- case 32: goto tr1016;
- case 42: goto tr1017;
- case 46: goto tr1018;
- case 59: goto tr1016;
- case 92: goto st312;
- case 95: goto tr1017;
+ case 32: goto tr1034;
+ case 42: goto tr1035;
+ case 46: goto tr1036;
+ case 59: goto tr1034;
+ case 92: goto st321;
+ case 95: goto tr1035;
}
if ( (*p) < 45 ) {
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1016;
+ goto tr1034;
} else if ( (*p) >= 9 )
- goto tr1016;
+ goto tr1034;
} else if ( (*p) > 57 ) {
if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1017;
+ goto tr1035;
} else if ( (*p) >= 65 )
- goto tr1017;
+ goto tr1035;
} else
- goto tr1017;
- goto tr1011;
-tr1016:
+ goto tr1035;
+ goto tr1029;
+tr1034:
{
// Check for maximum dname length overflow after each label.
// (at least the next label length must follow).
@@ -41064,7 +42122,7 @@ tr1016:
(uint8_t)(s->item_length);
} else {
WARN(ZS_DNAME_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -41077,14 +42135,14 @@ tr1016:
s->dname_tmp_length += s->zone_origin_length;
} else {
WARN(ZS_DNAME_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1408;
-tr1020:
+ goto st1456;
+tr1038:
{
// Enough room for the terminal label is guaranteed (_label_exit).
(s->dname)[s->dname_tmp_length++] = 0;
@@ -41092,8 +42150,8 @@ tr1020:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1408;
-tr1027:
+ goto st1456;
+tr1045:
{
s->dname_tmp_length++;
}
@@ -41105,7 +42163,7 @@ tr1027:
(uint8_t)(s->item_length);
} else {
WARN(ZS_DNAME_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -41118,14 +42176,14 @@ tr1027:
s->dname_tmp_length += s->zone_origin_length;
} else {
WARN(ZS_DNAME_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1408;
-tr1031:
+ goto st1456;
+tr1049:
{
// Copy already verified zone origin.
memcpy(s->dname,
@@ -41137,13 +42195,13 @@ tr1031:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1408;
-st1408:
+ goto st1456;
+st1456:
if ( ++p == pe )
- goto _test_eof1408;
-case 1408:
+ goto _test_eof1456;
+case 1456:
goto st0;
-tr1018:
+tr1036:
{
// Check for maximum dname length overflow after each label.
// (at least the next label length must follow).
@@ -41152,11 +42210,11 @@ tr1018:
(uint8_t)(s->item_length);
} else {
WARN(ZS_DNAME_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st311;
-tr1029:
+ goto st320;
+tr1047:
{
s->dname_tmp_length++;
}
@@ -41168,38 +42226,38 @@ tr1029:
(uint8_t)(s->item_length);
} else {
WARN(ZS_DNAME_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st311;
-st311:
+ goto st320;
+st320:
if ( ++p == pe )
- goto _test_eof311;
-case 311:
+ goto _test_eof320;
+case 320:
switch( (*p) ) {
- case 32: goto tr1020;
- case 42: goto tr1021;
- case 45: goto tr1021;
- case 59: goto tr1020;
- case 92: goto tr1022;
- case 95: goto tr1021;
+ case 32: goto tr1038;
+ case 42: goto tr1039;
+ case 45: goto tr1039;
+ case 59: goto tr1038;
+ case 92: goto tr1040;
+ case 95: goto tr1039;
}
if ( (*p) < 47 ) {
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1020;
+ goto tr1038;
} else if ( (*p) >= 9 )
- goto tr1020;
+ goto tr1038;
} else if ( (*p) > 57 ) {
if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1021;
+ goto tr1039;
} else if ( (*p) >= 65 )
- goto tr1021;
+ goto tr1039;
} else
- goto tr1021;
- goto tr1011;
-tr1015:
+ goto tr1039;
+ goto tr1029;
+tr1033:
{
s->item_length_position = 0;
s->dname_tmp_length = 0;
@@ -41208,142 +42266,142 @@ tr1015:
s->item_length = 0;
s->item_length_position = s->dname_tmp_length++;
}
- goto st312;
-tr1022:
+ goto st321;
+tr1040:
{
s->item_length = 0;
s->item_length_position = s->dname_tmp_length++;
}
- goto st312;
-tr1030:
+ goto st321;
+tr1048:
{
s->dname_tmp_length++;
}
- goto st312;
-st312:
+ goto st321;
+st321:
if ( ++p == pe )
- goto _test_eof312;
-case 312:
+ goto _test_eof321;
+case 321:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1023;
- goto tr1017;
-tr1023:
+ goto tr1041;
+ goto tr1035;
+tr1041:
{
if (s->item_length < ZS_MAX_LABEL_LENGTH) {
(s->dname)[s->dname_tmp_length] = 0;
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
(s->dname)[s->dname_tmp_length] *= 10;
(s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)];
}
- goto st313;
-st313:
+ goto st322;
+st322:
if ( ++p == pe )
- goto _test_eof313;
-case 313:
+ goto _test_eof322;
+case 322:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1025;
- goto tr1024;
-tr1025:
+ goto tr1043;
+ goto tr1042;
+tr1043:
{
(s->dname)[s->dname_tmp_length] *= 10;
(s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)];
}
- goto st314;
-st314:
+ goto st323;
+st323:
if ( ++p == pe )
- goto _test_eof314;
-case 314:
+ goto _test_eof323;
+case 323:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1026;
- goto tr1024;
-tr1026:
+ goto tr1044;
+ goto tr1042;
+tr1044:
{
(s->dname)[s->dname_tmp_length] *= 10;
(s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)];
}
- goto st315;
-st315:
+ goto st324;
+st324:
if ( ++p == pe )
- goto _test_eof315;
-case 315:
+ goto _test_eof324;
+case 324:
switch( (*p) ) {
- case 32: goto tr1027;
- case 42: goto tr1028;
- case 46: goto tr1029;
- case 59: goto tr1027;
- case 92: goto tr1030;
- case 95: goto tr1028;
+ case 32: goto tr1045;
+ case 42: goto tr1046;
+ case 46: goto tr1047;
+ case 59: goto tr1045;
+ case 92: goto tr1048;
+ case 95: goto tr1046;
}
if ( (*p) < 45 ) {
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1027;
+ goto tr1045;
} else if ( (*p) >= 9 )
- goto tr1027;
+ goto tr1045;
} else if ( (*p) > 57 ) {
if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1028;
+ goto tr1046;
} else if ( (*p) >= 65 )
- goto tr1028;
+ goto tr1046;
} else
- goto tr1028;
- goto tr1024;
-tr1013:
+ goto tr1046;
+ goto tr1042;
+tr1031:
{
s->item_length_position = 0;
s->dname_tmp_length = 0;
}
- goto st316;
-st316:
+ goto st325;
+st325:
if ( ++p == pe )
- goto _test_eof316;
-case 316:
+ goto _test_eof325;
+case 325:
switch( (*p) ) {
- case 32: goto tr1020;
- case 59: goto tr1020;
+ case 32: goto tr1038;
+ case 59: goto tr1038;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1020;
+ goto tr1038;
} else if ( (*p) >= 9 )
- goto tr1020;
- goto tr1011;
-st317:
+ goto tr1038;
+ goto tr1029;
+st326:
if ( ++p == pe )
- goto _test_eof317;
-case 317:
+ goto _test_eof326;
+case 326:
switch( (*p) ) {
- case 32: goto tr1031;
- case 59: goto tr1031;
+ case 32: goto tr1049;
+ case 59: goto tr1049;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1031;
+ goto tr1049;
} else if ( (*p) >= 9 )
- goto tr1031;
- goto tr1011;
-st318:
+ goto tr1049;
+ goto tr1029;
+st327:
if ( ++p == pe )
- goto _test_eof318;
-case 318:
+ goto _test_eof327;
+case 327:
switch( (*p) ) {
- case 34: goto st324;
- case 92: goto st320;
+ case 34: goto st333;
+ case 92: goto st329;
}
if ( (*p) > 58 ) {
if ( 60 <= (*p) && (*p) <= 126 )
- goto tr1033;
+ goto tr1051;
} else if ( (*p) >= 33 )
- goto tr1033;
- goto tr1032;
-tr1033:
+ goto tr1051;
+ goto tr1050;
+tr1051:
{
if (rdata_tail <= rdata_stop) {
// Split long string.
@@ -41356,18 +42414,18 @@ tr1033:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
*(rdata_tail++) = (*p);
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st319;
-tr1037:
+ goto st328;
+tr1055:
{
if (s->comma_list) {
uint8_t *last_two = rdata_tail - 2;
@@ -41375,7 +42433,7 @@ tr1037:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -41393,7 +42451,7 @@ tr1037:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -41409,18 +42467,18 @@ tr1037:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
*(rdata_tail++) = (*p);
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st319;
-tr1045:
+ goto st328;
+tr1063:
{
rdata_tail++;
}
@@ -41431,7 +42489,7 @@ tr1045:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -41449,7 +42507,7 @@ tr1045:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -41465,40 +42523,40 @@ tr1045:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
*(rdata_tail++) = (*p);
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st319;
-st319:
+ goto st328;
+st328:
if ( ++p == pe )
- goto _test_eof319;
-case 319:
+ goto _test_eof328;
+case 328:
switch( (*p) ) {
- case 32: goto tr1036;
- case 33: goto tr1037;
- case 59: goto tr1036;
- case 92: goto tr1039;
+ case 32: goto tr1054;
+ case 33: goto tr1055;
+ case 59: goto tr1054;
+ case 92: goto tr1057;
}
if ( (*p) < 35 ) {
if ( 9 <= (*p) && (*p) <= 10 )
- goto tr1036;
+ goto tr1054;
} else if ( (*p) > 39 ) {
if ( (*p) > 41 ) {
if ( 42 <= (*p) && (*p) <= 126 )
- goto tr1037;
+ goto tr1055;
} else if ( (*p) >= 40 )
- goto tr1038;
+ goto tr1056;
} else
- goto tr1037;
- goto tr1032;
-tr1036:
+ goto tr1055;
+ goto tr1050;
+tr1054:
{
if (s->comma_list) {
uint8_t *last_two = rdata_tail - 2;
@@ -41506,7 +42564,7 @@ tr1036:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -41524,15 +42582,15 @@ tr1036:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1409;
-tr1044:
+ goto st1457;
+tr1062:
{
rdata_tail++;
}
@@ -41543,7 +42601,7 @@ tr1044:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -41561,25 +42619,25 @@ tr1044:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1409;
-tr1057:
+ goto st1457;
+tr1075:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1409;
-st1409:
+ goto st1457;
+st1457:
if ( ++p == pe )
- goto _test_eof1409;
-case 1409:
+ goto _test_eof1457;
+case 1457:
goto st0;
-tr1038:
+tr1056:
{
if (s->comma_list) {
uint8_t *last_two = rdata_tail - 2;
@@ -41587,7 +42645,7 @@ tr1038:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -41605,7 +42663,7 @@ tr1038:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -41621,21 +42679,21 @@ tr1038:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
*(rdata_tail++) = (*p);
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1410;
-tr1046:
+ goto st1458;
+tr1064:
{
rdata_tail++;
}
@@ -41646,7 +42704,7 @@ tr1046:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -41664,7 +42722,7 @@ tr1046:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -41680,43 +42738,43 @@ tr1046:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
*(rdata_tail++) = (*p);
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1410;
-st1410:
+ goto st1458;
+st1458:
if ( ++p == pe )
- goto _test_eof1410;
-case 1410:
+ goto _test_eof1458;
+case 1458:
switch( (*p) ) {
- case 32: goto tr1036;
- case 33: goto tr1037;
- case 59: goto tr1036;
- case 92: goto tr1039;
+ case 32: goto tr1054;
+ case 33: goto tr1055;
+ case 59: goto tr1054;
+ case 92: goto tr1057;
}
if ( (*p) < 35 ) {
if ( 9 <= (*p) && (*p) <= 10 )
- goto tr1036;
+ goto tr1054;
} else if ( (*p) > 39 ) {
if ( (*p) > 41 ) {
if ( 42 <= (*p) && (*p) <= 126 )
- goto tr1037;
+ goto tr1055;
} else if ( (*p) >= 40 )
- goto tr1038;
+ goto tr1056;
} else
- goto tr1037;
- goto tr1032;
-tr1039:
+ goto tr1055;
+ goto tr1050;
+tr1057:
{
if (s->comma_list) {
uint8_t *last_two = rdata_tail - 2;
@@ -41724,7 +42782,7 @@ tr1039:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -41742,12 +42800,12 @@ tr1039:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
- goto st320;
-tr1047:
+ goto st329;
+tr1065:
{
rdata_tail++;
}
@@ -41758,7 +42816,7 @@ tr1047:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -41776,25 +42834,25 @@ tr1047:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
- goto st320;
-st320:
+ goto st329;
+st329:
if ( ++p == pe )
- goto _test_eof320;
-case 320:
+ goto _test_eof329;
+case 329:
if ( (*p) < 48 ) {
if ( 32 <= (*p) && (*p) <= 47 )
- goto tr1033;
+ goto tr1051;
} else if ( (*p) > 57 ) {
if ( 58 <= (*p) && (*p) <= 126 )
- goto tr1033;
+ goto tr1051;
} else
- goto tr1041;
- goto tr1040;
-tr1041:
+ goto tr1059;
+ goto tr1058;
+tr1059:
{
if (rdata_tail <= rdata_stop) {
// Split long string.
@@ -41807,7 +42865,7 @@ tr1041:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
@@ -41815,7 +42873,7 @@ tr1041:
s->item_length++;
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -41828,18 +42886,18 @@ tr1041:
*rdata_tail += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st321;
-st321:
+ goto st330;
+st330:
if ( ++p == pe )
- goto _test_eof321;
-case 321:
+ goto _test_eof330;
+case 330:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1042;
- goto tr1040;
-tr1042:
+ goto tr1060;
+ goto tr1058;
+tr1060:
{
if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check.
((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case.
@@ -41850,18 +42908,18 @@ tr1042:
*rdata_tail += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st322;
-st322:
+ goto st331;
+st331:
if ( ++p == pe )
- goto _test_eof322;
-case 322:
+ goto _test_eof331;
+case 331:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1043;
- goto tr1040;
-tr1043:
+ goto tr1061;
+ goto tr1058;
+tr1061:
{
if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check.
((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case.
@@ -41872,33 +42930,33 @@ tr1043:
*rdata_tail += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st323;
-st323:
+ goto st332;
+st332:
if ( ++p == pe )
- goto _test_eof323;
-case 323:
+ goto _test_eof332;
+case 332:
switch( (*p) ) {
- case 32: goto tr1044;
- case 33: goto tr1045;
- case 59: goto tr1044;
- case 92: goto tr1047;
+ case 32: goto tr1062;
+ case 33: goto tr1063;
+ case 59: goto tr1062;
+ case 92: goto tr1065;
}
if ( (*p) < 35 ) {
if ( 9 <= (*p) && (*p) <= 10 )
- goto tr1044;
+ goto tr1062;
} else if ( (*p) > 39 ) {
if ( (*p) > 41 ) {
if ( 42 <= (*p) && (*p) <= 126 )
- goto tr1045;
+ goto tr1063;
} else if ( (*p) >= 40 )
- goto tr1046;
+ goto tr1064;
} else
- goto tr1045;
- goto tr1040;
-tr1048:
+ goto tr1063;
+ goto tr1058;
+tr1066:
{
if (rdata_tail <= rdata_stop) {
// Split long string.
@@ -41911,18 +42969,18 @@ tr1048:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
*(rdata_tail++) = (*p);
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st324;
-tr1052:
+ goto st333;
+tr1070:
{
if (s->comma_list) {
uint8_t *last_two = rdata_tail - 2;
@@ -41930,7 +42988,7 @@ tr1052:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -41948,7 +43006,7 @@ tr1052:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -41964,18 +43022,18 @@ tr1052:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
*(rdata_tail++) = (*p);
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st324;
-tr1061:
+ goto st333;
+tr1079:
{
rdata_tail++;
}
@@ -41986,7 +43044,7 @@ tr1061:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -42004,7 +43062,7 @@ tr1061:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -42020,21 +43078,21 @@ tr1061:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
*(rdata_tail++) = (*p);
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st324;
-st324:
+ goto st333;
+st333:
if ( ++p == pe )
- goto _test_eof324;
-case 324:
+ goto _test_eof333;
+case 333:
_widec = (*p);
if ( 10 <= (*p) && (*p) <= 10 ) {
_widec = (short)(1152 + ((*p) - -128));
@@ -42042,17 +43100,17 @@ case 324:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1048;
- case 32: goto tr1048;
- case 34: goto st326;
- case 59: goto tr1048;
- case 92: goto st327;
- case 1546: goto tr1048;
+ case 9: goto tr1066;
+ case 32: goto tr1066;
+ case 34: goto st335;
+ case 59: goto tr1066;
+ case 92: goto st336;
+ case 1546: goto tr1066;
}
if ( 33 <= _widec && _widec <= 126 )
- goto tr1049;
- goto tr1032;
-tr1049:
+ goto tr1067;
+ goto tr1050;
+tr1067:
{
if (rdata_tail <= rdata_stop) {
// Split long string.
@@ -42065,18 +43123,18 @@ tr1049:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
*(rdata_tail++) = (*p);
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st325;
-tr1053:
+ goto st334;
+tr1071:
{
if (s->comma_list) {
uint8_t *last_two = rdata_tail - 2;
@@ -42084,7 +43142,7 @@ tr1053:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -42102,7 +43160,7 @@ tr1053:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -42118,18 +43176,18 @@ tr1053:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
*(rdata_tail++) = (*p);
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st325;
-tr1062:
+ goto st334;
+tr1080:
{
rdata_tail++;
}
@@ -42140,7 +43198,7 @@ tr1062:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -42158,7 +43216,7 @@ tr1062:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -42174,21 +43232,21 @@ tr1062:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
*(rdata_tail++) = (*p);
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st325;
-st325:
+ goto st334;
+st334:
if ( ++p == pe )
- goto _test_eof325;
-case 325:
+ goto _test_eof334;
+case 334:
_widec = (*p);
if ( 10 <= (*p) && (*p) <= 10 ) {
_widec = (short)(1152 + ((*p) - -128));
@@ -42196,17 +43254,17 @@ case 325:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1052;
- case 32: goto tr1052;
- case 34: goto tr1054;
- case 59: goto tr1052;
- case 92: goto tr1055;
- case 1546: goto tr1052;
+ case 9: goto tr1070;
+ case 32: goto tr1070;
+ case 34: goto tr1072;
+ case 59: goto tr1070;
+ case 92: goto tr1073;
+ case 1546: goto tr1070;
}
if ( 33 <= _widec && _widec <= 126 )
- goto tr1053;
- goto tr1032;
-tr1054:
+ goto tr1071;
+ goto tr1050;
+tr1072:
{
if (s->comma_list) {
uint8_t *last_two = rdata_tail - 2;
@@ -42214,7 +43272,7 @@ tr1054:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -42232,12 +43290,12 @@ tr1054:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
- goto st326;
-tr1063:
+ goto st335;
+tr1081:
{
rdata_tail++;
}
@@ -42248,7 +43306,7 @@ tr1063:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -42266,26 +43324,26 @@ tr1063:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
- goto st326;
-st326:
+ goto st335;
+st335:
if ( ++p == pe )
- goto _test_eof326;
-case 326:
+ goto _test_eof335;
+case 335:
switch( (*p) ) {
- case 32: goto tr1057;
- case 59: goto tr1057;
+ case 32: goto tr1075;
+ case 59: goto tr1075;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1057;
+ goto tr1075;
} else if ( (*p) >= 9 )
- goto tr1057;
- goto tr1056;
-tr1055:
+ goto tr1075;
+ goto tr1074;
+tr1073:
{
if (s->comma_list) {
uint8_t *last_two = rdata_tail - 2;
@@ -42293,7 +43351,7 @@ tr1055:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -42311,12 +43369,12 @@ tr1055:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
- goto st327;
-tr1064:
+ goto st336;
+tr1082:
{
rdata_tail++;
}
@@ -42327,7 +43385,7 @@ tr1064:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -42345,25 +43403,25 @@ tr1064:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
- goto st327;
-st327:
+ goto st336;
+st336:
if ( ++p == pe )
- goto _test_eof327;
-case 327:
+ goto _test_eof336;
+case 336:
if ( (*p) < 48 ) {
if ( 32 <= (*p) && (*p) <= 47 )
- goto tr1049;
+ goto tr1067;
} else if ( (*p) > 57 ) {
if ( 58 <= (*p) && (*p) <= 126 )
- goto tr1049;
+ goto tr1067;
} else
- goto tr1058;
- goto tr1040;
-tr1058:
+ goto tr1076;
+ goto tr1058;
+tr1076:
{
if (rdata_tail <= rdata_stop) {
// Split long string.
@@ -42376,7 +43434,7 @@ tr1058:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
@@ -42384,7 +43442,7 @@ tr1058:
s->item_length++;
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -42397,18 +43455,18 @@ tr1058:
*rdata_tail += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st328;
-st328:
+ goto st337;
+st337:
if ( ++p == pe )
- goto _test_eof328;
-case 328:
+ goto _test_eof337;
+case 337:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1059;
- goto tr1040;
-tr1059:
+ goto tr1077;
+ goto tr1058;
+tr1077:
{
if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check.
((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case.
@@ -42419,18 +43477,18 @@ tr1059:
*rdata_tail += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st329;
-st329:
+ goto st338;
+st338:
if ( ++p == pe )
- goto _test_eof329;
-case 329:
+ goto _test_eof338;
+case 338:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1060;
- goto tr1040;
-tr1060:
+ goto tr1078;
+ goto tr1058;
+tr1078:
{
if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check.
((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case.
@@ -42441,14 +43499,14 @@ tr1060:
*rdata_tail += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st330;
-st330:
+ goto st339;
+st339:
if ( ++p == pe )
- goto _test_eof330;
-case 330:
+ goto _test_eof339;
+case 339:
_widec = (*p);
if ( 10 <= (*p) && (*p) <= 10 ) {
_widec = (short)(1152 + ((*p) - -128));
@@ -42456,20 +43514,20 @@ case 330:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1061;
- case 32: goto tr1061;
- case 34: goto tr1063;
- case 59: goto tr1061;
- case 92: goto tr1064;
- case 1546: goto tr1061;
+ case 9: goto tr1079;
+ case 32: goto tr1079;
+ case 34: goto tr1081;
+ case 59: goto tr1079;
+ case 92: goto tr1082;
+ case 1546: goto tr1079;
}
if ( 33 <= _widec && _widec <= 126 )
- goto tr1062;
- goto tr1040;
-st331:
+ goto tr1080;
+ goto tr1058;
+st340:
if ( ++p == pe )
- goto _test_eof331;
-case 331:
+ goto _test_eof340;
+case 340:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -42483,38 +43541,38 @@ case 331:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st332;
- case 32: goto st332;
- case 40: goto tr1067;
- case 41: goto tr1068;
- case 2058: goto tr1069;
- case 2107: goto tr1070;
+ case 9: goto st341;
+ case 32: goto st341;
+ case 40: goto tr1085;
+ case 41: goto tr1086;
+ case 2058: goto tr1087;
+ case 2107: goto tr1088;
}
- goto tr1065;
-tr1067:
+ goto tr1083;
+tr1085:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st332;
-tr1068:
+ goto st341;
+tr1086:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st332;
-tr1069:
+ goto st341;
+tr1087:
{
s->line_counter++;
}
- goto st332;
-tr1108:
+ goto st341;
+tr1126:
{
s->buffer[s->buffer_length++] = 0;
@@ -42524,18 +43582,18 @@ tr1108:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 332; goto _out;}
+ {p++; cs = 341; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st332;
-st332:
+ goto st341;
+st341:
if ( ++p == pe )
- goto _test_eof332;
-case 332:
+ goto _test_eof341;
+case 341:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -42549,17 +43607,17 @@ case 332:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st332;
- case 32: goto st332;
- case 40: goto tr1067;
- case 41: goto tr1068;
- case 2058: goto tr1069;
- case 2107: goto tr1070;
+ case 9: goto st341;
+ case 32: goto st341;
+ case 40: goto tr1085;
+ case 41: goto tr1086;
+ case 2058: goto tr1087;
+ case 2107: goto tr1088;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr1072;
- goto tr1071;
-tr1072:
+ goto tr1090;
+ goto tr1089;
+tr1090:
{
s->number64 = 0;
}
@@ -42574,11 +43632,11 @@ tr1072:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st333;
-tr1077:
+ goto st342;
+tr1095:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -42590,14 +43648,14 @@ tr1077:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st333;
-st333:
+ goto st342;
+st342:
if ( ++p == pe )
- goto _test_eof333;
-case 333:
+ goto _test_eof342;
+case 342:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -42611,53 +43669,53 @@ case 333:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1074;
- case 32: goto tr1074;
- case 40: goto tr1075;
- case 41: goto tr1076;
- case 68: goto tr1078;
- case 72: goto tr1079;
- case 77: goto tr1080;
- case 83: goto st336;
- case 87: goto tr1082;
- case 100: goto tr1078;
- case 104: goto tr1079;
- case 109: goto tr1080;
- case 115: goto st336;
- case 119: goto tr1082;
- case 1802: goto tr1083;
- case 1851: goto tr1084;
- case 2058: goto tr1083;
- case 2107: goto tr1084;
+ case 9: goto tr1092;
+ case 32: goto tr1092;
+ case 40: goto tr1093;
+ case 41: goto tr1094;
+ case 68: goto tr1096;
+ case 72: goto tr1097;
+ case 77: goto tr1098;
+ case 83: goto st345;
+ case 87: goto tr1100;
+ case 100: goto tr1096;
+ case 104: goto tr1097;
+ case 109: goto tr1098;
+ case 115: goto st345;
+ case 119: goto tr1100;
+ case 1802: goto tr1101;
+ case 1851: goto tr1102;
+ case 2058: goto tr1101;
+ case 2107: goto tr1102;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr1077;
- goto tr1073;
-tr1087:
+ goto tr1095;
+ goto tr1091;
+tr1105:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st334;
-tr1088:
+ goto st343;
+tr1106:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st334;
-tr1074:
+ goto st343;
+tr1092:
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st334;
-tr1075:
+ goto st343;
+tr1093:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -42665,12 +43723,12 @@ tr1075:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st334;
-tr1076:
+ goto st343;
+tr1094:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -42678,32 +43736,32 @@ tr1076:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st334;
-tr1101:
+ goto st343;
+tr1119:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st334;
-tr1102:
+ goto st343;
+tr1120:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -42713,18 +43771,18 @@ tr1102:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st334;
-tr1103:
+ goto st343;
+tr1121:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -42734,15 +43792,15 @@ tr1103:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st334;
-st334:
+ goto st343;
+st343:
if ( ++p == pe )
- goto _test_eof334;
-case 334:
+ goto _test_eof343;
+case 343:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -42756,17 +43814,17 @@ case 334:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st334;
- case 32: goto st334;
- case 40: goto tr1087;
- case 41: goto tr1088;
- case 1802: goto tr1089;
- case 1851: goto tr1090;
- case 2058: goto tr1089;
- case 2107: goto tr1090;
+ case 9: goto st343;
+ case 32: goto st343;
+ case 40: goto tr1105;
+ case 41: goto tr1106;
+ case 1802: goto tr1107;
+ case 1851: goto tr1108;
+ case 2058: goto tr1107;
+ case 2107: goto tr1108;
}
- goto tr1085;
-tr1083:
+ goto tr1103;
+tr1101:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -42776,7 +43834,7 @@ tr1083:
s->default_ttl = (uint32_t)(s->number64);
} else {
ERR(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -42785,14 +43843,14 @@ tr1083:
{
s->line_counter++;
}
- goto st1411;
-tr1089:
+ goto st1459;
+tr1107:
{
if (s->number64 <= UINT32_MAX) {
s->default_ttl = (uint32_t)(s->number64);
} else {
ERR(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -42801,8 +43859,8 @@ tr1089:
{
s->line_counter++;
}
- goto st1411;
-tr1092:
+ goto st1459;
+tr1110:
{
s->buffer[s->buffer_length++] = 0;
@@ -42812,7 +43870,7 @@ tr1092:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1411; goto _out;}
+ {p++; cs = 1459; goto _out;}
}
}
}
@@ -42821,7 +43879,7 @@ tr1092:
s->default_ttl = (uint32_t)(s->number64);
} else {
ERR(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -42830,14 +43888,14 @@ tr1092:
{
s->line_counter++;
}
- goto st1411;
-tr1105:
+ goto st1459;
+tr1123:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -42849,7 +43907,7 @@ tr1105:
s->default_ttl = (uint32_t)(s->number64);
} else {
ERR(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -42858,18 +43916,18 @@ tr1105:
{
s->line_counter++;
}
- goto st1411;
-st1411:
+ goto st1459;
+st1459:
if ( ++p == pe )
- goto _test_eof1411;
-case 1411:
+ goto _test_eof1459;
+case 1459:
goto st0;
-tr1090:
+tr1108:
{
s->buffer_length = 0;
}
- goto st335;
-tr1084:
+ goto st344;
+tr1102:
{
s->buffer[0] = 0;
s->buffer_length = 0;
@@ -42877,21 +43935,21 @@ tr1084:
{
s->buffer_length = 0;
}
- goto st335;
-tr1091:
+ goto st344;
+tr1109:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st335;
-tr1106:
+ goto st344;
+tr1124:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -42901,54 +43959,54 @@ tr1106:
{
s->buffer_length = 0;
}
- goto st335;
-st335:
+ goto st344;
+st344:
if ( ++p == pe )
- goto _test_eof335;
-case 335:
+ goto _test_eof344;
+case 344:
if ( (*p) == 10 )
- goto tr1092;
- goto tr1091;
-tr1078:
+ goto tr1110;
+ goto tr1109;
+tr1096:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st336;
-tr1079:
+ goto st345;
+tr1097:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st336;
-tr1080:
+ goto st345;
+tr1098:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st336;
-tr1082:
+ goto st345;
+tr1100:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st336;
-st336:
+ goto st345;
+st345:
if ( ++p == pe )
- goto _test_eof336;
-case 336:
+ goto _test_eof345;
+case 345:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -42962,19 +44020,19 @@ case 336:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1074;
- case 32: goto tr1074;
- case 40: goto tr1075;
- case 41: goto tr1076;
- case 1802: goto tr1083;
- case 1851: goto tr1084;
- case 2058: goto tr1083;
- case 2107: goto tr1084;
+ case 9: goto tr1092;
+ case 32: goto tr1092;
+ case 40: goto tr1093;
+ case 41: goto tr1094;
+ case 1802: goto tr1101;
+ case 1851: goto tr1102;
+ case 2058: goto tr1101;
+ case 2107: goto tr1102;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr1093;
- goto tr1073;
-tr1095:
+ goto tr1111;
+ goto tr1091;
+tr1113:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -42986,11 +44044,11 @@ tr1095:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st337;
-tr1093:
+ goto st346;
+tr1111:
{
s->number64_tmp = s->number64;
}
@@ -43008,17 +44066,17 @@ tr1093:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st337;
-tr1104:
+ goto st346;
+tr1122:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -43038,69 +44096,69 @@ tr1104:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st337;
-st337:
+ goto st346;
+st346:
if ( ++p == pe )
- goto _test_eof337;
-case 337:
+ goto _test_eof346;
+case 346:
switch( (*p) ) {
- case 68: goto tr1096;
- case 72: goto tr1097;
- case 77: goto tr1098;
- case 83: goto st338;
- case 87: goto tr1100;
- case 100: goto tr1096;
- case 104: goto tr1097;
- case 109: goto tr1098;
- case 115: goto st338;
- case 119: goto tr1100;
+ case 68: goto tr1114;
+ case 72: goto tr1115;
+ case 77: goto tr1116;
+ case 83: goto st347;
+ case 87: goto tr1118;
+ case 100: goto tr1114;
+ case 104: goto tr1115;
+ case 109: goto tr1116;
+ case 115: goto st347;
+ case 119: goto tr1118;
}
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1095;
- goto tr1094;
-tr1096:
+ goto tr1113;
+ goto tr1112;
+tr1114:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st338;
-tr1097:
+ goto st347;
+tr1115:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st338;
-tr1098:
+ goto st347;
+tr1116:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st338;
-tr1100:
+ goto st347;
+tr1118:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st338;
-st338:
+ goto st347;
+st347:
if ( ++p == pe )
- goto _test_eof338;
-case 338:
+ goto _test_eof347;
+case 347:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -43114,34 +44172,34 @@ case 338:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1101;
- case 32: goto tr1101;
- case 40: goto tr1102;
- case 41: goto tr1103;
- case 1802: goto tr1105;
- case 1851: goto tr1106;
- case 2058: goto tr1105;
- case 2107: goto tr1106;
+ case 9: goto tr1119;
+ case 32: goto tr1119;
+ case 40: goto tr1120;
+ case 41: goto tr1121;
+ case 1802: goto tr1123;
+ case 1851: goto tr1124;
+ case 2058: goto tr1123;
+ case 2107: goto tr1124;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr1104;
- goto tr1073;
-tr1070:
+ goto tr1122;
+ goto tr1091;
+tr1088:
{
s->buffer_length = 0;
}
- goto st339;
-tr1107:
+ goto st348;
+tr1125:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st339;
-st339:
+ goto st348;
+st348:
if ( ++p == pe )
- goto _test_eof339;
-case 339:
+ goto _test_eof348;
+case 348:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -43161,14 +44219,14 @@ case 339:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1108;
+ goto tr1126;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1107;
- goto tr1065;
-st340:
+ goto tr1125;
+ goto tr1083;
+st349:
if ( ++p == pe )
- goto _test_eof340;
-case 340:
+ goto _test_eof349;
+case 349:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -43182,38 +44240,38 @@ case 340:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st341;
- case 32: goto st341;
- case 40: goto tr1111;
- case 41: goto tr1112;
- case 2058: goto tr1113;
- case 2107: goto tr1114;
+ case 9: goto st350;
+ case 32: goto st350;
+ case 40: goto tr1129;
+ case 41: goto tr1130;
+ case 2058: goto tr1131;
+ case 2107: goto tr1132;
}
- goto tr1109;
-tr1111:
+ goto tr1127;
+tr1129:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st341;
-tr1112:
+ goto st350;
+tr1130:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st341;
-tr1113:
+ goto st350;
+tr1131:
{
s->line_counter++;
}
- goto st341;
-tr1144:
+ goto st350;
+tr1162:
{
s->buffer[s->buffer_length++] = 0;
@@ -43223,18 +44281,18 @@ tr1144:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 341; goto _out;}
+ {p++; cs = 350; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st341;
-st341:
+ goto st350;
+st350:
if ( ++p == pe )
- goto _test_eof341;
-case 341:
+ goto _test_eof350;
+case 350:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -43248,27 +44306,27 @@ case 341:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st341;
- case 32: goto st341;
- case 40: goto tr1111;
- case 41: goto tr1112;
- case 42: goto tr1115;
- case 46: goto tr1116;
- case 92: goto tr1117;
- case 95: goto tr1115;
- case 2058: goto tr1113;
- case 2107: goto tr1114;
+ case 9: goto st350;
+ case 32: goto st350;
+ case 40: goto tr1129;
+ case 41: goto tr1130;
+ case 42: goto tr1133;
+ case 46: goto tr1134;
+ case 92: goto tr1135;
+ case 95: goto tr1133;
+ case 2058: goto tr1131;
+ case 2107: goto tr1132;
}
if ( _widec < 65 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr1115;
+ goto tr1133;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr1115;
+ goto tr1133;
} else
- goto tr1115;
- goto tr1109;
-tr1118:
+ goto tr1133;
+ goto tr1127;
+tr1136:
{
// Check for maximum dname label length.
if (s->item_length < ZS_MAX_LABEL_LENGTH) {
@@ -43276,11 +44334,11 @@ tr1118:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st342;
-tr1125:
+ goto st351;
+tr1143:
{
s->item_length = 0;
s->item_length_position = s->dname_tmp_length++;
@@ -43292,11 +44350,11 @@ tr1125:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st342;
-tr1140:
+ goto st351;
+tr1158:
{
s->dname_tmp_length++;
}
@@ -43307,11 +44365,11 @@ tr1140:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st342;
-tr1115:
+ goto st351;
+tr1133:
{
s->dname = s->zone_origin;
}
@@ -43330,30 +44388,30 @@ tr1115:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st342;
-st342:
+ goto st351;
+st351:
if ( ++p == pe )
- goto _test_eof342;
-case 342:
+ goto _test_eof351;
+case 351:
switch( (*p) ) {
- case 42: goto tr1118;
- case 46: goto tr1119;
- case 92: goto st346;
- case 95: goto tr1118;
+ case 42: goto tr1136;
+ case 46: goto tr1137;
+ case 92: goto st355;
+ case 95: goto tr1136;
}
if ( (*p) < 65 ) {
if ( 45 <= (*p) && (*p) <= 57 )
- goto tr1118;
+ goto tr1136;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1118;
+ goto tr1136;
} else
- goto tr1118;
- goto tr1109;
-tr1119:
+ goto tr1136;
+ goto tr1127;
+tr1137:
{
// Check for maximum dname length overflow after each label.
// (at least the next label length must follow).
@@ -43362,11 +44420,11 @@ tr1119:
(uint8_t)(s->item_length);
} else {
WARN(ZS_DNAME_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st343;
-tr1141:
+ goto st352;
+tr1159:
{
s->dname_tmp_length++;
}
@@ -43378,14 +44436,14 @@ tr1141:
(uint8_t)(s->item_length);
} else {
WARN(ZS_DNAME_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st343;
-st343:
+ goto st352;
+st352:
if ( ++p == pe )
- goto _test_eof343;
-case 343:
+ goto _test_eof352;
+case 352:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -43399,47 +44457,47 @@ case 343:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1122;
- case 32: goto tr1122;
- case 40: goto tr1123;
- case 41: goto tr1124;
- case 42: goto tr1125;
- case 45: goto tr1125;
- case 92: goto tr1126;
- case 95: goto tr1125;
- case 1802: goto tr1127;
- case 1851: goto tr1128;
- case 2058: goto tr1127;
- case 2107: goto tr1128;
+ case 9: goto tr1140;
+ case 32: goto tr1140;
+ case 40: goto tr1141;
+ case 41: goto tr1142;
+ case 42: goto tr1143;
+ case 45: goto tr1143;
+ case 92: goto tr1144;
+ case 95: goto tr1143;
+ case 1802: goto tr1145;
+ case 1851: goto tr1146;
+ case 2058: goto tr1145;
+ case 2107: goto tr1146;
}
if ( _widec < 65 ) {
if ( 47 <= _widec && _widec <= 57 )
- goto tr1125;
+ goto tr1143;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr1125;
+ goto tr1143;
} else
- goto tr1125;
- goto tr1121;
-tr1130:
+ goto tr1143;
+ goto tr1139;
+tr1148:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st344;
-tr1131:
+ goto st353;
+tr1149:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st344;
-tr1122:
+ goto st353;
+tr1140:
{
// Enough room for the terminal label is guaranteed (_label_exit).
(s->dname)[s->dname_tmp_length++] = 0;
@@ -43448,8 +44506,8 @@ tr1122:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st344;
-tr1123:
+ goto st353;
+tr1141:
{
// Enough room for the terminal label is guaranteed (_label_exit).
(s->dname)[s->dname_tmp_length++] = 0;
@@ -43461,12 +44519,12 @@ tr1123:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st344;
-tr1124:
+ goto st353;
+tr1142:
{
// Enough room for the terminal label is guaranteed (_label_exit).
(s->dname)[s->dname_tmp_length++] = 0;
@@ -43478,15 +44536,15 @@ tr1124:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st344;
-st344:
+ goto st353;
+st353:
if ( ++p == pe )
- goto _test_eof344;
-case 344:
+ goto _test_eof353;
+case 353:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -43500,17 +44558,17 @@ case 344:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st344;
- case 32: goto st344;
- case 40: goto tr1130;
- case 41: goto tr1131;
- case 1802: goto tr1132;
- case 1851: goto tr1133;
- case 2058: goto tr1132;
- case 2107: goto tr1133;
+ case 9: goto st353;
+ case 32: goto st353;
+ case 40: goto tr1148;
+ case 41: goto tr1149;
+ case 1802: goto tr1150;
+ case 1851: goto tr1151;
+ case 2058: goto tr1150;
+ case 2107: goto tr1151;
}
- goto tr1121;
-tr1127:
+ goto tr1139;
+tr1145:
{
// Enough room for the terminal label is guaranteed (_label_exit).
(s->dname)[s->dname_tmp_length++] = 0;
@@ -43528,8 +44586,8 @@ tr1127:
{
s->line_counter++;
}
- goto st1412;
-tr1132:
+ goto st1460;
+tr1150:
{
s->zone_origin_length = s->dname_tmp_length;
}
@@ -43539,8 +44597,8 @@ tr1132:
{
s->line_counter++;
}
- goto st1412;
-tr1135:
+ goto st1460;
+tr1153:
{
s->buffer[s->buffer_length++] = 0;
@@ -43550,7 +44608,7 @@ tr1135:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1412; goto _out;}
+ {p++; cs = 1460; goto _out;}
}
}
}
@@ -43563,25 +44621,25 @@ tr1135:
{
s->line_counter++;
}
- goto st1412;
-st1412:
+ goto st1460;
+st1460:
if ( ++p == pe )
- goto _test_eof1412;
-case 1412:
+ goto _test_eof1460;
+case 1460:
goto st0;
-tr1133:
+tr1151:
{
s->buffer_length = 0;
}
- goto st345;
-tr1134:
+ goto st354;
+tr1152:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st345;
-tr1128:
+ goto st354;
+tr1146:
{
// Enough room for the terminal label is guaranteed (_label_exit).
(s->dname)[s->dname_tmp_length++] = 0;
@@ -43593,26 +44651,26 @@ tr1128:
{
s->buffer_length = 0;
}
- goto st345;
-st345:
+ goto st354;
+st354:
if ( ++p == pe )
- goto _test_eof345;
-case 345:
+ goto _test_eof354;
+case 354:
if ( (*p) == 10 )
- goto tr1135;
- goto tr1134;
-tr1126:
+ goto tr1153;
+ goto tr1152;
+tr1144:
{
s->item_length = 0;
s->item_length_position = s->dname_tmp_length++;
}
- goto st346;
-tr1142:
+ goto st355;
+tr1160:
{
s->dname_tmp_length++;
}
- goto st346;
-tr1117:
+ goto st355;
+tr1135:
{
s->dname = s->zone_origin;
}
@@ -43624,75 +44682,75 @@ tr1117:
s->item_length = 0;
s->item_length_position = s->dname_tmp_length++;
}
- goto st346;
-st346:
+ goto st355;
+st355:
if ( ++p == pe )
- goto _test_eof346;
-case 346:
+ goto _test_eof355;
+case 355:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1136;
- goto tr1118;
-tr1136:
+ goto tr1154;
+ goto tr1136;
+tr1154:
{
if (s->item_length < ZS_MAX_LABEL_LENGTH) {
(s->dname)[s->dname_tmp_length] = 0;
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
(s->dname)[s->dname_tmp_length] *= 10;
(s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)];
}
- goto st347;
-st347:
+ goto st356;
+st356:
if ( ++p == pe )
- goto _test_eof347;
-case 347:
+ goto _test_eof356;
+case 356:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1138;
- goto tr1137;
-tr1138:
+ goto tr1156;
+ goto tr1155;
+tr1156:
{
(s->dname)[s->dname_tmp_length] *= 10;
(s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)];
}
- goto st348;
-st348:
+ goto st357;
+st357:
if ( ++p == pe )
- goto _test_eof348;
-case 348:
+ goto _test_eof357;
+case 357:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1139;
- goto tr1137;
-tr1139:
+ goto tr1157;
+ goto tr1155;
+tr1157:
{
(s->dname)[s->dname_tmp_length] *= 10;
(s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)];
}
- goto st349;
-st349:
+ goto st358;
+st358:
if ( ++p == pe )
- goto _test_eof349;
-case 349:
+ goto _test_eof358;
+case 358:
switch( (*p) ) {
- case 42: goto tr1140;
- case 46: goto tr1141;
- case 92: goto tr1142;
- case 95: goto tr1140;
+ case 42: goto tr1158;
+ case 46: goto tr1159;
+ case 92: goto tr1160;
+ case 95: goto tr1158;
}
if ( (*p) < 65 ) {
if ( 45 <= (*p) && (*p) <= 57 )
- goto tr1140;
+ goto tr1158;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1140;
+ goto tr1158;
} else
- goto tr1140;
- goto tr1137;
-tr1116:
+ goto tr1158;
+ goto tr1155;
+tr1134:
{
s->dname = s->zone_origin;
}
@@ -43700,11 +44758,11 @@ tr1116:
s->item_length_position = 0;
s->dname_tmp_length = 0;
}
- goto st350;
-st350:
+ goto st359;
+st359:
if ( ++p == pe )
- goto _test_eof350;
-case 350:
+ goto _test_eof359;
+case 359:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -43718,32 +44776,32 @@ case 350:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1122;
- case 32: goto tr1122;
- case 40: goto tr1123;
- case 41: goto tr1124;
- case 1802: goto tr1127;
- case 1851: goto tr1128;
- case 2058: goto tr1127;
- case 2107: goto tr1128;
+ case 9: goto tr1140;
+ case 32: goto tr1140;
+ case 40: goto tr1141;
+ case 41: goto tr1142;
+ case 1802: goto tr1145;
+ case 1851: goto tr1146;
+ case 2058: goto tr1145;
+ case 2107: goto tr1146;
}
- goto tr1121;
-tr1114:
+ goto tr1139;
+tr1132:
{
s->buffer_length = 0;
}
- goto st351;
-tr1143:
+ goto st360;
+tr1161:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st351;
-st351:
+ goto st360;
+st360:
if ( ++p == pe )
- goto _test_eof351;
-case 351:
+ goto _test_eof360;
+case 360:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -43763,14 +44821,14 @@ case 351:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1144;
+ goto tr1162;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1143;
- goto tr1109;
-st352:
+ goto tr1161;
+ goto tr1127;
+st361:
if ( ++p == pe )
- goto _test_eof352;
-case 352:
+ goto _test_eof361;
+case 361:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -43784,38 +44842,38 @@ case 352:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st353;
- case 32: goto st353;
- case 40: goto tr1146;
- case 41: goto tr1147;
- case 2058: goto tr1148;
- case 2107: goto tr1149;
+ case 9: goto st362;
+ case 32: goto st362;
+ case 40: goto tr1164;
+ case 41: goto tr1165;
+ case 2058: goto tr1166;
+ case 2107: goto tr1167;
}
goto st0;
-tr1146:
+tr1164:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st353;
-tr1147:
+ goto st362;
+tr1165:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st353;
-tr1148:
+ goto st362;
+tr1166:
{
s->line_counter++;
}
- goto st353;
-tr1202:
+ goto st362;
+tr1220:
{
s->buffer[s->buffer_length++] = 0;
@@ -43825,18 +44883,18 @@ tr1202:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 353; goto _out;}
+ {p++; cs = 362; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st353;
-st353:
+ goto st362;
+st362:
if ( ++p == pe )
- goto _test_eof353;
-case 353:
+ goto _test_eof362;
+case 362:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -43850,32 +44908,32 @@ case 353:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st353;
- case 32: goto st353;
- case 40: goto tr1146;
- case 41: goto tr1147;
- case 2058: goto tr1148;
- case 2107: goto tr1149;
+ case 9: goto st362;
+ case 32: goto st362;
+ case 40: goto tr1164;
+ case 41: goto tr1165;
+ case 2058: goto tr1166;
+ case 2107: goto tr1167;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr1150;
+ goto tr1168;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr1150;
+ goto tr1168;
} else
- goto tr1150;
- goto tr1151;
-tr1150:
+ goto tr1168;
+ goto tr1169;
+tr1168:
{
rdata_tail = s->r_data;
}
- { p--; {stack[top++] = 354;goto st318;} }
- goto st354;
-st354:
+ { p--; {stack[top++] = 363;goto st327;} }
+ goto st363;
+st363:
if ( ++p == pe )
- goto _test_eof354;
-case 354:
+ goto _test_eof363;
+case 363:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -43889,40 +44947,40 @@ case 354:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1153;
- case 32: goto tr1153;
- case 40: goto tr1154;
- case 41: goto tr1155;
- case 1802: goto tr1156;
- case 1851: goto tr1157;
- case 2058: goto tr1156;
- case 2107: goto tr1158;
+ case 9: goto tr1171;
+ case 32: goto tr1171;
+ case 40: goto tr1172;
+ case 41: goto tr1173;
+ case 1802: goto tr1174;
+ case 1851: goto tr1175;
+ case 2058: goto tr1174;
+ case 2107: goto tr1176;
}
- goto tr1152;
-tr1161:
+ goto tr1170;
+tr1179:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st355;
-tr1162:
+ goto st364;
+tr1180:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st355;
-tr1153:
+ goto st364;
+tr1171:
{
size_t len = rdata_tail - s->r_data;
if (len >= sizeof(s->include_filename)) {
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Store zero terminated include filename.
@@ -43936,13 +44994,13 @@ tr1153:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st355;
-tr1154:
+ goto st364;
+tr1172:
{
size_t len = rdata_tail - s->r_data;
if (len >= sizeof(s->include_filename)) {
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Store zero terminated include filename.
@@ -43955,7 +45013,7 @@ tr1154:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
@@ -43963,13 +45021,13 @@ tr1154:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st355;
-tr1155:
+ goto st364;
+tr1173:
{
size_t len = rdata_tail - s->r_data;
if (len >= sizeof(s->include_filename)) {
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Store zero terminated include filename.
@@ -43982,7 +45040,7 @@ tr1155:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
@@ -43990,11 +45048,11 @@ tr1155:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st355;
-st355:
+ goto st364;
+st364:
if ( ++p == pe )
- goto _test_eof355;
-case 355:
+ goto _test_eof364;
+case 364:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -44008,29 +45066,29 @@ case 355:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st355;
- case 32: goto st355;
- case 40: goto tr1161;
- case 41: goto tr1162;
- case 42: goto tr1163;
- case 46: goto tr1164;
- case 92: goto tr1165;
- case 95: goto tr1163;
- case 1802: goto tr1166;
- case 1851: goto tr1167;
- case 2058: goto tr1166;
- case 2107: goto tr1168;
+ case 9: goto st364;
+ case 32: goto st364;
+ case 40: goto tr1179;
+ case 41: goto tr1180;
+ case 42: goto tr1181;
+ case 46: goto tr1182;
+ case 92: goto tr1183;
+ case 95: goto tr1181;
+ case 1802: goto tr1184;
+ case 1851: goto tr1185;
+ case 2058: goto tr1184;
+ case 2107: goto tr1186;
}
if ( _widec < 65 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr1163;
+ goto tr1181;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr1163;
+ goto tr1181;
} else
- goto tr1163;
- goto tr1159;
-tr1170:
+ goto tr1181;
+ goto tr1177;
+tr1188:
{
// Check for maximum dname label length.
if (s->item_length < ZS_MAX_LABEL_LENGTH) {
@@ -44038,11 +45096,11 @@ tr1170:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st356;
-tr1176:
+ goto st365;
+tr1194:
{
s->item_length = 0;
s->item_length_position = s->dname_tmp_length++;
@@ -44054,11 +45112,11 @@ tr1176:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st356;
-tr1189:
+ goto st365;
+tr1207:
{
s->dname_tmp_length++;
}
@@ -44069,11 +45127,11 @@ tr1189:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st356;
-tr1163:
+ goto st365;
+tr1181:
{
s->dname = s->r_data;
}
@@ -44092,30 +45150,30 @@ tr1163:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st356;
-st356:
+ goto st365;
+st365:
if ( ++p == pe )
- goto _test_eof356;
-case 356:
+ goto _test_eof365;
+case 365:
switch( (*p) ) {
- case 42: goto tr1170;
- case 46: goto tr1171;
- case 92: goto st360;
- case 95: goto tr1170;
+ case 42: goto tr1188;
+ case 46: goto tr1189;
+ case 92: goto st369;
+ case 95: goto tr1188;
}
if ( (*p) < 65 ) {
if ( 45 <= (*p) && (*p) <= 57 )
- goto tr1170;
+ goto tr1188;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1170;
+ goto tr1188;
} else
- goto tr1170;
- goto tr1169;
-tr1171:
+ goto tr1188;
+ goto tr1187;
+tr1189:
{
// Check for maximum dname length overflow after each label.
// (at least the next label length must follow).
@@ -44124,11 +45182,11 @@ tr1171:
(uint8_t)(s->item_length);
} else {
WARN(ZS_DNAME_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st357;
-tr1190:
+ goto st366;
+tr1208:
{
s->dname_tmp_length++;
}
@@ -44140,14 +45198,14 @@ tr1190:
(uint8_t)(s->item_length);
} else {
WARN(ZS_DNAME_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st357;
-st357:
+ goto st366;
+st366:
if ( ++p == pe )
- goto _test_eof357;
-case 357:
+ goto _test_eof366;
+case 366:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -44161,47 +45219,47 @@ case 357:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1173;
- case 32: goto tr1173;
- case 40: goto tr1174;
- case 41: goto tr1175;
- case 42: goto tr1176;
- case 45: goto tr1176;
- case 92: goto tr1177;
- case 95: goto tr1176;
- case 1802: goto tr1178;
- case 1851: goto tr1179;
- case 2058: goto tr1178;
- case 2107: goto tr1179;
+ case 9: goto tr1191;
+ case 32: goto tr1191;
+ case 40: goto tr1192;
+ case 41: goto tr1193;
+ case 42: goto tr1194;
+ case 45: goto tr1194;
+ case 92: goto tr1195;
+ case 95: goto tr1194;
+ case 1802: goto tr1196;
+ case 1851: goto tr1197;
+ case 2058: goto tr1196;
+ case 2107: goto tr1197;
}
if ( _widec < 65 ) {
if ( 47 <= _widec && _widec <= 57 )
- goto tr1176;
+ goto tr1194;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr1176;
+ goto tr1194;
} else
- goto tr1176;
- goto tr1159;
-tr1181:
+ goto tr1194;
+ goto tr1177;
+tr1199:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st358;
-tr1182:
+ goto st367;
+tr1200:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st358;
-tr1173:
+ goto st367;
+tr1191:
{
// Enough room for the terminal label is guaranteed (_label_exit).
(s->dname)[s->dname_tmp_length++] = 0;
@@ -44213,8 +45271,8 @@ tr1173:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st358;
-tr1174:
+ goto st367;
+tr1192:
{
// Enough room for the terminal label is guaranteed (_label_exit).
(s->dname)[s->dname_tmp_length++] = 0;
@@ -44229,12 +45287,12 @@ tr1174:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st358;
-tr1175:
+ goto st367;
+tr1193:
{
// Enough room for the terminal label is guaranteed (_label_exit).
(s->dname)[s->dname_tmp_length++] = 0;
@@ -44249,15 +45307,15 @@ tr1175:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st358;
-st358:
+ goto st367;
+st367:
if ( ++p == pe )
- goto _test_eof358;
-case 358:
+ goto _test_eof367;
+case 367:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -44271,23 +45329,23 @@ case 358:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st358;
- case 32: goto st358;
- case 40: goto tr1181;
- case 41: goto tr1182;
- case 1802: goto tr1166;
- case 1851: goto tr1167;
- case 2058: goto tr1166;
- case 2107: goto tr1167;
+ case 9: goto st367;
+ case 32: goto st367;
+ case 40: goto tr1199;
+ case 41: goto tr1200;
+ case 1802: goto tr1184;
+ case 1851: goto tr1185;
+ case 2058: goto tr1184;
+ case 2107: goto tr1185;
}
- goto tr89;
-tr1156:
- cs = 1413;
+ goto tr91;
+tr1174:
+ cs = 1461;
{
size_t len = rdata_tail - s->r_data;
if (len >= sizeof(s->include_filename)) {
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Store zero terminated include filename.
@@ -44308,7 +45366,7 @@ tr1156:
"%s/%s", s->path, s->include_filename);
if (ret <= 0 || ret >= sizeof(s->buffer)) {
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(s->include_filename, s->buffer, ret + 1);
}
@@ -44330,7 +45388,7 @@ tr1156:
zs_scanner_t *ss = malloc(sizeof(zs_scanner_t));
if (ss == NULL) {
ERR(ZS_UNPROCESSED_INCLUDE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Parse included zone file.
@@ -44350,13 +45408,13 @@ tr1156:
}
zs_deinit(ss);
free(ss);
- p--; {goto st307;}
+ p--; {goto st316;}
}
zs_deinit(ss);
free(ss);
} else {
s->state = ZS_STATE_INCLUDE;
- p--; cs = 1396; {p++; goto _out;}
+ p--; cs = 1444; {p++; goto _out;}
}
}
{
@@ -44366,8 +45424,8 @@ tr1156:
s->line_counter++;
}
goto _again;
-tr1166:
- cs = 1413;
+tr1184:
+ cs = 1461;
{
// Extend relative file path.
if (s->include_filename[0] != '/') {
@@ -44375,7 +45433,7 @@ tr1166:
"%s/%s", s->path, s->include_filename);
if (ret <= 0 || ret >= sizeof(s->buffer)) {
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(s->include_filename, s->buffer, ret + 1);
}
@@ -44397,7 +45455,7 @@ tr1166:
zs_scanner_t *ss = malloc(sizeof(zs_scanner_t));
if (ss == NULL) {
ERR(ZS_UNPROCESSED_INCLUDE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Parse included zone file.
@@ -44417,13 +45475,13 @@ tr1166:
}
zs_deinit(ss);
free(ss);
- p--; {goto st307;}
+ p--; {goto st316;}
}
zs_deinit(ss);
free(ss);
} else {
s->state = ZS_STATE_INCLUDE;
- p--; cs = 1396; {p++; goto _out;}
+ p--; cs = 1444; {p++; goto _out;}
}
}
{
@@ -44433,8 +45491,8 @@ tr1166:
s->line_counter++;
}
goto _again;
-tr1178:
- cs = 1413;
+tr1196:
+ cs = 1461;
{
// Enough room for the terminal label is guaranteed (_label_exit).
(s->dname)[s->dname_tmp_length++] = 0;
@@ -44453,7 +45511,7 @@ tr1178:
"%s/%s", s->path, s->include_filename);
if (ret <= 0 || ret >= sizeof(s->buffer)) {
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(s->include_filename, s->buffer, ret + 1);
}
@@ -44475,7 +45533,7 @@ tr1178:
zs_scanner_t *ss = malloc(sizeof(zs_scanner_t));
if (ss == NULL) {
ERR(ZS_UNPROCESSED_INCLUDE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Parse included zone file.
@@ -44495,13 +45553,13 @@ tr1178:
}
zs_deinit(ss);
free(ss);
- p--; {goto st307;}
+ p--; {goto st316;}
}
zs_deinit(ss);
free(ss);
} else {
s->state = ZS_STATE_INCLUDE;
- p--; cs = 1396; {p++; goto _out;}
+ p--; cs = 1444; {p++; goto _out;}
}
}
{
@@ -44511,8 +45569,8 @@ tr1178:
s->line_counter++;
}
goto _again;
-tr1184:
- cs = 1413;
+tr1202:
+ cs = 1461;
{
s->buffer[s->buffer_length++] = 0;
@@ -44533,7 +45591,7 @@ tr1184:
"%s/%s", s->path, s->include_filename);
if (ret <= 0 || ret >= sizeof(s->buffer)) {
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(s->include_filename, s->buffer, ret + 1);
}
@@ -44555,7 +45613,7 @@ tr1184:
zs_scanner_t *ss = malloc(sizeof(zs_scanner_t));
if (ss == NULL) {
ERR(ZS_UNPROCESSED_INCLUDE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Parse included zone file.
@@ -44575,13 +45633,13 @@ tr1184:
}
zs_deinit(ss);
free(ss);
- p--; {goto st307;}
+ p--; {goto st316;}
}
zs_deinit(ss);
free(ss);
} else {
s->state = ZS_STATE_INCLUDE;
- p--; cs = 1396; {p++; goto _out;}
+ p--; cs = 1444; {p++; goto _out;}
}
}
{
@@ -44591,29 +45649,29 @@ tr1184:
s->line_counter++;
}
goto _again;
-st1413:
+st1461:
if ( ++p == pe )
- goto _test_eof1413;
-case 1413:
+ goto _test_eof1461;
+case 1461:
goto st0;
-tr1167:
+tr1185:
{
s->buffer_length = 0;
}
- goto st359;
-tr1183:
+ goto st368;
+tr1201:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st359;
-tr1157:
+ goto st368;
+tr1175:
{
size_t len = rdata_tail - s->r_data;
if (len >= sizeof(s->include_filename)) {
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Store zero terminated include filename.
@@ -44630,8 +45688,8 @@ tr1157:
{
s->buffer_length = 0;
}
- goto st359;
-tr1179:
+ goto st368;
+tr1197:
{
// Enough room for the terminal label is guaranteed (_label_exit).
(s->dname)[s->dname_tmp_length++] = 0;
@@ -44646,26 +45704,26 @@ tr1179:
{
s->buffer_length = 0;
}
- goto st359;
-st359:
+ goto st368;
+st368:
if ( ++p == pe )
- goto _test_eof359;
-case 359:
+ goto _test_eof368;
+case 368:
if ( (*p) == 10 )
- goto tr1184;
- goto tr1183;
-tr1177:
+ goto tr1202;
+ goto tr1201;
+tr1195:
{
s->item_length = 0;
s->item_length_position = s->dname_tmp_length++;
}
- goto st360;
-tr1191:
+ goto st369;
+tr1209:
{
s->dname_tmp_length++;
}
- goto st360;
-tr1165:
+ goto st369;
+tr1183:
{
s->dname = s->r_data;
}
@@ -44677,75 +45735,75 @@ tr1165:
s->item_length = 0;
s->item_length_position = s->dname_tmp_length++;
}
- goto st360;
-st360:
+ goto st369;
+st369:
if ( ++p == pe )
- goto _test_eof360;
-case 360:
+ goto _test_eof369;
+case 369:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1185;
- goto tr1170;
-tr1185:
+ goto tr1203;
+ goto tr1188;
+tr1203:
{
if (s->item_length < ZS_MAX_LABEL_LENGTH) {
(s->dname)[s->dname_tmp_length] = 0;
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
(s->dname)[s->dname_tmp_length] *= 10;
(s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)];
}
- goto st361;
-st361:
+ goto st370;
+st370:
if ( ++p == pe )
- goto _test_eof361;
-case 361:
+ goto _test_eof370;
+case 370:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1187;
- goto tr1186;
-tr1187:
+ goto tr1205;
+ goto tr1204;
+tr1205:
{
(s->dname)[s->dname_tmp_length] *= 10;
(s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)];
}
- goto st362;
-st362:
+ goto st371;
+st371:
if ( ++p == pe )
- goto _test_eof362;
-case 362:
+ goto _test_eof371;
+case 371:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1188;
- goto tr1186;
-tr1188:
+ goto tr1206;
+ goto tr1204;
+tr1206:
{
(s->dname)[s->dname_tmp_length] *= 10;
(s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)];
}
- goto st363;
-st363:
+ goto st372;
+st372:
if ( ++p == pe )
- goto _test_eof363;
-case 363:
+ goto _test_eof372;
+case 372:
switch( (*p) ) {
- case 42: goto tr1189;
- case 46: goto tr1190;
- case 92: goto tr1191;
- case 95: goto tr1189;
+ case 42: goto tr1207;
+ case 46: goto tr1208;
+ case 92: goto tr1209;
+ case 95: goto tr1207;
}
if ( (*p) < 65 ) {
if ( 45 <= (*p) && (*p) <= 57 )
- goto tr1189;
+ goto tr1207;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1189;
+ goto tr1207;
} else
- goto tr1189;
- goto tr1186;
-tr1164:
+ goto tr1207;
+ goto tr1204;
+tr1182:
{
s->dname = s->r_data;
}
@@ -44753,11 +45811,11 @@ tr1164:
s->item_length_position = 0;
s->dname_tmp_length = 0;
}
- goto st364;
-st364:
+ goto st373;
+st373:
if ( ++p == pe )
- goto _test_eof364;
-case 364:
+ goto _test_eof373;
+case 373:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -44771,34 +45829,34 @@ case 364:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1173;
- case 32: goto tr1173;
- case 40: goto tr1174;
- case 41: goto tr1175;
- case 1802: goto tr1178;
- case 1851: goto tr1179;
- case 2058: goto tr1178;
- case 2107: goto tr1179;
+ case 9: goto tr1191;
+ case 32: goto tr1191;
+ case 40: goto tr1192;
+ case 41: goto tr1193;
+ case 1802: goto tr1196;
+ case 1851: goto tr1197;
+ case 2058: goto tr1196;
+ case 2107: goto tr1197;
}
- goto tr1159;
-tr1168:
+ goto tr1177;
+tr1186:
{
s->buffer_length = 0;
}
- goto st365;
-tr1192:
+ goto st374;
+tr1210:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st365;
-tr1158:
+ goto st374;
+tr1176:
{
size_t len = rdata_tail - s->r_data;
if (len >= sizeof(s->include_filename)) {
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Store zero terminated include filename.
@@ -44815,11 +45873,11 @@ tr1158:
s->buffer[0] = 0;
s->buffer_length = 0;
}
- goto st365;
-st365:
+ goto st374;
+st374:
if ( ++p == pe )
- goto _test_eof365;
-case 365:
+ goto _test_eof374;
+case 374:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -44839,17 +45897,17 @@ case 365:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 1802: goto tr1184;
- case 2058: goto tr1193;
+ case 1802: goto tr1202;
+ case 2058: goto tr1211;
}
if ( _widec > 1919 ) {
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1192;
+ goto tr1210;
} else if ( _widec >= 1664 )
- goto tr1183;
- goto tr89;
-tr1193:
- cs = 1414;
+ goto tr1201;
+ goto tr91;
+tr1211:
+ cs = 1462;
{
s->buffer[s->buffer_length++] = 0;
@@ -44873,7 +45931,7 @@ tr1193:
"%s/%s", s->path, s->include_filename);
if (ret <= 0 || ret >= sizeof(s->buffer)) {
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(s->include_filename, s->buffer, ret + 1);
}
@@ -44895,7 +45953,7 @@ tr1193:
zs_scanner_t *ss = malloc(sizeof(zs_scanner_t));
if (ss == NULL) {
ERR(ZS_UNPROCESSED_INCLUDE);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Parse included zone file.
@@ -44915,23 +45973,23 @@ tr1193:
}
zs_deinit(ss);
free(ss);
- p--; {goto st307;}
+ p--; {goto st316;}
}
zs_deinit(ss);
free(ss);
} else {
s->state = ZS_STATE_INCLUDE;
- p--; cs = 1396; {p++; goto _out;}
+ p--; cs = 1444; {p++; goto _out;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
goto _again;
-st1414:
+st1462:
if ( ++p == pe )
- goto _test_eof1414;
-case 1414:
+ goto _test_eof1462;
+case 1462:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -44945,50 +46003,50 @@ case 1414:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st366;
- case 32: goto st366;
- case 40: goto tr1195;
- case 41: goto tr1196;
- case 42: goto tr1163;
- case 46: goto tr1164;
- case 92: goto tr1165;
- case 95: goto tr1163;
- case 2058: goto tr1197;
- case 2107: goto tr1198;
+ case 9: goto st375;
+ case 32: goto st375;
+ case 40: goto tr1213;
+ case 41: goto tr1214;
+ case 42: goto tr1181;
+ case 46: goto tr1182;
+ case 92: goto tr1183;
+ case 95: goto tr1181;
+ case 2058: goto tr1215;
+ case 2107: goto tr1216;
}
if ( _widec < 65 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr1163;
+ goto tr1181;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr1163;
+ goto tr1181;
} else
- goto tr1163;
- goto tr1169;
-tr1195:
+ goto tr1181;
+ goto tr1187;
+tr1213:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st366;
-tr1196:
+ goto st375;
+tr1214:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st366;
-tr1197:
+ goto st375;
+tr1215:
{
s->line_counter++;
}
- goto st366;
-tr1200:
+ goto st375;
+tr1218:
{
s->buffer[s->buffer_length++] = 0;
@@ -44998,18 +46056,18 @@ tr1200:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 366; goto _out;}
+ {p++; cs = 375; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st366;
-st366:
+ goto st375;
+st375:
if ( ++p == pe )
- goto _test_eof366;
-case 366:
+ goto _test_eof375;
+case 375:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -45023,42 +46081,42 @@ case 366:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st366;
- case 32: goto st366;
- case 40: goto tr1195;
- case 41: goto tr1196;
- case 42: goto tr1163;
- case 46: goto tr1164;
- case 92: goto tr1165;
- case 95: goto tr1163;
- case 2058: goto tr1197;
- case 2107: goto tr1198;
+ case 9: goto st375;
+ case 32: goto st375;
+ case 40: goto tr1213;
+ case 41: goto tr1214;
+ case 42: goto tr1181;
+ case 46: goto tr1182;
+ case 92: goto tr1183;
+ case 95: goto tr1181;
+ case 2058: goto tr1215;
+ case 2107: goto tr1216;
}
if ( _widec < 65 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr1163;
+ goto tr1181;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr1163;
+ goto tr1181;
} else
- goto tr1163;
- goto tr1169;
-tr1198:
+ goto tr1181;
+ goto tr1187;
+tr1216:
{
s->buffer_length = 0;
}
- goto st367;
-tr1199:
+ goto st376;
+tr1217:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st367;
-st367:
+ goto st376;
+st376:
if ( ++p == pe )
- goto _test_eof367;
-case 367:
+ goto _test_eof376;
+case 376:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -45078,26 +46136,26 @@ case 367:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1200;
+ goto tr1218;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1199;
+ goto tr1217;
goto st0;
-tr1149:
+tr1167:
{
s->buffer_length = 0;
}
- goto st368;
-tr1201:
+ goto st377;
+tr1219:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st368;
-st368:
+ goto st377;
+st377:
if ( ++p == pe )
- goto _test_eof368;
-case 368:
+ goto _test_eof377;
+case 377:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -45117,51 +46175,51 @@ case 368:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1202;
+ goto tr1220;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1201;
+ goto tr1219;
goto st0;
-st369:
+st378:
if ( ++p == pe )
- goto _test_eof369;
-case 369:
+ goto _test_eof378;
+case 378:
if ( (*p) == 43 )
- goto tr1204;
+ goto tr1222;
if ( (*p) < 65 ) {
if ( 47 <= (*p) && (*p) <= 57 )
- goto tr1204;
+ goto tr1222;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1204;
+ goto tr1222;
} else
- goto tr1204;
- goto tr1203;
-tr1204:
+ goto tr1222;
+ goto tr1221;
+tr1222:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_base64_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st370;
-st370:
+ goto st379;
+st379:
if ( ++p == pe )
- goto _test_eof370;
-case 370:
+ goto _test_eof379;
+case 379:
if ( (*p) == 43 )
- goto tr1205;
+ goto tr1223;
if ( (*p) < 65 ) {
if ( 47 <= (*p) && (*p) <= 57 )
- goto tr1205;
+ goto tr1223;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1205;
+ goto tr1223;
} else
- goto tr1205;
- goto tr1203;
-tr1205:
+ goto tr1223;
+ goto tr1221;
+tr1223:
{
*(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)];
@@ -45169,28 +46227,28 @@ tr1205:
*rdata_tail = second_right_base64_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st371;
-st371:
+ goto st380;
+st380:
if ( ++p == pe )
- goto _test_eof371;
-case 371:
+ goto _test_eof380;
+case 380:
switch( (*p) ) {
- case 43: goto tr1206;
- case 61: goto st375;
+ case 43: goto tr1224;
+ case 61: goto st384;
}
if ( (*p) < 65 ) {
if ( 47 <= (*p) && (*p) <= 57 )
- goto tr1206;
+ goto tr1224;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1206;
+ goto tr1224;
} else
- goto tr1206;
- goto tr1203;
-tr1206:
+ goto tr1224;
+ goto tr1221;
+tr1224:
{
*(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)];
@@ -45198,51 +46256,51 @@ tr1206:
*rdata_tail = third_right_base64_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st372;
-st372:
+ goto st381;
+st381:
if ( ++p == pe )
- goto _test_eof372;
-case 372:
+ goto _test_eof381;
+case 381:
switch( (*p) ) {
- case 43: goto tr1208;
- case 61: goto st373;
+ case 43: goto tr1226;
+ case 61: goto st382;
}
if ( (*p) < 65 ) {
if ( 47 <= (*p) && (*p) <= 57 )
- goto tr1208;
+ goto tr1226;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1208;
+ goto tr1226;
} else
- goto tr1208;
- goto tr1203;
-tr1210:
+ goto tr1226;
+ goto tr1221;
+tr1228:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st373;
-tr1211:
+ goto st382;
+tr1229:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st373;
-tr1212:
+ goto st382;
+tr1230:
{
s->line_counter++;
}
- goto st373;
-tr1218:
+ goto st382;
+tr1236:
{
s->buffer[s->buffer_length++] = 0;
@@ -45252,23 +46310,23 @@ tr1218:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 373; goto _out;}
+ {p++; cs = 382; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st373;
-tr1208:
+ goto st382;
+tr1226:
{
*(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)];
}
- goto st373;
-st373:
+ goto st382;
+st382:
if ( ++p == pe )
- goto _test_eof373;
-case 373:
+ goto _test_eof382;
+case 382:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -45286,43 +46344,43 @@ case 373:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st373;
- case 32: goto st373;
- case 40: goto tr1210;
- case 41: goto tr1211;
- case 43: goto tr1204;
- case 3082: goto tr1212;
- case 3131: goto tr1213;
- case 3338: goto tr1214;
- case 3387: goto tr1214;
- case 3594: goto tr1215;
- case 3643: goto tr1216;
+ case 9: goto st382;
+ case 32: goto st382;
+ case 40: goto tr1228;
+ case 41: goto tr1229;
+ case 43: goto tr1222;
+ case 3082: goto tr1230;
+ case 3131: goto tr1231;
+ case 3338: goto tr1232;
+ case 3387: goto tr1232;
+ case 3594: goto tr1233;
+ case 3643: goto tr1234;
}
if ( _widec < 65 ) {
if ( 47 <= _widec && _widec <= 57 )
- goto tr1204;
+ goto tr1222;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr1204;
+ goto tr1222;
} else
- goto tr1204;
- goto tr1203;
-tr1213:
+ goto tr1222;
+ goto tr1221;
+tr1231:
{
s->buffer_length = 0;
}
- goto st374;
-tr1217:
+ goto st383;
+tr1235:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st374;
-st374:
+ goto st383;
+st383:
if ( ++p == pe )
- goto _test_eof374;
-case 374:
+ goto _test_eof383;
+case 383:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -45342,32 +46400,32 @@ case 374:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1218;
+ goto tr1236;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1217;
- goto tr1203;
-tr1214:
+ goto tr1235;
+ goto tr1221;
+tr1232:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1415;
-st1415:
+ goto st1463;
+st1463:
if ( ++p == pe )
- goto _test_eof1415;
-case 1415:
+ goto _test_eof1463;
+case 1463:
goto st0;
-tr1215:
+tr1233:
{
s->line_counter++;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1416;
-st1416:
+ goto st1464;
+st1464:
if ( ++p == pe )
- goto _test_eof1416;
-case 1416:
+ goto _test_eof1464;
+case 1464:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -45385,39 +46443,39 @@ case 1416:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st373;
- case 32: goto st373;
- case 40: goto tr1210;
- case 41: goto tr1211;
- case 43: goto tr1204;
- case 3082: goto tr1212;
- case 3131: goto tr1213;
- case 3338: goto tr1214;
- case 3387: goto tr1214;
- case 3594: goto tr1215;
- case 3643: goto tr1216;
+ case 9: goto st382;
+ case 32: goto st382;
+ case 40: goto tr1228;
+ case 41: goto tr1229;
+ case 43: goto tr1222;
+ case 3082: goto tr1230;
+ case 3131: goto tr1231;
+ case 3338: goto tr1232;
+ case 3387: goto tr1232;
+ case 3594: goto tr1233;
+ case 3643: goto tr1234;
}
if ( _widec < 65 ) {
if ( 47 <= _widec && _widec <= 57 )
- goto tr1204;
+ goto tr1222;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr1204;
+ goto tr1222;
} else
- goto tr1204;
- goto tr1203;
-tr1216:
+ goto tr1222;
+ goto tr1221;
+tr1234:
{
s->buffer_length = 0;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1417;
-st1417:
+ goto st1465;
+st1465:
if ( ++p == pe )
- goto _test_eof1417;
-case 1417:
+ goto _test_eof1465;
+case 1465:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -45437,21 +46495,21 @@ case 1417:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1218;
+ goto tr1236;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1217;
- goto tr1203;
-st375:
+ goto tr1235;
+ goto tr1221;
+st384:
if ( ++p == pe )
- goto _test_eof375;
-case 375:
+ goto _test_eof384;
+case 384:
if ( (*p) == 61 )
- goto st373;
- goto tr1203;
-st376:
+ goto st382;
+ goto tr1221;
+st385:
if ( ++p == pe )
- goto _test_eof376;
-case 376:
+ goto _test_eof385;
+case 385:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -45469,42 +46527,42 @@ case 376:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1220;
- case 32: goto tr1220;
- case 40: goto tr1221;
- case 41: goto tr1222;
- case 3082: goto tr1223;
- case 3131: goto tr1224;
- case 3338: goto tr1225;
- case 3387: goto tr1225;
- case 3594: goto tr1226;
- case 3643: goto tr1227;
+ case 9: goto tr1238;
+ case 32: goto tr1238;
+ case 40: goto tr1239;
+ case 41: goto tr1240;
+ case 3082: goto tr1241;
+ case 3131: goto tr1242;
+ case 3338: goto tr1243;
+ case 3387: goto tr1243;
+ case 3594: goto tr1244;
+ case 3643: goto tr1245;
}
- goto tr1219;
-tr1229:
+ goto tr1237;
+tr1247:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1230:
+ goto st386;
+tr1248:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1248:
+ goto st386;
+tr1267:
{
s->line_counter++;
}
- goto st377;
-tr1275:
+ goto st386;
+tr1294:
{
s->buffer[s->buffer_length++] = 0;
@@ -45514,21 +46572,21 @@ tr1275:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 377; goto _out;}
+ {p++; cs = 386; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st377;
-tr1220:
+ goto st386;
+tr1238:
{
memset(s->windows, 0, sizeof(s->windows));
s->last_window = -1;
}
- goto st377;
-tr1221:
+ goto st386;
+tr1239:
{
memset(s->windows, 0, sizeof(s->windows));
s->last_window = -1;
@@ -45536,12 +46594,12 @@ tr1221:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1222:
+ goto st386;
+tr1240:
{
memset(s->windows, 0, sizeof(s->windows));
s->last_window = -1;
@@ -45549,12 +46607,12 @@ tr1222:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1223:
+ goto st386;
+tr1241:
{
memset(s->windows, 0, sizeof(s->windows));
s->last_window = -1;
@@ -45562,1460 +46620,1489 @@ tr1223:
{
s->line_counter++;
}
- goto st377;
-tr1253:
+ goto st386;
+tr1272:
{ window_add_bit(KNOT_RRTYPE_A, s); }
- goto st377;
-tr1254:
+ goto st386;
+tr1273:
{ window_add_bit(KNOT_RRTYPE_A, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1255:
+ goto st386;
+tr1274:
{ window_add_bit(KNOT_RRTYPE_A, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1259:
+ goto st386;
+tr1278:
{ window_add_bit(KNOT_RRTYPE_A, s); }
{
s->line_counter++;
}
- goto st377;
-tr1266:
+ goto st386;
+tr1285:
{ window_add_bit(KNOT_RRTYPE_AAAA, s); }
- goto st377;
-tr1267:
+ goto st386;
+tr1286:
{ window_add_bit(KNOT_RRTYPE_AAAA, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1268:
+ goto st386;
+tr1287:
{ window_add_bit(KNOT_RRTYPE_AAAA, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1269:
+ goto st386;
+tr1288:
{ window_add_bit(KNOT_RRTYPE_AAAA, s); }
{
s->line_counter++;
}
- goto st377;
-tr1282:
+ goto st386;
+tr1301:
{ window_add_bit(KNOT_RRTYPE_CAA, s); }
- goto st377;
-tr1283:
+ goto st386;
+tr1302:
{ window_add_bit(KNOT_RRTYPE_CAA, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1284:
+ goto st386;
+tr1303:
{ window_add_bit(KNOT_RRTYPE_CAA, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1285:
+ goto st386;
+tr1304:
{ window_add_bit(KNOT_RRTYPE_CAA, s); }
{
s->line_counter++;
}
- goto st377;
-tr1296:
+ goto st386;
+tr1315:
{ window_add_bit(KNOT_RRTYPE_CDNSKEY, s); }
- goto st377;
-tr1297:
+ goto st386;
+tr1316:
{ window_add_bit(KNOT_RRTYPE_CDNSKEY, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1298:
+ goto st386;
+tr1317:
{ window_add_bit(KNOT_RRTYPE_CDNSKEY, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1299:
+ goto st386;
+tr1318:
{ window_add_bit(KNOT_RRTYPE_CDNSKEY, s); }
{
s->line_counter++;
}
- goto st377;
-tr1304:
+ goto st386;
+tr1323:
{ window_add_bit(KNOT_RRTYPE_CDS, s); }
- goto st377;
-tr1305:
+ goto st386;
+tr1324:
{ window_add_bit(KNOT_RRTYPE_CDS, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1306:
+ goto st386;
+tr1325:
{ window_add_bit(KNOT_RRTYPE_CDS, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1307:
+ goto st386;
+tr1326:
{ window_add_bit(KNOT_RRTYPE_CDS, s); }
{
s->line_counter++;
}
- goto st377;
-tr1314:
+ goto st386;
+tr1333:
{ window_add_bit(KNOT_RRTYPE_CERT, s); }
- goto st377;
-tr1315:
+ goto st386;
+tr1334:
{ window_add_bit(KNOT_RRTYPE_CERT, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1316:
+ goto st386;
+tr1335:
{ window_add_bit(KNOT_RRTYPE_CERT, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1317:
+ goto st386;
+tr1336:
{ window_add_bit(KNOT_RRTYPE_CERT, s); }
{
s->line_counter++;
}
- goto st377;
-tr1325:
+ goto st386;
+tr1344:
{ window_add_bit(KNOT_RRTYPE_CNAME, s); }
- goto st377;
-tr1326:
+ goto st386;
+tr1345:
{ window_add_bit(KNOT_RRTYPE_CNAME, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1327:
+ goto st386;
+tr1346:
{ window_add_bit(KNOT_RRTYPE_CNAME, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1328:
+ goto st386;
+tr1347:
{ window_add_bit(KNOT_RRTYPE_CNAME, s); }
{
s->line_counter++;
}
- goto st377;
-tr1336:
+ goto st386;
+tr1355:
{ window_add_bit(KNOT_RRTYPE_CSYNC, s); }
- goto st377;
-tr1337:
+ goto st386;
+tr1356:
{ window_add_bit(KNOT_RRTYPE_CSYNC, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1338:
+ goto st386;
+tr1357:
{ window_add_bit(KNOT_RRTYPE_CSYNC, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1339:
+ goto st386;
+tr1358:
{ window_add_bit(KNOT_RRTYPE_CSYNC, s); }
{
s->line_counter++;
}
- goto st377;
-tr1350:
+ goto st386;
+tr1369:
{ window_add_bit(KNOT_RRTYPE_DHCID, s); }
- goto st377;
-tr1351:
+ goto st386;
+tr1370:
{ window_add_bit(KNOT_RRTYPE_DHCID, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1352:
+ goto st386;
+tr1371:
{ window_add_bit(KNOT_RRTYPE_DHCID, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1353:
+ goto st386;
+tr1372:
{ window_add_bit(KNOT_RRTYPE_DHCID, s); }
{
s->line_counter++;
}
- goto st377;
-tr1362:
+ goto st386;
+tr1381:
{ window_add_bit(KNOT_RRTYPE_DNAME, s); }
- goto st377;
-tr1363:
+ goto st386;
+tr1382:
{ window_add_bit(KNOT_RRTYPE_DNAME, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1364:
+ goto st386;
+tr1383:
{ window_add_bit(KNOT_RRTYPE_DNAME, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1365:
+ goto st386;
+tr1384:
{ window_add_bit(KNOT_RRTYPE_DNAME, s); }
{
s->line_counter++;
}
- goto st377;
-tr1373:
+ goto st386;
+tr1392:
{ window_add_bit(KNOT_RRTYPE_DNSKEY, s); }
- goto st377;
-tr1374:
+ goto st386;
+tr1393:
{ window_add_bit(KNOT_RRTYPE_DNSKEY, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1375:
+ goto st386;
+tr1394:
{ window_add_bit(KNOT_RRTYPE_DNSKEY, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1376:
+ goto st386;
+tr1395:
{ window_add_bit(KNOT_RRTYPE_DNSKEY, s); }
{
s->line_counter++;
}
- goto st377;
-tr1381:
+ goto st386;
+tr1400:
{ window_add_bit(KNOT_RRTYPE_DS, s); }
- goto st377;
-tr1382:
+ goto st386;
+tr1401:
{ window_add_bit(KNOT_RRTYPE_DS, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1383:
+ goto st386;
+tr1402:
{ window_add_bit(KNOT_RRTYPE_DS, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1384:
+ goto st386;
+tr1403:
{ window_add_bit(KNOT_RRTYPE_DS, s); }
{
s->line_counter++;
}
- goto st377;
-tr1394:
+ goto st386;
+tr1413:
{ window_add_bit(KNOT_RRTYPE_EUI48, s); }
- goto st377;
-tr1395:
+ goto st386;
+tr1414:
{ window_add_bit(KNOT_RRTYPE_EUI48, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1396:
+ goto st386;
+tr1415:
{ window_add_bit(KNOT_RRTYPE_EUI48, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1397:
+ goto st386;
+tr1416:
{ window_add_bit(KNOT_RRTYPE_EUI48, s); }
{
s->line_counter++;
}
- goto st377;
-tr1403:
+ goto st386;
+tr1422:
{ window_add_bit(KNOT_RRTYPE_EUI64, s); }
- goto st377;
-tr1404:
+ goto st386;
+tr1423:
{ window_add_bit(KNOT_RRTYPE_EUI64, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1405:
+ goto st386;
+tr1424:
{ window_add_bit(KNOT_RRTYPE_EUI64, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1406:
+ goto st386;
+tr1425:
{ window_add_bit(KNOT_RRTYPE_EUI64, s); }
{
s->line_counter++;
}
- goto st377;
-tr1416:
+ goto st386;
+tr1435:
{ window_add_bit(KNOT_RRTYPE_HINFO, s); }
- goto st377;
-tr1417:
+ goto st386;
+tr1436:
{ window_add_bit(KNOT_RRTYPE_HINFO, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1418:
+ goto st386;
+tr1437:
{ window_add_bit(KNOT_RRTYPE_HINFO, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1419:
+ goto st386;
+tr1438:
{ window_add_bit(KNOT_RRTYPE_HINFO, s); }
{
s->line_counter++;
}
- goto st377;
-tr1427:
+ goto st386;
+tr1446:
{ window_add_bit(KNOT_RRTYPE_HTTPS, s); }
- goto st377;
-tr1428:
+ goto st386;
+tr1447:
{ window_add_bit(KNOT_RRTYPE_HTTPS, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1429:
+ goto st386;
+tr1448:
{ window_add_bit(KNOT_RRTYPE_HTTPS, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1430:
+ goto st386;
+tr1449:
{ window_add_bit(KNOT_RRTYPE_HTTPS, s); }
{
s->line_counter++;
}
- goto st377;
-tr1442:
+ goto st386;
+tr1461:
{ window_add_bit(KNOT_RRTYPE_IPSECKEY, s); }
- goto st377;
-tr1443:
+ goto st386;
+tr1462:
{ window_add_bit(KNOT_RRTYPE_IPSECKEY, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1444:
+ goto st386;
+tr1463:
{ window_add_bit(KNOT_RRTYPE_IPSECKEY, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1445:
+ goto st386;
+tr1464:
{ window_add_bit(KNOT_RRTYPE_IPSECKEY, s); }
{
s->line_counter++;
}
- goto st377;
-tr1453:
+ goto st386;
+tr1472:
{ window_add_bit(KNOT_RRTYPE_KEY, s); }
- goto st377;
-tr1454:
+ goto st386;
+tr1473:
{ window_add_bit(KNOT_RRTYPE_KEY, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1455:
+ goto st386;
+tr1474:
{ window_add_bit(KNOT_RRTYPE_KEY, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1456:
+ goto st386;
+tr1475:
{ window_add_bit(KNOT_RRTYPE_KEY, s); }
{
s->line_counter++;
}
- goto st377;
-tr1461:
+ goto st386;
+tr1480:
{ window_add_bit(KNOT_RRTYPE_KX, s); }
- goto st377;
-tr1462:
+ goto st386;
+tr1481:
{ window_add_bit(KNOT_RRTYPE_KX, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1463:
+ goto st386;
+tr1482:
{ window_add_bit(KNOT_RRTYPE_KX, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1464:
+ goto st386;
+tr1483:
{ window_add_bit(KNOT_RRTYPE_KX, s); }
{
s->line_counter++;
}
- goto st377;
-tr1474:
+ goto st386;
+tr1493:
{ window_add_bit(KNOT_RRTYPE_L32, s); }
- goto st377;
-tr1475:
+ goto st386;
+tr1494:
{ window_add_bit(KNOT_RRTYPE_L32, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1476:
+ goto st386;
+tr1495:
{ window_add_bit(KNOT_RRTYPE_L32, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1477:
+ goto st386;
+tr1496:
{ window_add_bit(KNOT_RRTYPE_L32, s); }
{
s->line_counter++;
}
- goto st377;
-tr1483:
+ goto st386;
+tr1502:
{ window_add_bit(KNOT_RRTYPE_L64, s); }
- goto st377;
-tr1484:
+ goto st386;
+tr1503:
{ window_add_bit(KNOT_RRTYPE_L64, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1485:
+ goto st386;
+tr1504:
{ window_add_bit(KNOT_RRTYPE_L64, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1486:
+ goto st386;
+tr1505:
{ window_add_bit(KNOT_RRTYPE_L64, s); }
{
s->line_counter++;
}
- goto st377;
-tr1492:
+ goto st386;
+tr1511:
{ window_add_bit(KNOT_RRTYPE_LOC, s); }
- goto st377;
-tr1493:
+ goto st386;
+tr1512:
{ window_add_bit(KNOT_RRTYPE_LOC, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1494:
+ goto st386;
+tr1513:
{ window_add_bit(KNOT_RRTYPE_LOC, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1495:
+ goto st386;
+tr1514:
{ window_add_bit(KNOT_RRTYPE_LOC, s); }
{
s->line_counter++;
}
- goto st377;
-tr1500:
+ goto st386;
+tr1519:
{ window_add_bit(KNOT_RRTYPE_LP, s); }
- goto st377;
-tr1501:
+ goto st386;
+tr1520:
{ window_add_bit(KNOT_RRTYPE_LP, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1502:
+ goto st386;
+tr1521:
{ window_add_bit(KNOT_RRTYPE_LP, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1503:
+ goto st386;
+tr1522:
{ window_add_bit(KNOT_RRTYPE_LP, s); }
{
s->line_counter++;
}
- goto st377;
-tr1513:
+ goto st386;
+tr1532:
{ window_add_bit(KNOT_RRTYPE_MINFO, s); }
- goto st377;
-tr1514:
+ goto st386;
+tr1533:
{ window_add_bit(KNOT_RRTYPE_MINFO, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1515:
+ goto st386;
+tr1534:
{ window_add_bit(KNOT_RRTYPE_MINFO, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1516:
+ goto st386;
+tr1535:
{ window_add_bit(KNOT_RRTYPE_MINFO, s); }
{
s->line_counter++;
}
- goto st377;
-tr1521:
+ goto st386;
+tr1540:
{ window_add_bit(KNOT_RRTYPE_MX, s); }
- goto st377;
-tr1522:
+ goto st386;
+tr1541:
{ window_add_bit(KNOT_RRTYPE_MX, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1523:
+ goto st386;
+tr1542:
{ window_add_bit(KNOT_RRTYPE_MX, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1524:
+ goto st386;
+tr1543:
{ window_add_bit(KNOT_RRTYPE_MX, s); }
{
s->line_counter++;
}
- goto st377;
-tr1535:
+ goto st386;
+tr1554:
{ window_add_bit(KNOT_RRTYPE_NAPTR, s); }
- goto st377;
-tr1536:
+ goto st386;
+tr1555:
{ window_add_bit(KNOT_RRTYPE_NAPTR, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1537:
+ goto st386;
+tr1556:
{ window_add_bit(KNOT_RRTYPE_NAPTR, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1538:
+ goto st386;
+tr1557:
{ window_add_bit(KNOT_RRTYPE_NAPTR, s); }
{
s->line_counter++;
}
- goto st377;
-tr1544:
+ goto st386;
+tr1563:
{ window_add_bit(KNOT_RRTYPE_NID, s); }
- goto st377;
-tr1545:
+ goto st386;
+tr1564:
{ window_add_bit(KNOT_RRTYPE_NID, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1546:
+ goto st386;
+tr1565:
{ window_add_bit(KNOT_RRTYPE_NID, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1547:
+ goto st386;
+tr1566:
{ window_add_bit(KNOT_RRTYPE_NID, s); }
{
s->line_counter++;
}
- goto st377;
-tr1552:
+ goto st386;
+tr1571:
{ window_add_bit(KNOT_RRTYPE_NS, s); }
- goto st377;
-tr1553:
+ goto st386;
+tr1572:
{ window_add_bit(KNOT_RRTYPE_NS, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1554:
+ goto st386;
+tr1573:
{ window_add_bit(KNOT_RRTYPE_NS, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1556:
+ goto st386;
+tr1575:
{ window_add_bit(KNOT_RRTYPE_NS, s); }
{
s->line_counter++;
}
- goto st377;
-tr1562:
+ goto st386;
+tr1581:
{ window_add_bit(KNOT_RRTYPE_NSEC, s); }
- goto st377;
-tr1563:
+ goto st386;
+tr1582:
{ window_add_bit(KNOT_RRTYPE_NSEC, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1564:
+ goto st386;
+tr1583:
{ window_add_bit(KNOT_RRTYPE_NSEC, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1566:
+ goto st386;
+tr1585:
{ window_add_bit(KNOT_RRTYPE_NSEC, s); }
{
s->line_counter++;
}
- goto st377;
-tr1571:
+ goto st386;
+tr1590:
{ window_add_bit(KNOT_RRTYPE_NSEC3, s); }
- goto st377;
-tr1572:
+ goto st386;
+tr1591:
{ window_add_bit(KNOT_RRTYPE_NSEC3, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1573:
+ goto st386;
+tr1592:
{ window_add_bit(KNOT_RRTYPE_NSEC3, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1575:
+ goto st386;
+tr1594:
{ window_add_bit(KNOT_RRTYPE_NSEC3, s); }
{
s->line_counter++;
}
- goto st377;
-tr1584:
+ goto st386;
+tr1603:
{ window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); }
- goto st377;
-tr1585:
+ goto st386;
+tr1604:
{ window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1586:
+ goto st386;
+tr1605:
{ window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1587:
+ goto st386;
+tr1606:
{ window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); }
{
s->line_counter++;
}
- goto st377;
-tr1601:
+ goto st386;
+tr1620:
{ window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); }
- goto st377;
-tr1602:
+ goto st386;
+tr1621:
{ window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1603:
+ goto st386;
+tr1622:
{ window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1604:
+ goto st386;
+tr1623:
{ window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); }
{
s->line_counter++;
}
- goto st377;
-tr1611:
+ goto st386;
+tr1630:
{ window_add_bit(KNOT_RRTYPE_PTR, s); }
- goto st377;
-tr1612:
+ goto st386;
+tr1631:
{ window_add_bit(KNOT_RRTYPE_PTR, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1613:
+ goto st386;
+tr1632:
{ window_add_bit(KNOT_RRTYPE_PTR, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1614:
+ goto st386;
+tr1633:
{ window_add_bit(KNOT_RRTYPE_PTR, s); }
{
s->line_counter++;
}
- goto st377;
-tr1622:
+ goto st386;
+tr1641:
{ window_add_bit(KNOT_RRTYPE_RP, s); }
- goto st377;
-tr1623:
+ goto st386;
+tr1642:
{ window_add_bit(KNOT_RRTYPE_RP, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1624:
+ goto st386;
+tr1643:
{ window_add_bit(KNOT_RRTYPE_RP, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1625:
+ goto st386;
+tr1644:
{ window_add_bit(KNOT_RRTYPE_RP, s); }
{
s->line_counter++;
}
- goto st377;
-tr1633:
+ goto st386;
+tr1652:
{ window_add_bit(KNOT_RRTYPE_RRSIG, s); }
- goto st377;
-tr1634:
+ goto st386;
+tr1653:
{ window_add_bit(KNOT_RRTYPE_RRSIG, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1635:
+ goto st386;
+tr1654:
{ window_add_bit(KNOT_RRTYPE_RRSIG, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1636:
+ goto st386;
+tr1655:
{ window_add_bit(KNOT_RRTYPE_RRSIG, s); }
{
s->line_counter++;
}
- goto st377;
-tr1641:
+ goto st386;
+tr1660:
{ window_add_bit(KNOT_RRTYPE_RT, s); }
- goto st377;
-tr1642:
+ goto st386;
+tr1661:
{ window_add_bit(KNOT_RRTYPE_RT, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1643:
+ goto st386;
+tr1662:
{ window_add_bit(KNOT_RRTYPE_RT, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1644:
+ goto st386;
+tr1663:
{ window_add_bit(KNOT_RRTYPE_RT, s); }
{
s->line_counter++;
}
- goto st377;
-tr1659:
+ goto st386;
+tr1678:
{ window_add_bit(KNOT_RRTYPE_SMIMEA, s); }
- goto st377;
-tr1660:
+ goto st386;
+tr1679:
{ window_add_bit(KNOT_RRTYPE_SMIMEA, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1661:
+ goto st386;
+tr1680:
{ window_add_bit(KNOT_RRTYPE_SMIMEA, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1662:
+ goto st386;
+tr1681:
{ window_add_bit(KNOT_RRTYPE_SMIMEA, s); }
{
s->line_counter++;
}
- goto st377;
-tr1668:
+ goto st386;
+tr1687:
{ window_add_bit(KNOT_RRTYPE_SOA, s); }
- goto st377;
-tr1669:
+ goto st386;
+tr1688:
{ window_add_bit(KNOT_RRTYPE_SOA, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1670:
+ goto st386;
+tr1689:
{ window_add_bit(KNOT_RRTYPE_SOA, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1671:
+ goto st386;
+tr1690:
{ window_add_bit(KNOT_RRTYPE_SOA, s); }
{
s->line_counter++;
}
- goto st377;
-tr1677:
+ goto st386;
+tr1696:
{ window_add_bit(KNOT_RRTYPE_SPF, s); }
- goto st377;
-tr1678:
+ goto st386;
+tr1697:
{ window_add_bit(KNOT_RRTYPE_SPF, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1679:
+ goto st386;
+tr1698:
{ window_add_bit(KNOT_RRTYPE_SPF, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1680:
+ goto st386;
+tr1699:
{ window_add_bit(KNOT_RRTYPE_SPF, s); }
{
s->line_counter++;
}
- goto st377;
-tr1686:
+ goto st386;
+tr1705:
{ window_add_bit(KNOT_RRTYPE_SRV, s); }
- goto st377;
-tr1687:
+ goto st386;
+tr1706:
{ window_add_bit(KNOT_RRTYPE_SRV, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1688:
+ goto st386;
+tr1707:
{ window_add_bit(KNOT_RRTYPE_SRV, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1689:
+ goto st386;
+tr1708:
{ window_add_bit(KNOT_RRTYPE_SRV, s); }
{
s->line_counter++;
}
- goto st377;
-tr1697:
+ goto st386;
+tr1716:
{ window_add_bit(KNOT_RRTYPE_SSHFP, s); }
- goto st377;
-tr1698:
+ goto st386;
+tr1717:
{ window_add_bit(KNOT_RRTYPE_SSHFP, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1699:
+ goto st386;
+tr1718:
{ window_add_bit(KNOT_RRTYPE_SSHFP, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1700:
+ goto st386;
+tr1719:
{ window_add_bit(KNOT_RRTYPE_SSHFP, s); }
{
s->line_counter++;
}
- goto st377;
-tr1707:
+ goto st386;
+tr1726:
{ window_add_bit(KNOT_RRTYPE_SVCB, s); }
- goto st377;
-tr1708:
+ goto st386;
+tr1727:
{ window_add_bit(KNOT_RRTYPE_SVCB, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1709:
+ goto st386;
+tr1728:
{ window_add_bit(KNOT_RRTYPE_SVCB, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1710:
+ goto st386;
+tr1729:
{ window_add_bit(KNOT_RRTYPE_SVCB, s); }
{
s->line_counter++;
}
- goto st377;
-tr1720:
+ goto st386;
+tr1739:
{ window_add_bit(KNOT_RRTYPE_TLSA, s); }
- goto st377;
-tr1721:
+ goto st386;
+tr1740:
{ window_add_bit(KNOT_RRTYPE_TLSA, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1722:
+ goto st386;
+tr1741:
{ window_add_bit(KNOT_RRTYPE_TLSA, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1723:
+ goto st386;
+tr1742:
{ window_add_bit(KNOT_RRTYPE_TLSA, s); }
{
s->line_counter++;
}
- goto st377;
-tr1729:
+ goto st386;
+tr1748:
{ window_add_bit(KNOT_RRTYPE_TXT, s); }
- goto st377;
-tr1730:
+ goto st386;
+tr1749:
{ window_add_bit(KNOT_RRTYPE_TXT, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1731:
+ goto st386;
+tr1750:
{ window_add_bit(KNOT_RRTYPE_TXT, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1732:
+ goto st386;
+tr1751:
{ window_add_bit(KNOT_RRTYPE_TXT, s); }
{
s->line_counter++;
}
- goto st377;
-tr1740:
+ goto st386;
+tr1759:
{
if (s->number64 <= UINT16_MAX) {
window_add_bit(s->number64, s);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st377;
-tr1741:
+ goto st386;
+tr1760:
{
if (s->number64 <= UINT16_MAX) {
window_add_bit(s->number64, s);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1742:
+ goto st386;
+tr1761:
{
if (s->number64 <= UINT16_MAX) {
window_add_bit(s->number64, s);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1744:
+ goto st386;
+tr1763:
{
if (s->number64 <= UINT16_MAX) {
window_add_bit(s->number64, s);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st377;
-tr1751:
+ goto st386;
+tr1770:
{ window_add_bit(KNOT_RRTYPE_URI, s); }
- goto st377;
-tr1752:
+ goto st386;
+tr1771:
{ window_add_bit(KNOT_RRTYPE_URI, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1753:
+ goto st386;
+tr1772:
{ window_add_bit(KNOT_RRTYPE_URI, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1754:
+ goto st386;
+tr1773:
{ window_add_bit(KNOT_RRTYPE_URI, s); }
{
s->line_counter++;
}
- goto st377;
-tr1764:
+ goto st386;
+tr1783:
+ { window_add_bit(KNOT_RRTYPE_WALLET, s); }
+ goto st386;
+tr1784:
+ { window_add_bit(KNOT_RRTYPE_WALLET, s); }
+ {
+ if (s->multiline == true) {
+ ERR(ZS_LEFT_PARENTHESIS);
+ p--; {goto st316;}
+ }
+ s->multiline = true;
+ }
+ goto st386;
+tr1785:
+ { window_add_bit(KNOT_RRTYPE_WALLET, s); }
+ {
+ if (s->multiline == false) {
+ ERR(ZS_RIGHT_PARENTHESIS);
+ p--; {goto st316;}
+ }
+ s->multiline = false;
+ }
+ goto st386;
+tr1786:
+ { window_add_bit(KNOT_RRTYPE_WALLET, s); }
+ {
+ s->line_counter++;
+ }
+ goto st386;
+tr1796:
{ window_add_bit(KNOT_RRTYPE_ZONEMD, s); }
- goto st377;
-tr1765:
+ goto st386;
+tr1797:
{ window_add_bit(KNOT_RRTYPE_ZONEMD, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1766:
+ goto st386;
+tr1798:
{ window_add_bit(KNOT_RRTYPE_ZONEMD, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1767:
+ goto st386;
+tr1799:
{ window_add_bit(KNOT_RRTYPE_ZONEMD, s); }
{
s->line_counter++;
}
- goto st377;
-tr1775:
+ goto st386;
+tr1807:
{ window_add_bit(KNOT_RRTYPE_AFSDB, s); }
- goto st377;
-tr1776:
+ goto st386;
+tr1808:
{ window_add_bit(KNOT_RRTYPE_AFSDB, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1777:
+ goto st386;
+tr1809:
{ window_add_bit(KNOT_RRTYPE_AFSDB, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1778:
+ goto st386;
+tr1810:
{ window_add_bit(KNOT_RRTYPE_AFSDB, s); }
{
s->line_counter++;
}
- goto st377;
-tr1784:
+ goto st386;
+tr1816:
{ window_add_bit(KNOT_RRTYPE_APL, s); }
- goto st377;
-tr1785:
+ goto st386;
+tr1817:
{ window_add_bit(KNOT_RRTYPE_APL, s); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st377;
-tr1786:
+ goto st386;
+tr1818:
{ window_add_bit(KNOT_RRTYPE_APL, s); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st377;
-tr1787:
+ goto st386;
+tr1819:
{ window_add_bit(KNOT_RRTYPE_APL, s); }
{
s->line_counter++;
}
- goto st377;
-st377:
+ goto st386;
+st386:
if ( ++p == pe )
- goto _test_eof377;
-case 377:
+ goto _test_eof386;
+case 386:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -47033,56 +48120,58 @@ case 377:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st377;
- case 32: goto st377;
- case 40: goto tr1229;
- case 41: goto tr1230;
- case 65: goto st378;
- case 67: goto st383;
- case 68: goto st404;
- case 69: goto st418;
- case 72: goto st425;
- case 73: goto st434;
- case 75: goto st442;
- case 76: goto st446;
- case 77: goto st454;
- case 78: goto st460;
- case 79: goto st476;
- case 80: goto st486;
- case 82: goto st489;
- case 83: goto st496;
- case 84: goto st515;
- case 85: goto st525;
- case 90: goto st528;
- case 97: goto st378;
- case 99: goto st383;
- case 100: goto st404;
- case 101: goto st418;
- case 104: goto st425;
- case 105: goto st434;
- case 107: goto st442;
- case 108: goto st446;
- case 109: goto st454;
- case 110: goto st460;
- case 111: goto st476;
- case 112: goto st486;
- case 114: goto st489;
- case 115: goto st496;
- case 116: goto st515;
- case 117: goto st525;
- case 122: goto st528;
- case 3082: goto tr1248;
- case 3131: goto tr1249;
- case 3338: goto tr1250;
- case 3387: goto tr1250;
- case 3594: goto tr1251;
- case 3643: goto tr1252;
- }
- goto tr1219;
-st378:
+ case 9: goto st386;
+ case 32: goto st386;
+ case 40: goto tr1247;
+ case 41: goto tr1248;
+ case 65: goto st387;
+ case 67: goto st392;
+ case 68: goto st413;
+ case 69: goto st427;
+ case 72: goto st434;
+ case 73: goto st443;
+ case 75: goto st451;
+ case 76: goto st455;
+ case 77: goto st463;
+ case 78: goto st469;
+ case 79: goto st485;
+ case 80: goto st495;
+ case 82: goto st498;
+ case 83: goto st505;
+ case 84: goto st524;
+ case 85: goto st534;
+ case 87: goto st537;
+ case 90: goto st543;
+ case 97: goto st387;
+ case 99: goto st392;
+ case 100: goto st413;
+ case 101: goto st427;
+ case 104: goto st434;
+ case 105: goto st443;
+ case 107: goto st451;
+ case 108: goto st455;
+ case 109: goto st463;
+ case 110: goto st469;
+ case 111: goto st485;
+ case 112: goto st495;
+ case 114: goto st498;
+ case 115: goto st505;
+ case 116: goto st524;
+ case 117: goto st534;
+ case 119: goto st537;
+ case 122: goto st543;
+ case 3082: goto tr1267;
+ case 3131: goto tr1268;
+ case 3338: goto tr1269;
+ case 3387: goto tr1269;
+ case 3594: goto tr1270;
+ case 3643: goto tr1271;
+ }
+ goto tr1237;
+st387:
if ( ++p == pe )
- goto _test_eof378;
-case 378:
+ goto _test_eof387;
+case 387:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -47100,46 +48189,46 @@ case 378:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1253;
- case 32: goto tr1253;
- case 40: goto tr1254;
- case 41: goto tr1255;
- case 65: goto st379;
- case 70: goto st534;
- case 80: goto st538;
- case 97: goto st379;
- case 102: goto st534;
- case 112: goto st538;
- case 3082: goto tr1259;
- case 3131: goto tr1260;
- case 3338: goto tr1261;
- case 3387: goto tr1261;
- case 3594: goto tr1262;
- case 3643: goto tr1263;
- }
- goto tr1219;
-st379:
+ case 9: goto tr1272;
+ case 32: goto tr1272;
+ case 40: goto tr1273;
+ case 41: goto tr1274;
+ case 65: goto st388;
+ case 70: goto st549;
+ case 80: goto st553;
+ case 97: goto st388;
+ case 102: goto st549;
+ case 112: goto st553;
+ case 3082: goto tr1278;
+ case 3131: goto tr1279;
+ case 3338: goto tr1280;
+ case 3387: goto tr1280;
+ case 3594: goto tr1281;
+ case 3643: goto tr1282;
+ }
+ goto tr1237;
+st388:
if ( ++p == pe )
- goto _test_eof379;
-case 379:
+ goto _test_eof388;
+case 388:
switch( (*p) ) {
- case 65: goto st380;
- case 97: goto st380;
+ case 65: goto st389;
+ case 97: goto st389;
}
- goto tr1219;
-st380:
+ goto tr1237;
+st389:
if ( ++p == pe )
- goto _test_eof380;
-case 380:
+ goto _test_eof389;
+case 389:
switch( (*p) ) {
- case 65: goto st381;
- case 97: goto st381;
+ case 65: goto st390;
+ case 97: goto st390;
}
- goto tr1219;
-st381:
+ goto tr1237;
+st390:
if ( ++p == pe )
- goto _test_eof381;
-case 381:
+ goto _test_eof390;
+case 390:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -47157,31 +48246,31 @@ case 381:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1266;
- case 32: goto tr1266;
- case 40: goto tr1267;
- case 41: goto tr1268;
- case 3082: goto tr1269;
- case 3131: goto tr1270;
- case 3338: goto tr1271;
- case 3387: goto tr1271;
- case 3594: goto tr1272;
- case 3643: goto tr1273;
+ case 9: goto tr1285;
+ case 32: goto tr1285;
+ case 40: goto tr1286;
+ case 41: goto tr1287;
+ case 3082: goto tr1288;
+ case 3131: goto tr1289;
+ case 3338: goto tr1290;
+ case 3387: goto tr1290;
+ case 3594: goto tr1291;
+ case 3643: goto tr1292;
}
- goto tr1219;
-tr1249:
+ goto tr1237;
+tr1268:
{
s->buffer_length = 0;
}
- goto st382;
-tr1274:
+ goto st391;
+tr1293:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st382;
-tr1224:
+ goto st391;
+tr1242:
{
memset(s->windows, 0, sizeof(s->windows));
s->last_window = -1;
@@ -47189,312 +48278,318 @@ tr1224:
{
s->buffer_length = 0;
}
- goto st382;
-tr1260:
+ goto st391;
+tr1279:
{ window_add_bit(KNOT_RRTYPE_A, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1270:
+ goto st391;
+tr1289:
{ window_add_bit(KNOT_RRTYPE_AAAA, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1286:
+ goto st391;
+tr1305:
{ window_add_bit(KNOT_RRTYPE_CAA, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1300:
+ goto st391;
+tr1319:
{ window_add_bit(KNOT_RRTYPE_CDNSKEY, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1308:
+ goto st391;
+tr1327:
{ window_add_bit(KNOT_RRTYPE_CDS, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1318:
+ goto st391;
+tr1337:
{ window_add_bit(KNOT_RRTYPE_CERT, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1329:
+ goto st391;
+tr1348:
{ window_add_bit(KNOT_RRTYPE_CNAME, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1340:
+ goto st391;
+tr1359:
{ window_add_bit(KNOT_RRTYPE_CSYNC, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1354:
+ goto st391;
+tr1373:
{ window_add_bit(KNOT_RRTYPE_DHCID, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1366:
+ goto st391;
+tr1385:
{ window_add_bit(KNOT_RRTYPE_DNAME, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1377:
+ goto st391;
+tr1396:
{ window_add_bit(KNOT_RRTYPE_DNSKEY, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1385:
+ goto st391;
+tr1404:
{ window_add_bit(KNOT_RRTYPE_DS, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1398:
+ goto st391;
+tr1417:
{ window_add_bit(KNOT_RRTYPE_EUI48, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1407:
+ goto st391;
+tr1426:
{ window_add_bit(KNOT_RRTYPE_EUI64, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1420:
+ goto st391;
+tr1439:
{ window_add_bit(KNOT_RRTYPE_HINFO, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1431:
+ goto st391;
+tr1450:
{ window_add_bit(KNOT_RRTYPE_HTTPS, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1446:
+ goto st391;
+tr1465:
{ window_add_bit(KNOT_RRTYPE_IPSECKEY, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1457:
+ goto st391;
+tr1476:
{ window_add_bit(KNOT_RRTYPE_KEY, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1465:
+ goto st391;
+tr1484:
{ window_add_bit(KNOT_RRTYPE_KX, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1478:
+ goto st391;
+tr1497:
{ window_add_bit(KNOT_RRTYPE_L32, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1487:
+ goto st391;
+tr1506:
{ window_add_bit(KNOT_RRTYPE_L64, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1496:
+ goto st391;
+tr1515:
{ window_add_bit(KNOT_RRTYPE_LOC, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1504:
+ goto st391;
+tr1523:
{ window_add_bit(KNOT_RRTYPE_LP, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1517:
+ goto st391;
+tr1536:
{ window_add_bit(KNOT_RRTYPE_MINFO, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1525:
+ goto st391;
+tr1544:
{ window_add_bit(KNOT_RRTYPE_MX, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1539:
+ goto st391;
+tr1558:
{ window_add_bit(KNOT_RRTYPE_NAPTR, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1548:
+ goto st391;
+tr1567:
{ window_add_bit(KNOT_RRTYPE_NID, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1557:
+ goto st391;
+tr1576:
{ window_add_bit(KNOT_RRTYPE_NS, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1567:
+ goto st391;
+tr1586:
{ window_add_bit(KNOT_RRTYPE_NSEC, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1576:
+ goto st391;
+tr1595:
{ window_add_bit(KNOT_RRTYPE_NSEC3, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1588:
+ goto st391;
+tr1607:
{ window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1605:
+ goto st391;
+tr1624:
{ window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1615:
+ goto st391;
+tr1634:
{ window_add_bit(KNOT_RRTYPE_PTR, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1626:
+ goto st391;
+tr1645:
{ window_add_bit(KNOT_RRTYPE_RP, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1637:
+ goto st391;
+tr1656:
{ window_add_bit(KNOT_RRTYPE_RRSIG, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1645:
+ goto st391;
+tr1664:
{ window_add_bit(KNOT_RRTYPE_RT, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1663:
+ goto st391;
+tr1682:
{ window_add_bit(KNOT_RRTYPE_SMIMEA, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1672:
+ goto st391;
+tr1691:
{ window_add_bit(KNOT_RRTYPE_SOA, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1681:
+ goto st391;
+tr1700:
{ window_add_bit(KNOT_RRTYPE_SPF, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1690:
+ goto st391;
+tr1709:
{ window_add_bit(KNOT_RRTYPE_SRV, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1701:
+ goto st391;
+tr1720:
{ window_add_bit(KNOT_RRTYPE_SSHFP, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1711:
+ goto st391;
+tr1730:
{ window_add_bit(KNOT_RRTYPE_SVCB, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1724:
+ goto st391;
+tr1743:
{ window_add_bit(KNOT_RRTYPE_TLSA, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1733:
+ goto st391;
+tr1752:
{ window_add_bit(KNOT_RRTYPE_TXT, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1745:
+ goto st391;
+tr1764:
{
if (s->number64 <= UINT16_MAX) {
window_add_bit(s->number64, s);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st382;
-tr1755:
+ goto st391;
+tr1774:
{ window_add_bit(KNOT_RRTYPE_URI, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1768:
+ goto st391;
+tr1787:
+ { window_add_bit(KNOT_RRTYPE_WALLET, s); }
+ {
+ s->buffer_length = 0;
+ }
+ goto st391;
+tr1800:
{ window_add_bit(KNOT_RRTYPE_ZONEMD, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1779:
+ goto st391;
+tr1811:
{ window_add_bit(KNOT_RRTYPE_AFSDB, s); }
{
s->buffer_length = 0;
}
- goto st382;
-tr1788:
+ goto st391;
+tr1820:
{ window_add_bit(KNOT_RRTYPE_APL, s); }
{
s->buffer_length = 0;
}
- goto st382;
-st382:
+ goto st391;
+st391:
if ( ++p == pe )
- goto _test_eof382;
-case 382:
+ goto _test_eof391;
+case 391:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -47514,11 +48609,11 @@ case 382:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1275;
+ goto tr1294;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1274;
- goto tr1219;
-tr1225:
+ goto tr1293;
+ goto tr1237;
+tr1243:
{
memset(s->windows, 0, sizeof(s->windows));
s->last_window = -1;
@@ -47541,7 +48636,7 @@ tr1225:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47549,8 +48644,8 @@ tr1225:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1250:
+ goto st1466;
+tr1269:
{
for (uint16_t window = 0; window <= s->last_window; window++) {
if ((s->windows[window]).length > 0) {
@@ -47569,7 +48664,7 @@ tr1250:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47577,8 +48672,8 @@ tr1250:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1261:
+ goto st1466;
+tr1280:
{ window_add_bit(KNOT_RRTYPE_A, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47598,7 +48693,7 @@ tr1261:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47606,8 +48701,8 @@ tr1261:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1271:
+ goto st1466;
+tr1290:
{ window_add_bit(KNOT_RRTYPE_AAAA, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47627,7 +48722,7 @@ tr1271:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47635,8 +48730,8 @@ tr1271:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1287:
+ goto st1466;
+tr1306:
{ window_add_bit(KNOT_RRTYPE_CAA, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47656,7 +48751,7 @@ tr1287:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47664,8 +48759,8 @@ tr1287:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1301:
+ goto st1466;
+tr1320:
{ window_add_bit(KNOT_RRTYPE_CDNSKEY, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47685,7 +48780,7 @@ tr1301:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47693,8 +48788,8 @@ tr1301:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1309:
+ goto st1466;
+tr1328:
{ window_add_bit(KNOT_RRTYPE_CDS, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47714,7 +48809,7 @@ tr1309:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47722,8 +48817,8 @@ tr1309:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1319:
+ goto st1466;
+tr1338:
{ window_add_bit(KNOT_RRTYPE_CERT, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47743,7 +48838,7 @@ tr1319:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47751,8 +48846,8 @@ tr1319:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1330:
+ goto st1466;
+tr1349:
{ window_add_bit(KNOT_RRTYPE_CNAME, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47772,7 +48867,7 @@ tr1330:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47780,8 +48875,8 @@ tr1330:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1341:
+ goto st1466;
+tr1360:
{ window_add_bit(KNOT_RRTYPE_CSYNC, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47801,7 +48896,7 @@ tr1341:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47809,8 +48904,8 @@ tr1341:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1355:
+ goto st1466;
+tr1374:
{ window_add_bit(KNOT_RRTYPE_DHCID, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47830,7 +48925,7 @@ tr1355:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47838,8 +48933,8 @@ tr1355:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1367:
+ goto st1466;
+tr1386:
{ window_add_bit(KNOT_RRTYPE_DNAME, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47859,7 +48954,7 @@ tr1367:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47867,8 +48962,8 @@ tr1367:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1378:
+ goto st1466;
+tr1397:
{ window_add_bit(KNOT_RRTYPE_DNSKEY, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47888,7 +48983,7 @@ tr1378:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47896,8 +48991,8 @@ tr1378:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1386:
+ goto st1466;
+tr1405:
{ window_add_bit(KNOT_RRTYPE_DS, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47917,7 +49012,7 @@ tr1386:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47925,8 +49020,8 @@ tr1386:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1399:
+ goto st1466;
+tr1418:
{ window_add_bit(KNOT_RRTYPE_EUI48, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47946,7 +49041,7 @@ tr1399:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47954,8 +49049,8 @@ tr1399:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1408:
+ goto st1466;
+tr1427:
{ window_add_bit(KNOT_RRTYPE_EUI64, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -47975,7 +49070,7 @@ tr1408:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -47983,8 +49078,8 @@ tr1408:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1421:
+ goto st1466;
+tr1440:
{ window_add_bit(KNOT_RRTYPE_HINFO, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48004,7 +49099,7 @@ tr1421:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48012,8 +49107,8 @@ tr1421:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1432:
+ goto st1466;
+tr1451:
{ window_add_bit(KNOT_RRTYPE_HTTPS, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48033,7 +49128,7 @@ tr1432:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48041,8 +49136,8 @@ tr1432:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1447:
+ goto st1466;
+tr1466:
{ window_add_bit(KNOT_RRTYPE_IPSECKEY, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48062,7 +49157,7 @@ tr1447:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48070,8 +49165,8 @@ tr1447:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1458:
+ goto st1466;
+tr1477:
{ window_add_bit(KNOT_RRTYPE_KEY, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48091,7 +49186,7 @@ tr1458:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48099,8 +49194,8 @@ tr1458:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1466:
+ goto st1466;
+tr1485:
{ window_add_bit(KNOT_RRTYPE_KX, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48120,7 +49215,7 @@ tr1466:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48128,8 +49223,8 @@ tr1466:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1479:
+ goto st1466;
+tr1498:
{ window_add_bit(KNOT_RRTYPE_L32, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48149,7 +49244,7 @@ tr1479:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48157,8 +49252,8 @@ tr1479:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1488:
+ goto st1466;
+tr1507:
{ window_add_bit(KNOT_RRTYPE_L64, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48178,7 +49273,7 @@ tr1488:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48186,8 +49281,8 @@ tr1488:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1497:
+ goto st1466;
+tr1516:
{ window_add_bit(KNOT_RRTYPE_LOC, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48207,7 +49302,7 @@ tr1497:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48215,8 +49310,8 @@ tr1497:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1505:
+ goto st1466;
+tr1524:
{ window_add_bit(KNOT_RRTYPE_LP, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48236,7 +49331,7 @@ tr1505:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48244,8 +49339,8 @@ tr1505:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1518:
+ goto st1466;
+tr1537:
{ window_add_bit(KNOT_RRTYPE_MINFO, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48265,7 +49360,7 @@ tr1518:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48273,8 +49368,8 @@ tr1518:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1526:
+ goto st1466;
+tr1545:
{ window_add_bit(KNOT_RRTYPE_MX, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48294,7 +49389,7 @@ tr1526:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48302,8 +49397,8 @@ tr1526:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1540:
+ goto st1466;
+tr1559:
{ window_add_bit(KNOT_RRTYPE_NAPTR, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48323,7 +49418,7 @@ tr1540:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48331,8 +49426,8 @@ tr1540:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1549:
+ goto st1466;
+tr1568:
{ window_add_bit(KNOT_RRTYPE_NID, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48352,7 +49447,7 @@ tr1549:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48360,8 +49455,8 @@ tr1549:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1558:
+ goto st1466;
+tr1577:
{ window_add_bit(KNOT_RRTYPE_NS, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48381,7 +49476,7 @@ tr1558:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48389,8 +49484,8 @@ tr1558:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1568:
+ goto st1466;
+tr1587:
{ window_add_bit(KNOT_RRTYPE_NSEC, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48410,7 +49505,7 @@ tr1568:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48418,8 +49513,8 @@ tr1568:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1577:
+ goto st1466;
+tr1596:
{ window_add_bit(KNOT_RRTYPE_NSEC3, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48439,7 +49534,7 @@ tr1577:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48447,8 +49542,8 @@ tr1577:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1589:
+ goto st1466;
+tr1608:
{ window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48468,7 +49563,7 @@ tr1589:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48476,8 +49571,8 @@ tr1589:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1606:
+ goto st1466;
+tr1625:
{ window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48497,7 +49592,7 @@ tr1606:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48505,8 +49600,8 @@ tr1606:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1616:
+ goto st1466;
+tr1635:
{ window_add_bit(KNOT_RRTYPE_PTR, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48526,7 +49621,7 @@ tr1616:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48534,8 +49629,8 @@ tr1616:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1627:
+ goto st1466;
+tr1646:
{ window_add_bit(KNOT_RRTYPE_RP, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48555,7 +49650,7 @@ tr1627:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48563,8 +49658,8 @@ tr1627:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1638:
+ goto st1466;
+tr1657:
{ window_add_bit(KNOT_RRTYPE_RRSIG, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48584,7 +49679,7 @@ tr1638:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48592,8 +49687,8 @@ tr1638:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1646:
+ goto st1466;
+tr1665:
{ window_add_bit(KNOT_RRTYPE_RT, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48613,7 +49708,7 @@ tr1646:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48621,8 +49716,8 @@ tr1646:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1664:
+ goto st1466;
+tr1683:
{ window_add_bit(KNOT_RRTYPE_SMIMEA, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48642,7 +49737,7 @@ tr1664:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48650,8 +49745,8 @@ tr1664:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1673:
+ goto st1466;
+tr1692:
{ window_add_bit(KNOT_RRTYPE_SOA, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48671,7 +49766,7 @@ tr1673:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48679,8 +49774,8 @@ tr1673:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1682:
+ goto st1466;
+tr1701:
{ window_add_bit(KNOT_RRTYPE_SPF, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48700,7 +49795,7 @@ tr1682:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48708,8 +49803,8 @@ tr1682:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1691:
+ goto st1466;
+tr1710:
{ window_add_bit(KNOT_RRTYPE_SRV, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48729,7 +49824,7 @@ tr1691:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48737,8 +49832,8 @@ tr1691:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1702:
+ goto st1466;
+tr1721:
{ window_add_bit(KNOT_RRTYPE_SSHFP, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48758,7 +49853,7 @@ tr1702:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48766,8 +49861,8 @@ tr1702:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1712:
+ goto st1466;
+tr1731:
{ window_add_bit(KNOT_RRTYPE_SVCB, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48787,7 +49882,7 @@ tr1712:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48795,8 +49890,8 @@ tr1712:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1725:
+ goto st1466;
+tr1744:
{ window_add_bit(KNOT_RRTYPE_TLSA, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48816,7 +49911,7 @@ tr1725:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48824,8 +49919,8 @@ tr1725:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1734:
+ goto st1466;
+tr1753:
{ window_add_bit(KNOT_RRTYPE_TXT, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48845,7 +49940,7 @@ tr1734:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48853,14 +49948,14 @@ tr1734:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1746:
+ goto st1466;
+tr1765:
{
if (s->number64 <= UINT16_MAX) {
window_add_bit(s->number64, s);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -48881,7 +49976,7 @@ tr1746:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48889,8 +49984,8 @@ tr1746:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1756:
+ goto st1466;
+tr1775:
{ window_add_bit(KNOT_RRTYPE_URI, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48910,7 +50005,7 @@ tr1756:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48918,8 +50013,37 @@ tr1756:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1769:
+ goto st1466;
+tr1788:
+ { window_add_bit(KNOT_RRTYPE_WALLET, s); }
+ {
+ for (uint16_t window = 0; window <= s->last_window; window++) {
+ if ((s->windows[window]).length > 0) {
+ if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop)
+ {
+ // Window number.
+ *rdata_tail = (uint8_t)window;
+ rdata_tail += 1;
+ // Bitmap length.
+ *rdata_tail = (s->windows[window]).length;
+ rdata_tail += 1;
+ // Copying bitmap.
+ memcpy(rdata_tail,
+ (s->windows[window]).bitmap,
+ (s->windows[window]).length);
+ rdata_tail += (s->windows[window]).length;
+ } else {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ }
+ }
+ {
+ p--; {cs = stack[--top];goto _again;}
+ }
+ goto st1466;
+tr1801:
{ window_add_bit(KNOT_RRTYPE_ZONEMD, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48939,7 +50063,7 @@ tr1769:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48947,8 +50071,8 @@ tr1769:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1780:
+ goto st1466;
+tr1812:
{ window_add_bit(KNOT_RRTYPE_AFSDB, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48968,7 +50092,7 @@ tr1780:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -48976,8 +50100,8 @@ tr1780:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-tr1789:
+ goto st1466;
+tr1821:
{ window_add_bit(KNOT_RRTYPE_APL, s); }
{
for (uint16_t window = 0; window <= s->last_window; window++) {
@@ -48997,7 +50121,7 @@ tr1789:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49005,13 +50129,13 @@ tr1789:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1418;
-st1418:
+ goto st1466;
+st1466:
if ( ++p == pe )
- goto _test_eof1418;
-case 1418:
+ goto _test_eof1466;
+case 1466:
goto st0;
-tr1226:
+tr1244:
{
memset(s->windows, 0, sizeof(s->windows));
s->last_window = -1;
@@ -49037,7 +50161,7 @@ tr1226:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49045,8 +50169,8 @@ tr1226:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1251:
+ goto st1467;
+tr1270:
{
s->line_counter++;
}
@@ -49068,7 +50192,7 @@ tr1251:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49076,8 +50200,8 @@ tr1251:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1262:
+ goto st1467;
+tr1281:
{ window_add_bit(KNOT_RRTYPE_A, s); }
{
s->line_counter++;
@@ -49100,7 +50224,7 @@ tr1262:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49108,8 +50232,8 @@ tr1262:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1272:
+ goto st1467;
+tr1291:
{ window_add_bit(KNOT_RRTYPE_AAAA, s); }
{
s->line_counter++;
@@ -49132,7 +50256,7 @@ tr1272:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49140,8 +50264,8 @@ tr1272:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1288:
+ goto st1467;
+tr1307:
{ window_add_bit(KNOT_RRTYPE_CAA, s); }
{
s->line_counter++;
@@ -49164,7 +50288,7 @@ tr1288:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49172,8 +50296,8 @@ tr1288:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1302:
+ goto st1467;
+tr1321:
{ window_add_bit(KNOT_RRTYPE_CDNSKEY, s); }
{
s->line_counter++;
@@ -49196,7 +50320,7 @@ tr1302:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49204,8 +50328,8 @@ tr1302:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1310:
+ goto st1467;
+tr1329:
{ window_add_bit(KNOT_RRTYPE_CDS, s); }
{
s->line_counter++;
@@ -49228,7 +50352,7 @@ tr1310:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49236,8 +50360,8 @@ tr1310:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1320:
+ goto st1467;
+tr1339:
{ window_add_bit(KNOT_RRTYPE_CERT, s); }
{
s->line_counter++;
@@ -49260,7 +50384,7 @@ tr1320:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49268,8 +50392,8 @@ tr1320:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1331:
+ goto st1467;
+tr1350:
{ window_add_bit(KNOT_RRTYPE_CNAME, s); }
{
s->line_counter++;
@@ -49292,7 +50416,7 @@ tr1331:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49300,8 +50424,8 @@ tr1331:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1342:
+ goto st1467;
+tr1361:
{ window_add_bit(KNOT_RRTYPE_CSYNC, s); }
{
s->line_counter++;
@@ -49324,7 +50448,7 @@ tr1342:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49332,8 +50456,8 @@ tr1342:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1356:
+ goto st1467;
+tr1375:
{ window_add_bit(KNOT_RRTYPE_DHCID, s); }
{
s->line_counter++;
@@ -49356,7 +50480,7 @@ tr1356:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49364,8 +50488,8 @@ tr1356:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1368:
+ goto st1467;
+tr1387:
{ window_add_bit(KNOT_RRTYPE_DNAME, s); }
{
s->line_counter++;
@@ -49388,7 +50512,7 @@ tr1368:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49396,8 +50520,8 @@ tr1368:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1379:
+ goto st1467;
+tr1398:
{ window_add_bit(KNOT_RRTYPE_DNSKEY, s); }
{
s->line_counter++;
@@ -49420,7 +50544,7 @@ tr1379:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49428,8 +50552,8 @@ tr1379:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1387:
+ goto st1467;
+tr1406:
{ window_add_bit(KNOT_RRTYPE_DS, s); }
{
s->line_counter++;
@@ -49452,7 +50576,7 @@ tr1387:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49460,8 +50584,8 @@ tr1387:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1400:
+ goto st1467;
+tr1419:
{ window_add_bit(KNOT_RRTYPE_EUI48, s); }
{
s->line_counter++;
@@ -49484,7 +50608,7 @@ tr1400:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49492,8 +50616,8 @@ tr1400:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1409:
+ goto st1467;
+tr1428:
{ window_add_bit(KNOT_RRTYPE_EUI64, s); }
{
s->line_counter++;
@@ -49516,7 +50640,7 @@ tr1409:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49524,8 +50648,8 @@ tr1409:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1422:
+ goto st1467;
+tr1441:
{ window_add_bit(KNOT_RRTYPE_HINFO, s); }
{
s->line_counter++;
@@ -49548,7 +50672,7 @@ tr1422:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49556,8 +50680,8 @@ tr1422:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1433:
+ goto st1467;
+tr1452:
{ window_add_bit(KNOT_RRTYPE_HTTPS, s); }
{
s->line_counter++;
@@ -49580,7 +50704,7 @@ tr1433:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49588,8 +50712,8 @@ tr1433:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1448:
+ goto st1467;
+tr1467:
{ window_add_bit(KNOT_RRTYPE_IPSECKEY, s); }
{
s->line_counter++;
@@ -49612,7 +50736,7 @@ tr1448:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49620,8 +50744,8 @@ tr1448:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1459:
+ goto st1467;
+tr1478:
{ window_add_bit(KNOT_RRTYPE_KEY, s); }
{
s->line_counter++;
@@ -49644,7 +50768,7 @@ tr1459:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49652,8 +50776,8 @@ tr1459:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1467:
+ goto st1467;
+tr1486:
{ window_add_bit(KNOT_RRTYPE_KX, s); }
{
s->line_counter++;
@@ -49676,7 +50800,7 @@ tr1467:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49684,8 +50808,8 @@ tr1467:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1480:
+ goto st1467;
+tr1499:
{ window_add_bit(KNOT_RRTYPE_L32, s); }
{
s->line_counter++;
@@ -49708,7 +50832,7 @@ tr1480:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49716,8 +50840,8 @@ tr1480:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1489:
+ goto st1467;
+tr1508:
{ window_add_bit(KNOT_RRTYPE_L64, s); }
{
s->line_counter++;
@@ -49740,7 +50864,7 @@ tr1489:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49748,8 +50872,8 @@ tr1489:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1498:
+ goto st1467;
+tr1517:
{ window_add_bit(KNOT_RRTYPE_LOC, s); }
{
s->line_counter++;
@@ -49772,7 +50896,7 @@ tr1498:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49780,8 +50904,8 @@ tr1498:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1506:
+ goto st1467;
+tr1525:
{ window_add_bit(KNOT_RRTYPE_LP, s); }
{
s->line_counter++;
@@ -49804,7 +50928,7 @@ tr1506:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49812,8 +50936,8 @@ tr1506:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1519:
+ goto st1467;
+tr1538:
{ window_add_bit(KNOT_RRTYPE_MINFO, s); }
{
s->line_counter++;
@@ -49836,7 +50960,7 @@ tr1519:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49844,8 +50968,8 @@ tr1519:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1527:
+ goto st1467;
+tr1546:
{ window_add_bit(KNOT_RRTYPE_MX, s); }
{
s->line_counter++;
@@ -49868,7 +50992,7 @@ tr1527:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49876,8 +51000,8 @@ tr1527:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1541:
+ goto st1467;
+tr1560:
{ window_add_bit(KNOT_RRTYPE_NAPTR, s); }
{
s->line_counter++;
@@ -49900,7 +51024,7 @@ tr1541:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49908,8 +51032,8 @@ tr1541:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1550:
+ goto st1467;
+tr1569:
{ window_add_bit(KNOT_RRTYPE_NID, s); }
{
s->line_counter++;
@@ -49932,7 +51056,7 @@ tr1550:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49940,8 +51064,8 @@ tr1550:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1559:
+ goto st1467;
+tr1578:
{ window_add_bit(KNOT_RRTYPE_NS, s); }
{
s->line_counter++;
@@ -49964,7 +51088,7 @@ tr1559:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -49972,8 +51096,8 @@ tr1559:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1569:
+ goto st1467;
+tr1588:
{ window_add_bit(KNOT_RRTYPE_NSEC, s); }
{
s->line_counter++;
@@ -49996,7 +51120,7 @@ tr1569:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50004,8 +51128,8 @@ tr1569:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1578:
+ goto st1467;
+tr1597:
{ window_add_bit(KNOT_RRTYPE_NSEC3, s); }
{
s->line_counter++;
@@ -50028,7 +51152,7 @@ tr1578:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50036,8 +51160,8 @@ tr1578:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1590:
+ goto st1467;
+tr1609:
{ window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); }
{
s->line_counter++;
@@ -50060,7 +51184,7 @@ tr1590:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50068,8 +51192,8 @@ tr1590:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1607:
+ goto st1467;
+tr1626:
{ window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); }
{
s->line_counter++;
@@ -50092,7 +51216,7 @@ tr1607:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50100,8 +51224,8 @@ tr1607:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1617:
+ goto st1467;
+tr1636:
{ window_add_bit(KNOT_RRTYPE_PTR, s); }
{
s->line_counter++;
@@ -50124,7 +51248,7 @@ tr1617:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50132,8 +51256,8 @@ tr1617:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1628:
+ goto st1467;
+tr1647:
{ window_add_bit(KNOT_RRTYPE_RP, s); }
{
s->line_counter++;
@@ -50156,7 +51280,7 @@ tr1628:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50164,8 +51288,8 @@ tr1628:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1639:
+ goto st1467;
+tr1658:
{ window_add_bit(KNOT_RRTYPE_RRSIG, s); }
{
s->line_counter++;
@@ -50188,7 +51312,7 @@ tr1639:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50196,8 +51320,8 @@ tr1639:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1647:
+ goto st1467;
+tr1666:
{ window_add_bit(KNOT_RRTYPE_RT, s); }
{
s->line_counter++;
@@ -50220,7 +51344,7 @@ tr1647:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50228,8 +51352,8 @@ tr1647:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1665:
+ goto st1467;
+tr1684:
{ window_add_bit(KNOT_RRTYPE_SMIMEA, s); }
{
s->line_counter++;
@@ -50252,7 +51376,7 @@ tr1665:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50260,8 +51384,8 @@ tr1665:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1674:
+ goto st1467;
+tr1693:
{ window_add_bit(KNOT_RRTYPE_SOA, s); }
{
s->line_counter++;
@@ -50284,7 +51408,7 @@ tr1674:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50292,8 +51416,8 @@ tr1674:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1683:
+ goto st1467;
+tr1702:
{ window_add_bit(KNOT_RRTYPE_SPF, s); }
{
s->line_counter++;
@@ -50316,7 +51440,7 @@ tr1683:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50324,8 +51448,8 @@ tr1683:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1692:
+ goto st1467;
+tr1711:
{ window_add_bit(KNOT_RRTYPE_SRV, s); }
{
s->line_counter++;
@@ -50348,7 +51472,7 @@ tr1692:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50356,8 +51480,8 @@ tr1692:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1703:
+ goto st1467;
+tr1722:
{ window_add_bit(KNOT_RRTYPE_SSHFP, s); }
{
s->line_counter++;
@@ -50380,7 +51504,7 @@ tr1703:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50388,8 +51512,8 @@ tr1703:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1713:
+ goto st1467;
+tr1732:
{ window_add_bit(KNOT_RRTYPE_SVCB, s); }
{
s->line_counter++;
@@ -50412,7 +51536,7 @@ tr1713:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50420,8 +51544,8 @@ tr1713:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1726:
+ goto st1467;
+tr1745:
{ window_add_bit(KNOT_RRTYPE_TLSA, s); }
{
s->line_counter++;
@@ -50444,7 +51568,7 @@ tr1726:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50452,8 +51576,8 @@ tr1726:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1735:
+ goto st1467;
+tr1754:
{ window_add_bit(KNOT_RRTYPE_TXT, s); }
{
s->line_counter++;
@@ -50476,7 +51600,7 @@ tr1735:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50484,14 +51608,14 @@ tr1735:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1747:
+ goto st1467;
+tr1766:
{
if (s->number64 <= UINT16_MAX) {
window_add_bit(s->number64, s);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -50515,7 +51639,7 @@ tr1747:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50523,8 +51647,8 @@ tr1747:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1757:
+ goto st1467;
+tr1776:
{ window_add_bit(KNOT_RRTYPE_URI, s); }
{
s->line_counter++;
@@ -50547,7 +51671,7 @@ tr1757:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50555,8 +51679,40 @@ tr1757:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1770:
+ goto st1467;
+tr1789:
+ { window_add_bit(KNOT_RRTYPE_WALLET, s); }
+ {
+ s->line_counter++;
+ }
+ {
+ for (uint16_t window = 0; window <= s->last_window; window++) {
+ if ((s->windows[window]).length > 0) {
+ if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop)
+ {
+ // Window number.
+ *rdata_tail = (uint8_t)window;
+ rdata_tail += 1;
+ // Bitmap length.
+ *rdata_tail = (s->windows[window]).length;
+ rdata_tail += 1;
+ // Copying bitmap.
+ memcpy(rdata_tail,
+ (s->windows[window]).bitmap,
+ (s->windows[window]).length);
+ rdata_tail += (s->windows[window]).length;
+ } else {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ }
+ }
+ {
+ p--; {cs = stack[--top];goto _again;}
+ }
+ goto st1467;
+tr1802:
{ window_add_bit(KNOT_RRTYPE_ZONEMD, s); }
{
s->line_counter++;
@@ -50579,7 +51735,7 @@ tr1770:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50587,8 +51743,8 @@ tr1770:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1781:
+ goto st1467;
+tr1813:
{ window_add_bit(KNOT_RRTYPE_AFSDB, s); }
{
s->line_counter++;
@@ -50611,7 +51767,7 @@ tr1781:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50619,8 +51775,8 @@ tr1781:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-tr1790:
+ goto st1467;
+tr1822:
{ window_add_bit(KNOT_RRTYPE_APL, s); }
{
s->line_counter++;
@@ -50643,7 +51799,7 @@ tr1790:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50651,11 +51807,11 @@ tr1790:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1419;
-st1419:
+ goto st1467;
+st1467:
if ( ++p == pe )
- goto _test_eof1419;
-case 1419:
+ goto _test_eof1467;
+case 1467:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -50673,82 +51829,84 @@ case 1419:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st377;
- case 32: goto st377;
- case 40: goto tr1229;
- case 41: goto tr1230;
- case 65: goto st378;
- case 67: goto st383;
- case 68: goto st404;
- case 69: goto st418;
- case 72: goto st425;
- case 73: goto st434;
- case 75: goto st442;
- case 76: goto st446;
- case 77: goto st454;
- case 78: goto st460;
- case 79: goto st476;
- case 80: goto st486;
- case 82: goto st489;
- case 83: goto st496;
- case 84: goto st515;
- case 85: goto st525;
- case 90: goto st528;
- case 97: goto st378;
- case 99: goto st383;
- case 100: goto st404;
- case 101: goto st418;
- case 104: goto st425;
- case 105: goto st434;
- case 107: goto st442;
- case 108: goto st446;
- case 109: goto st454;
- case 110: goto st460;
- case 111: goto st476;
- case 112: goto st486;
- case 114: goto st489;
- case 115: goto st496;
- case 116: goto st515;
- case 117: goto st525;
- case 122: goto st528;
- case 3082: goto tr1248;
- case 3131: goto tr1249;
- case 3338: goto tr1250;
- case 3387: goto tr1250;
- case 3594: goto tr1251;
- case 3643: goto tr1252;
- }
- goto tr1219;
-st383:
+ case 9: goto st386;
+ case 32: goto st386;
+ case 40: goto tr1247;
+ case 41: goto tr1248;
+ case 65: goto st387;
+ case 67: goto st392;
+ case 68: goto st413;
+ case 69: goto st427;
+ case 72: goto st434;
+ case 73: goto st443;
+ case 75: goto st451;
+ case 76: goto st455;
+ case 77: goto st463;
+ case 78: goto st469;
+ case 79: goto st485;
+ case 80: goto st495;
+ case 82: goto st498;
+ case 83: goto st505;
+ case 84: goto st524;
+ case 85: goto st534;
+ case 87: goto st537;
+ case 90: goto st543;
+ case 97: goto st387;
+ case 99: goto st392;
+ case 100: goto st413;
+ case 101: goto st427;
+ case 104: goto st434;
+ case 105: goto st443;
+ case 107: goto st451;
+ case 108: goto st455;
+ case 109: goto st463;
+ case 110: goto st469;
+ case 111: goto st485;
+ case 112: goto st495;
+ case 114: goto st498;
+ case 115: goto st505;
+ case 116: goto st524;
+ case 117: goto st534;
+ case 119: goto st537;
+ case 122: goto st543;
+ case 3082: goto tr1267;
+ case 3131: goto tr1268;
+ case 3338: goto tr1269;
+ case 3387: goto tr1269;
+ case 3594: goto tr1270;
+ case 3643: goto tr1271;
+ }
+ goto tr1237;
+st392:
if ( ++p == pe )
- goto _test_eof383;
-case 383:
+ goto _test_eof392;
+case 392:
switch( (*p) ) {
- case 65: goto st384;
- case 68: goto st386;
- case 69: goto st393;
- case 78: goto st396;
- case 83: goto st400;
- case 97: goto st384;
- case 100: goto st386;
- case 101: goto st393;
- case 110: goto st396;
- case 115: goto st400;
- }
- goto tr1219;
-st384:
+ case 65: goto st393;
+ case 68: goto st395;
+ case 69: goto st402;
+ case 78: goto st405;
+ case 83: goto st409;
+ case 97: goto st393;
+ case 100: goto st395;
+ case 101: goto st402;
+ case 110: goto st405;
+ case 115: goto st409;
+ }
+ goto tr1237;
+st393:
if ( ++p == pe )
- goto _test_eof384;
-case 384:
+ goto _test_eof393;
+case 393:
switch( (*p) ) {
- case 65: goto st385;
- case 97: goto st385;
+ case 65: goto st394;
+ case 97: goto st394;
}
- goto tr1219;
-st385:
+ goto tr1237;
+st394:
if ( ++p == pe )
- goto _test_eof385;
-case 385:
+ goto _test_eof394;
+case 394:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -50766,19 +51924,19 @@ case 385:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1282;
- case 32: goto tr1282;
- case 40: goto tr1283;
- case 41: goto tr1284;
- case 3082: goto tr1285;
- case 3131: goto tr1286;
- case 3338: goto tr1287;
- case 3387: goto tr1287;
- case 3594: goto tr1288;
- case 3643: goto tr1289;
+ case 9: goto tr1301;
+ case 32: goto tr1301;
+ case 40: goto tr1302;
+ case 41: goto tr1303;
+ case 3082: goto tr1304;
+ case 3131: goto tr1305;
+ case 3338: goto tr1306;
+ case 3387: goto tr1306;
+ case 3594: goto tr1307;
+ case 3643: goto tr1308;
}
- goto tr1219;
-tr1227:
+ goto tr1237;
+tr1245:
{
memset(s->windows, 0, sizeof(s->windows));
s->last_window = -1;
@@ -50804,7 +51962,7 @@ tr1227:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50812,8 +51970,8 @@ tr1227:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1252:
+ goto st1468;
+tr1271:
{
s->buffer_length = 0;
}
@@ -50835,7 +51993,7 @@ tr1252:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50843,8 +52001,8 @@ tr1252:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1263:
+ goto st1468;
+tr1282:
{ window_add_bit(KNOT_RRTYPE_A, s); }
{
s->buffer_length = 0;
@@ -50867,7 +52025,7 @@ tr1263:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50875,8 +52033,8 @@ tr1263:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1273:
+ goto st1468;
+tr1292:
{ window_add_bit(KNOT_RRTYPE_AAAA, s); }
{
s->buffer_length = 0;
@@ -50899,7 +52057,7 @@ tr1273:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50907,8 +52065,8 @@ tr1273:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1289:
+ goto st1468;
+tr1308:
{ window_add_bit(KNOT_RRTYPE_CAA, s); }
{
s->buffer_length = 0;
@@ -50931,7 +52089,7 @@ tr1289:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50939,8 +52097,8 @@ tr1289:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1303:
+ goto st1468;
+tr1322:
{ window_add_bit(KNOT_RRTYPE_CDNSKEY, s); }
{
s->buffer_length = 0;
@@ -50963,7 +52121,7 @@ tr1303:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -50971,8 +52129,8 @@ tr1303:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1311:
+ goto st1468;
+tr1330:
{ window_add_bit(KNOT_RRTYPE_CDS, s); }
{
s->buffer_length = 0;
@@ -50995,7 +52153,7 @@ tr1311:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51003,8 +52161,8 @@ tr1311:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1321:
+ goto st1468;
+tr1340:
{ window_add_bit(KNOT_RRTYPE_CERT, s); }
{
s->buffer_length = 0;
@@ -51027,7 +52185,7 @@ tr1321:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51035,8 +52193,8 @@ tr1321:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1332:
+ goto st1468;
+tr1351:
{ window_add_bit(KNOT_RRTYPE_CNAME, s); }
{
s->buffer_length = 0;
@@ -51059,7 +52217,7 @@ tr1332:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51067,8 +52225,8 @@ tr1332:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1343:
+ goto st1468;
+tr1362:
{ window_add_bit(KNOT_RRTYPE_CSYNC, s); }
{
s->buffer_length = 0;
@@ -51091,7 +52249,7 @@ tr1343:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51099,8 +52257,8 @@ tr1343:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1357:
+ goto st1468;
+tr1376:
{ window_add_bit(KNOT_RRTYPE_DHCID, s); }
{
s->buffer_length = 0;
@@ -51123,7 +52281,7 @@ tr1357:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51131,8 +52289,8 @@ tr1357:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1369:
+ goto st1468;
+tr1388:
{ window_add_bit(KNOT_RRTYPE_DNAME, s); }
{
s->buffer_length = 0;
@@ -51155,7 +52313,7 @@ tr1369:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51163,8 +52321,8 @@ tr1369:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1380:
+ goto st1468;
+tr1399:
{ window_add_bit(KNOT_RRTYPE_DNSKEY, s); }
{
s->buffer_length = 0;
@@ -51187,7 +52345,7 @@ tr1380:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51195,8 +52353,8 @@ tr1380:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1388:
+ goto st1468;
+tr1407:
{ window_add_bit(KNOT_RRTYPE_DS, s); }
{
s->buffer_length = 0;
@@ -51219,7 +52377,7 @@ tr1388:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51227,8 +52385,8 @@ tr1388:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1401:
+ goto st1468;
+tr1420:
{ window_add_bit(KNOT_RRTYPE_EUI48, s); }
{
s->buffer_length = 0;
@@ -51251,7 +52409,7 @@ tr1401:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51259,8 +52417,8 @@ tr1401:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1410:
+ goto st1468;
+tr1429:
{ window_add_bit(KNOT_RRTYPE_EUI64, s); }
{
s->buffer_length = 0;
@@ -51283,7 +52441,7 @@ tr1410:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51291,8 +52449,8 @@ tr1410:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1423:
+ goto st1468;
+tr1442:
{ window_add_bit(KNOT_RRTYPE_HINFO, s); }
{
s->buffer_length = 0;
@@ -51315,7 +52473,7 @@ tr1423:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51323,8 +52481,8 @@ tr1423:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1434:
+ goto st1468;
+tr1453:
{ window_add_bit(KNOT_RRTYPE_HTTPS, s); }
{
s->buffer_length = 0;
@@ -51347,7 +52505,7 @@ tr1434:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51355,8 +52513,8 @@ tr1434:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1449:
+ goto st1468;
+tr1468:
{ window_add_bit(KNOT_RRTYPE_IPSECKEY, s); }
{
s->buffer_length = 0;
@@ -51379,7 +52537,7 @@ tr1449:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51387,8 +52545,8 @@ tr1449:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1460:
+ goto st1468;
+tr1479:
{ window_add_bit(KNOT_RRTYPE_KEY, s); }
{
s->buffer_length = 0;
@@ -51411,7 +52569,7 @@ tr1460:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51419,8 +52577,8 @@ tr1460:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1468:
+ goto st1468;
+tr1487:
{ window_add_bit(KNOT_RRTYPE_KX, s); }
{
s->buffer_length = 0;
@@ -51443,7 +52601,7 @@ tr1468:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51451,8 +52609,8 @@ tr1468:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1481:
+ goto st1468;
+tr1500:
{ window_add_bit(KNOT_RRTYPE_L32, s); }
{
s->buffer_length = 0;
@@ -51475,7 +52633,7 @@ tr1481:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51483,8 +52641,8 @@ tr1481:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1490:
+ goto st1468;
+tr1509:
{ window_add_bit(KNOT_RRTYPE_L64, s); }
{
s->buffer_length = 0;
@@ -51507,7 +52665,7 @@ tr1490:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51515,8 +52673,8 @@ tr1490:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1499:
+ goto st1468;
+tr1518:
{ window_add_bit(KNOT_RRTYPE_LOC, s); }
{
s->buffer_length = 0;
@@ -51539,7 +52697,7 @@ tr1499:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51547,8 +52705,8 @@ tr1499:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1507:
+ goto st1468;
+tr1526:
{ window_add_bit(KNOT_RRTYPE_LP, s); }
{
s->buffer_length = 0;
@@ -51571,7 +52729,7 @@ tr1507:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51579,8 +52737,8 @@ tr1507:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1520:
+ goto st1468;
+tr1539:
{ window_add_bit(KNOT_RRTYPE_MINFO, s); }
{
s->buffer_length = 0;
@@ -51603,7 +52761,7 @@ tr1520:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51611,8 +52769,8 @@ tr1520:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1528:
+ goto st1468;
+tr1547:
{ window_add_bit(KNOT_RRTYPE_MX, s); }
{
s->buffer_length = 0;
@@ -51635,7 +52793,7 @@ tr1528:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51643,8 +52801,8 @@ tr1528:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1542:
+ goto st1468;
+tr1561:
{ window_add_bit(KNOT_RRTYPE_NAPTR, s); }
{
s->buffer_length = 0;
@@ -51667,7 +52825,7 @@ tr1542:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51675,8 +52833,8 @@ tr1542:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1551:
+ goto st1468;
+tr1570:
{ window_add_bit(KNOT_RRTYPE_NID, s); }
{
s->buffer_length = 0;
@@ -51699,7 +52857,7 @@ tr1551:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51707,8 +52865,8 @@ tr1551:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1560:
+ goto st1468;
+tr1579:
{ window_add_bit(KNOT_RRTYPE_NS, s); }
{
s->buffer_length = 0;
@@ -51731,7 +52889,7 @@ tr1560:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51739,8 +52897,8 @@ tr1560:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1570:
+ goto st1468;
+tr1589:
{ window_add_bit(KNOT_RRTYPE_NSEC, s); }
{
s->buffer_length = 0;
@@ -51763,7 +52921,7 @@ tr1570:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51771,8 +52929,8 @@ tr1570:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1579:
+ goto st1468;
+tr1598:
{ window_add_bit(KNOT_RRTYPE_NSEC3, s); }
{
s->buffer_length = 0;
@@ -51795,7 +52953,7 @@ tr1579:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51803,8 +52961,8 @@ tr1579:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1591:
+ goto st1468;
+tr1610:
{ window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); }
{
s->buffer_length = 0;
@@ -51827,7 +52985,7 @@ tr1591:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51835,8 +52993,8 @@ tr1591:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1608:
+ goto st1468;
+tr1627:
{ window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); }
{
s->buffer_length = 0;
@@ -51859,7 +53017,7 @@ tr1608:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51867,8 +53025,8 @@ tr1608:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1618:
+ goto st1468;
+tr1637:
{ window_add_bit(KNOT_RRTYPE_PTR, s); }
{
s->buffer_length = 0;
@@ -51891,7 +53049,7 @@ tr1618:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51899,8 +53057,8 @@ tr1618:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1629:
+ goto st1468;
+tr1648:
{ window_add_bit(KNOT_RRTYPE_RP, s); }
{
s->buffer_length = 0;
@@ -51923,7 +53081,7 @@ tr1629:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51931,8 +53089,8 @@ tr1629:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1640:
+ goto st1468;
+tr1659:
{ window_add_bit(KNOT_RRTYPE_RRSIG, s); }
{
s->buffer_length = 0;
@@ -51955,7 +53113,7 @@ tr1640:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51963,8 +53121,8 @@ tr1640:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1648:
+ goto st1468;
+tr1667:
{ window_add_bit(KNOT_RRTYPE_RT, s); }
{
s->buffer_length = 0;
@@ -51987,7 +53145,7 @@ tr1648:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -51995,8 +53153,8 @@ tr1648:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1666:
+ goto st1468;
+tr1685:
{ window_add_bit(KNOT_RRTYPE_SMIMEA, s); }
{
s->buffer_length = 0;
@@ -52019,7 +53177,7 @@ tr1666:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -52027,8 +53185,8 @@ tr1666:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1675:
+ goto st1468;
+tr1694:
{ window_add_bit(KNOT_RRTYPE_SOA, s); }
{
s->buffer_length = 0;
@@ -52051,7 +53209,7 @@ tr1675:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -52059,8 +53217,8 @@ tr1675:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1684:
+ goto st1468;
+tr1703:
{ window_add_bit(KNOT_RRTYPE_SPF, s); }
{
s->buffer_length = 0;
@@ -52083,7 +53241,7 @@ tr1684:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -52091,8 +53249,8 @@ tr1684:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1693:
+ goto st1468;
+tr1712:
{ window_add_bit(KNOT_RRTYPE_SRV, s); }
{
s->buffer_length = 0;
@@ -52115,7 +53273,7 @@ tr1693:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -52123,8 +53281,8 @@ tr1693:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1704:
+ goto st1468;
+tr1723:
{ window_add_bit(KNOT_RRTYPE_SSHFP, s); }
{
s->buffer_length = 0;
@@ -52147,7 +53305,7 @@ tr1704:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -52155,8 +53313,8 @@ tr1704:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1714:
+ goto st1468;
+tr1733:
{ window_add_bit(KNOT_RRTYPE_SVCB, s); }
{
s->buffer_length = 0;
@@ -52179,7 +53337,7 @@ tr1714:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -52187,8 +53345,8 @@ tr1714:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1727:
+ goto st1468;
+tr1746:
{ window_add_bit(KNOT_RRTYPE_TLSA, s); }
{
s->buffer_length = 0;
@@ -52211,7 +53369,7 @@ tr1727:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -52219,8 +53377,8 @@ tr1727:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1736:
+ goto st1468;
+tr1755:
{ window_add_bit(KNOT_RRTYPE_TXT, s); }
{
s->buffer_length = 0;
@@ -52243,7 +53401,7 @@ tr1736:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -52251,14 +53409,14 @@ tr1736:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1748:
+ goto st1468;
+tr1767:
{
if (s->number64 <= UINT16_MAX) {
window_add_bit(s->number64, s);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -52282,7 +53440,7 @@ tr1748:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -52290,8 +53448,8 @@ tr1748:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1758:
+ goto st1468;
+tr1777:
{ window_add_bit(KNOT_RRTYPE_URI, s); }
{
s->buffer_length = 0;
@@ -52314,7 +53472,7 @@ tr1758:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -52322,8 +53480,40 @@ tr1758:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1771:
+ goto st1468;
+tr1790:
+ { window_add_bit(KNOT_RRTYPE_WALLET, s); }
+ {
+ s->buffer_length = 0;
+ }
+ {
+ for (uint16_t window = 0; window <= s->last_window; window++) {
+ if ((s->windows[window]).length > 0) {
+ if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop)
+ {
+ // Window number.
+ *rdata_tail = (uint8_t)window;
+ rdata_tail += 1;
+ // Bitmap length.
+ *rdata_tail = (s->windows[window]).length;
+ rdata_tail += 1;
+ // Copying bitmap.
+ memcpy(rdata_tail,
+ (s->windows[window]).bitmap,
+ (s->windows[window]).length);
+ rdata_tail += (s->windows[window]).length;
+ } else {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ }
+ }
+ {
+ p--; {cs = stack[--top];goto _again;}
+ }
+ goto st1468;
+tr1803:
{ window_add_bit(KNOT_RRTYPE_ZONEMD, s); }
{
s->buffer_length = 0;
@@ -52346,7 +53536,7 @@ tr1771:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -52354,8 +53544,8 @@ tr1771:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1782:
+ goto st1468;
+tr1814:
{ window_add_bit(KNOT_RRTYPE_AFSDB, s); }
{
s->buffer_length = 0;
@@ -52378,7 +53568,7 @@ tr1782:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -52386,8 +53576,8 @@ tr1782:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-tr1791:
+ goto st1468;
+tr1823:
{ window_add_bit(KNOT_RRTYPE_APL, s); }
{
s->buffer_length = 0;
@@ -52410,7 +53600,7 @@ tr1791:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
}
@@ -52418,11 +53608,11 @@ tr1791:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1420;
-st1420:
+ goto st1468;
+st1468:
if ( ++p == pe )
- goto _test_eof1420;
-case 1420:
+ goto _test_eof1468;
+case 1468:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -52442,145 +53632,61 @@ case 1420:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1275;
+ goto tr1294;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1274;
- goto tr1219;
-st386:
- if ( ++p == pe )
- goto _test_eof386;
-case 386:
- switch( (*p) ) {
- case 78: goto st387;
- case 83: goto st392;
- case 110: goto st387;
- case 115: goto st392;
- }
- goto tr1219;
-st387:
- if ( ++p == pe )
- goto _test_eof387;
-case 387:
- switch( (*p) ) {
- case 83: goto st388;
- case 115: goto st388;
- }
- goto tr1219;
-st388:
+ goto tr1293;
+ goto tr1237;
+st395:
if ( ++p == pe )
- goto _test_eof388;
-case 388:
+ goto _test_eof395;
+case 395:
switch( (*p) ) {
- case 75: goto st389;
- case 107: goto st389;
+ case 78: goto st396;
+ case 83: goto st401;
+ case 110: goto st396;
+ case 115: goto st401;
}
- goto tr1219;
-st389:
+ goto tr1237;
+st396:
if ( ++p == pe )
- goto _test_eof389;
-case 389:
+ goto _test_eof396;
+case 396:
switch( (*p) ) {
- case 69: goto st390;
- case 101: goto st390;
+ case 83: goto st397;
+ case 115: goto st397;
}
- goto tr1219;
-st390:
+ goto tr1237;
+st397:
if ( ++p == pe )
- goto _test_eof390;
-case 390:
+ goto _test_eof397;
+case 397:
switch( (*p) ) {
- case 89: goto st391;
- case 121: goto st391;
- }
- goto tr1219;
-st391:
- if ( ++p == pe )
- goto _test_eof391;
-case 391:
- _widec = (*p);
- if ( (*p) > 10 ) {
- if ( 59 <= (*p) && (*p) <= 59 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- } else if ( (*p) >= 10 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- switch( _widec ) {
- case 9: goto tr1296;
- case 32: goto tr1296;
- case 40: goto tr1297;
- case 41: goto tr1298;
- case 3082: goto tr1299;
- case 3131: goto tr1300;
- case 3338: goto tr1301;
- case 3387: goto tr1301;
- case 3594: goto tr1302;
- case 3643: goto tr1303;
+ case 75: goto st398;
+ case 107: goto st398;
}
- goto tr1219;
-st392:
- if ( ++p == pe )
- goto _test_eof392;
-case 392:
- _widec = (*p);
- if ( (*p) > 10 ) {
- if ( 59 <= (*p) && (*p) <= 59 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- } else if ( (*p) >= 10 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- switch( _widec ) {
- case 9: goto tr1304;
- case 32: goto tr1304;
- case 40: goto tr1305;
- case 41: goto tr1306;
- case 3082: goto tr1307;
- case 3131: goto tr1308;
- case 3338: goto tr1309;
- case 3387: goto tr1309;
- case 3594: goto tr1310;
- case 3643: goto tr1311;
- }
- goto tr1219;
-st393:
+ goto tr1237;
+st398:
if ( ++p == pe )
- goto _test_eof393;
-case 393:
+ goto _test_eof398;
+case 398:
switch( (*p) ) {
- case 82: goto st394;
- case 114: goto st394;
+ case 69: goto st399;
+ case 101: goto st399;
}
- goto tr1219;
-st394:
+ goto tr1237;
+st399:
if ( ++p == pe )
- goto _test_eof394;
-case 394:
+ goto _test_eof399;
+case 399:
switch( (*p) ) {
- case 84: goto st395;
- case 116: goto st395;
+ case 89: goto st400;
+ case 121: goto st400;
}
- goto tr1219;
-st395:
+ goto tr1237;
+st400:
if ( ++p == pe )
- goto _test_eof395;
-case 395:
+ goto _test_eof400;
+case 400:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -52598,49 +53704,22 @@ case 395:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1314;
- case 32: goto tr1314;
- case 40: goto tr1315;
- case 41: goto tr1316;
- case 3082: goto tr1317;
- case 3131: goto tr1318;
- case 3338: goto tr1319;
- case 3387: goto tr1319;
- case 3594: goto tr1320;
- case 3643: goto tr1321;
- }
- goto tr1219;
-st396:
- if ( ++p == pe )
- goto _test_eof396;
-case 396:
- switch( (*p) ) {
- case 65: goto st397;
- case 97: goto st397;
+ case 9: goto tr1315;
+ case 32: goto tr1315;
+ case 40: goto tr1316;
+ case 41: goto tr1317;
+ case 3082: goto tr1318;
+ case 3131: goto tr1319;
+ case 3338: goto tr1320;
+ case 3387: goto tr1320;
+ case 3594: goto tr1321;
+ case 3643: goto tr1322;
}
- goto tr1219;
-st397:
- if ( ++p == pe )
- goto _test_eof397;
-case 397:
- switch( (*p) ) {
- case 77: goto st398;
- case 109: goto st398;
- }
- goto tr1219;
-st398:
- if ( ++p == pe )
- goto _test_eof398;
-case 398:
- switch( (*p) ) {
- case 69: goto st399;
- case 101: goto st399;
- }
- goto tr1219;
-st399:
+ goto tr1237;
+st401:
if ( ++p == pe )
- goto _test_eof399;
-case 399:
+ goto _test_eof401;
+case 401:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -52658,49 +53737,40 @@ case 399:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1325;
- case 32: goto tr1325;
- case 40: goto tr1326;
- case 41: goto tr1327;
- case 3082: goto tr1328;
- case 3131: goto tr1329;
- case 3338: goto tr1330;
- case 3387: goto tr1330;
- case 3594: goto tr1331;
- case 3643: goto tr1332;
- }
- goto tr1219;
-st400:
- if ( ++p == pe )
- goto _test_eof400;
-case 400:
- switch( (*p) ) {
- case 89: goto st401;
- case 121: goto st401;
- }
- goto tr1219;
-st401:
- if ( ++p == pe )
- goto _test_eof401;
-case 401:
- switch( (*p) ) {
- case 78: goto st402;
- case 110: goto st402;
+ case 9: goto tr1323;
+ case 32: goto tr1323;
+ case 40: goto tr1324;
+ case 41: goto tr1325;
+ case 3082: goto tr1326;
+ case 3131: goto tr1327;
+ case 3338: goto tr1328;
+ case 3387: goto tr1328;
+ case 3594: goto tr1329;
+ case 3643: goto tr1330;
}
- goto tr1219;
+ goto tr1237;
st402:
if ( ++p == pe )
goto _test_eof402;
case 402:
switch( (*p) ) {
- case 67: goto st403;
- case 99: goto st403;
+ case 82: goto st403;
+ case 114: goto st403;
}
- goto tr1219;
+ goto tr1237;
st403:
if ( ++p == pe )
goto _test_eof403;
case 403:
+ switch( (*p) ) {
+ case 84: goto st404;
+ case 116: goto st404;
+ }
+ goto tr1237;
+st404:
+ if ( ++p == pe )
+ goto _test_eof404;
+case 404:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -52718,58 +53788,45 @@ case 403:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1336;
- case 32: goto tr1336;
- case 40: goto tr1337;
- case 41: goto tr1338;
- case 3082: goto tr1339;
- case 3131: goto tr1340;
- case 3338: goto tr1341;
- case 3387: goto tr1341;
- case 3594: goto tr1342;
- case 3643: goto tr1343;
+ case 9: goto tr1333;
+ case 32: goto tr1333;
+ case 40: goto tr1334;
+ case 41: goto tr1335;
+ case 3082: goto tr1336;
+ case 3131: goto tr1337;
+ case 3338: goto tr1338;
+ case 3387: goto tr1338;
+ case 3594: goto tr1339;
+ case 3643: goto tr1340;
}
- goto tr1219;
-st404:
- if ( ++p == pe )
- goto _test_eof404;
-case 404:
- switch( (*p) ) {
- case 72: goto st405;
- case 78: goto st409;
- case 83: goto st417;
- case 104: goto st405;
- case 110: goto st409;
- case 115: goto st417;
- }
- goto tr1219;
+ goto tr1237;
st405:
if ( ++p == pe )
goto _test_eof405;
case 405:
switch( (*p) ) {
- case 67: goto st406;
- case 99: goto st406;
+ case 65: goto st406;
+ case 97: goto st406;
}
- goto tr1219;
+ goto tr1237;
st406:
if ( ++p == pe )
goto _test_eof406;
case 406:
switch( (*p) ) {
- case 73: goto st407;
- case 105: goto st407;
+ case 77: goto st407;
+ case 109: goto st407;
}
- goto tr1219;
+ goto tr1237;
st407:
if ( ++p == pe )
goto _test_eof407;
case 407:
switch( (*p) ) {
- case 68: goto st408;
- case 100: goto st408;
+ case 69: goto st408;
+ case 101: goto st408;
}
- goto tr1219;
+ goto tr1237;
st408:
if ( ++p == pe )
goto _test_eof408;
@@ -52791,47 +53848,45 @@ case 408:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1350;
- case 32: goto tr1350;
- case 40: goto tr1351;
- case 41: goto tr1352;
- case 3082: goto tr1353;
- case 3131: goto tr1354;
- case 3338: goto tr1355;
- case 3387: goto tr1355;
- case 3594: goto tr1356;
- case 3643: goto tr1357;
+ case 9: goto tr1344;
+ case 32: goto tr1344;
+ case 40: goto tr1345;
+ case 41: goto tr1346;
+ case 3082: goto tr1347;
+ case 3131: goto tr1348;
+ case 3338: goto tr1349;
+ case 3387: goto tr1349;
+ case 3594: goto tr1350;
+ case 3643: goto tr1351;
}
- goto tr1219;
+ goto tr1237;
st409:
if ( ++p == pe )
goto _test_eof409;
case 409:
switch( (*p) ) {
- case 65: goto st410;
- case 83: goto st413;
- case 97: goto st410;
- case 115: goto st413;
+ case 89: goto st410;
+ case 121: goto st410;
}
- goto tr1219;
+ goto tr1237;
st410:
if ( ++p == pe )
goto _test_eof410;
case 410:
switch( (*p) ) {
- case 77: goto st411;
- case 109: goto st411;
+ case 78: goto st411;
+ case 110: goto st411;
}
- goto tr1219;
+ goto tr1237;
st411:
if ( ++p == pe )
goto _test_eof411;
case 411:
switch( (*p) ) {
- case 69: goto st412;
- case 101: goto st412;
+ case 67: goto st412;
+ case 99: goto st412;
}
- goto tr1219;
+ goto tr1237;
st412:
if ( ++p == pe )
goto _test_eof412;
@@ -52853,78 +53908,58 @@ case 412:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1362;
- case 32: goto tr1362;
- case 40: goto tr1363;
- case 41: goto tr1364;
- case 3082: goto tr1365;
- case 3131: goto tr1366;
- case 3338: goto tr1367;
- case 3387: goto tr1367;
- case 3594: goto tr1368;
- case 3643: goto tr1369;
+ case 9: goto tr1355;
+ case 32: goto tr1355;
+ case 40: goto tr1356;
+ case 41: goto tr1357;
+ case 3082: goto tr1358;
+ case 3131: goto tr1359;
+ case 3338: goto tr1360;
+ case 3387: goto tr1360;
+ case 3594: goto tr1361;
+ case 3643: goto tr1362;
}
- goto tr1219;
+ goto tr1237;
st413:
if ( ++p == pe )
goto _test_eof413;
case 413:
switch( (*p) ) {
- case 75: goto st414;
- case 107: goto st414;
+ case 72: goto st414;
+ case 78: goto st418;
+ case 83: goto st426;
+ case 104: goto st414;
+ case 110: goto st418;
+ case 115: goto st426;
}
- goto tr1219;
+ goto tr1237;
st414:
if ( ++p == pe )
goto _test_eof414;
case 414:
switch( (*p) ) {
- case 69: goto st415;
- case 101: goto st415;
+ case 67: goto st415;
+ case 99: goto st415;
}
- goto tr1219;
+ goto tr1237;
st415:
if ( ++p == pe )
goto _test_eof415;
case 415:
switch( (*p) ) {
- case 89: goto st416;
- case 121: goto st416;
+ case 73: goto st416;
+ case 105: goto st416;
}
- goto tr1219;
+ goto tr1237;
st416:
if ( ++p == pe )
goto _test_eof416;
case 416:
- _widec = (*p);
- if ( (*p) > 10 ) {
- if ( 59 <= (*p) && (*p) <= 59 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- } else if ( (*p) >= 10 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- switch( _widec ) {
- case 9: goto tr1373;
- case 32: goto tr1373;
- case 40: goto tr1374;
- case 41: goto tr1375;
- case 3082: goto tr1376;
- case 3131: goto tr1377;
- case 3338: goto tr1378;
- case 3387: goto tr1378;
- case 3594: goto tr1379;
- case 3643: goto tr1380;
+ switch( (*p) ) {
+ case 68: goto st417;
+ case 100: goto st417;
}
- goto tr1219;
+ goto tr1237;
st417:
if ( ++p == pe )
goto _test_eof417;
@@ -52946,56 +53981,51 @@ case 417:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1381;
- case 32: goto tr1381;
- case 40: goto tr1382;
- case 41: goto tr1383;
- case 3082: goto tr1384;
- case 3131: goto tr1385;
- case 3338: goto tr1386;
- case 3387: goto tr1386;
- case 3594: goto tr1387;
- case 3643: goto tr1388;
+ case 9: goto tr1369;
+ case 32: goto tr1369;
+ case 40: goto tr1370;
+ case 41: goto tr1371;
+ case 3082: goto tr1372;
+ case 3131: goto tr1373;
+ case 3338: goto tr1374;
+ case 3387: goto tr1374;
+ case 3594: goto tr1375;
+ case 3643: goto tr1376;
}
- goto tr1219;
+ goto tr1237;
st418:
if ( ++p == pe )
goto _test_eof418;
case 418:
switch( (*p) ) {
- case 85: goto st419;
- case 117: goto st419;
+ case 65: goto st419;
+ case 83: goto st422;
+ case 97: goto st419;
+ case 115: goto st422;
}
- goto tr1219;
+ goto tr1237;
st419:
if ( ++p == pe )
goto _test_eof419;
case 419:
switch( (*p) ) {
- case 73: goto st420;
- case 105: goto st420;
+ case 77: goto st420;
+ case 109: goto st420;
}
- goto tr1219;
+ goto tr1237;
st420:
if ( ++p == pe )
goto _test_eof420;
case 420:
switch( (*p) ) {
- case 52: goto st421;
- case 54: goto st423;
+ case 69: goto st421;
+ case 101: goto st421;
}
- goto tr1219;
+ goto tr1237;
st421:
if ( ++p == pe )
goto _test_eof421;
case 421:
- if ( (*p) == 56 )
- goto st422;
- goto tr1219;
-st422:
- if ( ++p == pe )
- goto _test_eof422;
-case 422:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -53013,29 +54043,49 @@ case 422:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1394;
- case 32: goto tr1394;
- case 40: goto tr1395;
- case 41: goto tr1396;
- case 3082: goto tr1397;
- case 3131: goto tr1398;
- case 3338: goto tr1399;
- case 3387: goto tr1399;
- case 3594: goto tr1400;
- case 3643: goto tr1401;
+ case 9: goto tr1381;
+ case 32: goto tr1381;
+ case 40: goto tr1382;
+ case 41: goto tr1383;
+ case 3082: goto tr1384;
+ case 3131: goto tr1385;
+ case 3338: goto tr1386;
+ case 3387: goto tr1386;
+ case 3594: goto tr1387;
+ case 3643: goto tr1388;
}
- goto tr1219;
+ goto tr1237;
+st422:
+ if ( ++p == pe )
+ goto _test_eof422;
+case 422:
+ switch( (*p) ) {
+ case 75: goto st423;
+ case 107: goto st423;
+ }
+ goto tr1237;
st423:
if ( ++p == pe )
goto _test_eof423;
case 423:
- if ( (*p) == 52 )
- goto st424;
- goto tr1219;
+ switch( (*p) ) {
+ case 69: goto st424;
+ case 101: goto st424;
+ }
+ goto tr1237;
st424:
if ( ++p == pe )
goto _test_eof424;
case 424:
+ switch( (*p) ) {
+ case 89: goto st425;
+ case 121: goto st425;
+ }
+ goto tr1237;
+st425:
+ if ( ++p == pe )
+ goto _test_eof425;
+case 425:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -53053,60 +54103,89 @@ case 424:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1403;
- case 32: goto tr1403;
- case 40: goto tr1404;
- case 41: goto tr1405;
- case 3082: goto tr1406;
- case 3131: goto tr1407;
- case 3338: goto tr1408;
- case 3387: goto tr1408;
- case 3594: goto tr1409;
- case 3643: goto tr1410;
- }
- goto tr1219;
-st425:
- if ( ++p == pe )
- goto _test_eof425;
-case 425:
- switch( (*p) ) {
- case 73: goto st426;
- case 84: goto st430;
- case 105: goto st426;
- case 116: goto st430;
+ case 9: goto tr1392;
+ case 32: goto tr1392;
+ case 40: goto tr1393;
+ case 41: goto tr1394;
+ case 3082: goto tr1395;
+ case 3131: goto tr1396;
+ case 3338: goto tr1397;
+ case 3387: goto tr1397;
+ case 3594: goto tr1398;
+ case 3643: goto tr1399;
}
- goto tr1219;
+ goto tr1237;
st426:
if ( ++p == pe )
goto _test_eof426;
case 426:
- switch( (*p) ) {
- case 78: goto st427;
- case 110: goto st427;
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
}
- goto tr1219;
+ switch( _widec ) {
+ case 9: goto tr1400;
+ case 32: goto tr1400;
+ case 40: goto tr1401;
+ case 41: goto tr1402;
+ case 3082: goto tr1403;
+ case 3131: goto tr1404;
+ case 3338: goto tr1405;
+ case 3387: goto tr1405;
+ case 3594: goto tr1406;
+ case 3643: goto tr1407;
+ }
+ goto tr1237;
st427:
if ( ++p == pe )
goto _test_eof427;
case 427:
switch( (*p) ) {
- case 70: goto st428;
- case 102: goto st428;
+ case 85: goto st428;
+ case 117: goto st428;
}
- goto tr1219;
+ goto tr1237;
st428:
if ( ++p == pe )
goto _test_eof428;
case 428:
switch( (*p) ) {
- case 79: goto st429;
- case 111: goto st429;
+ case 73: goto st429;
+ case 105: goto st429;
}
- goto tr1219;
+ goto tr1237;
st429:
if ( ++p == pe )
goto _test_eof429;
case 429:
+ switch( (*p) ) {
+ case 52: goto st430;
+ case 54: goto st432;
+ }
+ goto tr1237;
+st430:
+ if ( ++p == pe )
+ goto _test_eof430;
+case 430:
+ if ( (*p) == 56 )
+ goto st431;
+ goto tr1237;
+st431:
+ if ( ++p == pe )
+ goto _test_eof431;
+case 431:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -53124,45 +54203,25 @@ case 429:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1416;
- case 32: goto tr1416;
- case 40: goto tr1417;
- case 41: goto tr1418;
- case 3082: goto tr1419;
- case 3131: goto tr1420;
- case 3338: goto tr1421;
- case 3387: goto tr1421;
- case 3594: goto tr1422;
- case 3643: goto tr1423;
- }
- goto tr1219;
-st430:
- if ( ++p == pe )
- goto _test_eof430;
-case 430:
- switch( (*p) ) {
- case 84: goto st431;
- case 116: goto st431;
+ case 9: goto tr1413;
+ case 32: goto tr1413;
+ case 40: goto tr1414;
+ case 41: goto tr1415;
+ case 3082: goto tr1416;
+ case 3131: goto tr1417;
+ case 3338: goto tr1418;
+ case 3387: goto tr1418;
+ case 3594: goto tr1419;
+ case 3643: goto tr1420;
}
- goto tr1219;
-st431:
- if ( ++p == pe )
- goto _test_eof431;
-case 431:
- switch( (*p) ) {
- case 80: goto st432;
- case 112: goto st432;
- }
- goto tr1219;
+ goto tr1237;
st432:
if ( ++p == pe )
goto _test_eof432;
case 432:
- switch( (*p) ) {
- case 83: goto st433;
- case 115: goto st433;
- }
- goto tr1219;
+ if ( (*p) == 52 )
+ goto st433;
+ goto tr1237;
st433:
if ( ++p == pe )
goto _test_eof433;
@@ -53184,85 +54243,120 @@ case 433:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1427;
- case 32: goto tr1427;
- case 40: goto tr1428;
- case 41: goto tr1429;
- case 3082: goto tr1430;
- case 3131: goto tr1431;
- case 3338: goto tr1432;
- case 3387: goto tr1432;
- case 3594: goto tr1433;
- case 3643: goto tr1434;
+ case 9: goto tr1422;
+ case 32: goto tr1422;
+ case 40: goto tr1423;
+ case 41: goto tr1424;
+ case 3082: goto tr1425;
+ case 3131: goto tr1426;
+ case 3338: goto tr1427;
+ case 3387: goto tr1427;
+ case 3594: goto tr1428;
+ case 3643: goto tr1429;
}
- goto tr1219;
+ goto tr1237;
st434:
if ( ++p == pe )
goto _test_eof434;
case 434:
switch( (*p) ) {
- case 80: goto st435;
- case 112: goto st435;
+ case 73: goto st435;
+ case 84: goto st439;
+ case 105: goto st435;
+ case 116: goto st439;
}
- goto tr1219;
+ goto tr1237;
st435:
if ( ++p == pe )
goto _test_eof435;
case 435:
switch( (*p) ) {
- case 83: goto st436;
- case 115: goto st436;
+ case 78: goto st436;
+ case 110: goto st436;
}
- goto tr1219;
+ goto tr1237;
st436:
if ( ++p == pe )
goto _test_eof436;
case 436:
switch( (*p) ) {
- case 69: goto st437;
- case 101: goto st437;
+ case 70: goto st437;
+ case 102: goto st437;
}
- goto tr1219;
+ goto tr1237;
st437:
if ( ++p == pe )
goto _test_eof437;
case 437:
switch( (*p) ) {
- case 67: goto st438;
- case 99: goto st438;
+ case 79: goto st438;
+ case 111: goto st438;
}
- goto tr1219;
+ goto tr1237;
st438:
if ( ++p == pe )
goto _test_eof438;
case 438:
- switch( (*p) ) {
- case 75: goto st439;
- case 107: goto st439;
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
}
- goto tr1219;
+ switch( _widec ) {
+ case 9: goto tr1435;
+ case 32: goto tr1435;
+ case 40: goto tr1436;
+ case 41: goto tr1437;
+ case 3082: goto tr1438;
+ case 3131: goto tr1439;
+ case 3338: goto tr1440;
+ case 3387: goto tr1440;
+ case 3594: goto tr1441;
+ case 3643: goto tr1442;
+ }
+ goto tr1237;
st439:
if ( ++p == pe )
goto _test_eof439;
case 439:
switch( (*p) ) {
- case 69: goto st440;
- case 101: goto st440;
+ case 84: goto st440;
+ case 116: goto st440;
}
- goto tr1219;
+ goto tr1237;
st440:
if ( ++p == pe )
goto _test_eof440;
case 440:
switch( (*p) ) {
- case 89: goto st441;
- case 121: goto st441;
+ case 80: goto st441;
+ case 112: goto st441;
}
- goto tr1219;
+ goto tr1237;
st441:
if ( ++p == pe )
goto _test_eof441;
case 441:
+ switch( (*p) ) {
+ case 83: goto st442;
+ case 115: goto st442;
+ }
+ goto tr1237;
+st442:
+ if ( ++p == pe )
+ goto _test_eof442;
+case 442:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -53280,164 +54374,81 @@ case 441:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1442;
- case 32: goto tr1442;
- case 40: goto tr1443;
- case 41: goto tr1444;
- case 3082: goto tr1445;
- case 3131: goto tr1446;
- case 3338: goto tr1447;
- case 3387: goto tr1447;
- case 3594: goto tr1448;
- case 3643: goto tr1449;
+ case 9: goto tr1446;
+ case 32: goto tr1446;
+ case 40: goto tr1447;
+ case 41: goto tr1448;
+ case 3082: goto tr1449;
+ case 3131: goto tr1450;
+ case 3338: goto tr1451;
+ case 3387: goto tr1451;
+ case 3594: goto tr1452;
+ case 3643: goto tr1453;
}
- goto tr1219;
-st442:
- if ( ++p == pe )
- goto _test_eof442;
-case 442:
- switch( (*p) ) {
- case 69: goto st443;
- case 88: goto st445;
- case 101: goto st443;
- case 120: goto st445;
- }
- goto tr1219;
+ goto tr1237;
st443:
if ( ++p == pe )
goto _test_eof443;
case 443:
switch( (*p) ) {
- case 89: goto st444;
- case 121: goto st444;
+ case 80: goto st444;
+ case 112: goto st444;
}
- goto tr1219;
+ goto tr1237;
st444:
if ( ++p == pe )
goto _test_eof444;
case 444:
- _widec = (*p);
- if ( (*p) > 10 ) {
- if ( 59 <= (*p) && (*p) <= 59 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- } else if ( (*p) >= 10 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- switch( _widec ) {
- case 9: goto tr1453;
- case 32: goto tr1453;
- case 40: goto tr1454;
- case 41: goto tr1455;
- case 3082: goto tr1456;
- case 3131: goto tr1457;
- case 3338: goto tr1458;
- case 3387: goto tr1458;
- case 3594: goto tr1459;
- case 3643: goto tr1460;
+ switch( (*p) ) {
+ case 83: goto st445;
+ case 115: goto st445;
}
- goto tr1219;
+ goto tr1237;
st445:
if ( ++p == pe )
goto _test_eof445;
case 445:
- _widec = (*p);
- if ( (*p) > 10 ) {
- if ( 59 <= (*p) && (*p) <= 59 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- } else if ( (*p) >= 10 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- switch( _widec ) {
- case 9: goto tr1461;
- case 32: goto tr1461;
- case 40: goto tr1462;
- case 41: goto tr1463;
- case 3082: goto tr1464;
- case 3131: goto tr1465;
- case 3338: goto tr1466;
- case 3387: goto tr1466;
- case 3594: goto tr1467;
- case 3643: goto tr1468;
+ switch( (*p) ) {
+ case 69: goto st446;
+ case 101: goto st446;
}
- goto tr1219;
+ goto tr1237;
st446:
if ( ++p == pe )
goto _test_eof446;
case 446:
switch( (*p) ) {
- case 51: goto st447;
- case 54: goto st449;
- case 79: goto st451;
- case 80: goto st453;
- case 111: goto st451;
- case 112: goto st453;
+ case 67: goto st447;
+ case 99: goto st447;
}
- goto tr1219;
+ goto tr1237;
st447:
if ( ++p == pe )
goto _test_eof447;
case 447:
- if ( (*p) == 50 )
- goto st448;
- goto tr1219;
+ switch( (*p) ) {
+ case 75: goto st448;
+ case 107: goto st448;
+ }
+ goto tr1237;
st448:
if ( ++p == pe )
goto _test_eof448;
case 448:
- _widec = (*p);
- if ( (*p) > 10 ) {
- if ( 59 <= (*p) && (*p) <= 59 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- } else if ( (*p) >= 10 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- switch( _widec ) {
- case 9: goto tr1474;
- case 32: goto tr1474;
- case 40: goto tr1475;
- case 41: goto tr1476;
- case 3082: goto tr1477;
- case 3131: goto tr1478;
- case 3338: goto tr1479;
- case 3387: goto tr1479;
- case 3594: goto tr1480;
- case 3643: goto tr1481;
+ switch( (*p) ) {
+ case 69: goto st449;
+ case 101: goto st449;
}
- goto tr1219;
+ goto tr1237;
st449:
if ( ++p == pe )
goto _test_eof449;
case 449:
- if ( (*p) == 52 )
- goto st450;
- goto tr1219;
+ switch( (*p) ) {
+ case 89: goto st450;
+ case 121: goto st450;
+ }
+ goto tr1237;
st450:
if ( ++p == pe )
goto _test_eof450;
@@ -53459,31 +54470,42 @@ case 450:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1483;
- case 32: goto tr1483;
- case 40: goto tr1484;
- case 41: goto tr1485;
- case 3082: goto tr1486;
- case 3131: goto tr1487;
- case 3338: goto tr1488;
- case 3387: goto tr1488;
- case 3594: goto tr1489;
- case 3643: goto tr1490;
+ case 9: goto tr1461;
+ case 32: goto tr1461;
+ case 40: goto tr1462;
+ case 41: goto tr1463;
+ case 3082: goto tr1464;
+ case 3131: goto tr1465;
+ case 3338: goto tr1466;
+ case 3387: goto tr1466;
+ case 3594: goto tr1467;
+ case 3643: goto tr1468;
}
- goto tr1219;
+ goto tr1237;
st451:
if ( ++p == pe )
goto _test_eof451;
case 451:
switch( (*p) ) {
- case 67: goto st452;
- case 99: goto st452;
+ case 69: goto st452;
+ case 88: goto st454;
+ case 101: goto st452;
+ case 120: goto st454;
}
- goto tr1219;
+ goto tr1237;
st452:
if ( ++p == pe )
goto _test_eof452;
case 452:
+ switch( (*p) ) {
+ case 89: goto st453;
+ case 121: goto st453;
+ }
+ goto tr1237;
+st453:
+ if ( ++p == pe )
+ goto _test_eof453;
+case 453:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -53501,22 +54523,22 @@ case 452:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1492;
- case 32: goto tr1492;
- case 40: goto tr1493;
- case 41: goto tr1494;
- case 3082: goto tr1495;
- case 3131: goto tr1496;
- case 3338: goto tr1497;
- case 3387: goto tr1497;
- case 3594: goto tr1498;
- case 3643: goto tr1499;
+ case 9: goto tr1472;
+ case 32: goto tr1472;
+ case 40: goto tr1473;
+ case 41: goto tr1474;
+ case 3082: goto tr1475;
+ case 3131: goto tr1476;
+ case 3338: goto tr1477;
+ case 3387: goto tr1477;
+ case 3594: goto tr1478;
+ case 3643: goto tr1479;
}
- goto tr1219;
-st453:
+ goto tr1237;
+st454:
if ( ++p == pe )
- goto _test_eof453;
-case 453:
+ goto _test_eof454;
+case 454:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -53534,60 +54556,42 @@ case 453:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1500;
- case 32: goto tr1500;
- case 40: goto tr1501;
- case 41: goto tr1502;
- case 3082: goto tr1503;
- case 3131: goto tr1504;
- case 3338: goto tr1505;
- case 3387: goto tr1505;
- case 3594: goto tr1506;
- case 3643: goto tr1507;
- }
- goto tr1219;
-st454:
- if ( ++p == pe )
- goto _test_eof454;
-case 454:
- switch( (*p) ) {
- case 73: goto st455;
- case 88: goto st459;
- case 105: goto st455;
- case 120: goto st459;
+ case 9: goto tr1480;
+ case 32: goto tr1480;
+ case 40: goto tr1481;
+ case 41: goto tr1482;
+ case 3082: goto tr1483;
+ case 3131: goto tr1484;
+ case 3338: goto tr1485;
+ case 3387: goto tr1485;
+ case 3594: goto tr1486;
+ case 3643: goto tr1487;
}
- goto tr1219;
+ goto tr1237;
st455:
if ( ++p == pe )
goto _test_eof455;
case 455:
switch( (*p) ) {
- case 78: goto st456;
- case 110: goto st456;
+ case 51: goto st456;
+ case 54: goto st458;
+ case 79: goto st460;
+ case 80: goto st462;
+ case 111: goto st460;
+ case 112: goto st462;
}
- goto tr1219;
+ goto tr1237;
st456:
if ( ++p == pe )
goto _test_eof456;
case 456:
- switch( (*p) ) {
- case 70: goto st457;
- case 102: goto st457;
- }
- goto tr1219;
+ if ( (*p) == 50 )
+ goto st457;
+ goto tr1237;
st457:
if ( ++p == pe )
goto _test_eof457;
case 457:
- switch( (*p) ) {
- case 79: goto st458;
- case 111: goto st458;
- }
- goto tr1219;
-st458:
- if ( ++p == pe )
- goto _test_eof458;
-case 458:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -53605,18 +54609,25 @@ case 458:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1513;
- case 32: goto tr1513;
- case 40: goto tr1514;
- case 41: goto tr1515;
- case 3082: goto tr1516;
- case 3131: goto tr1517;
- case 3338: goto tr1518;
- case 3387: goto tr1518;
- case 3594: goto tr1519;
- case 3643: goto tr1520;
+ case 9: goto tr1493;
+ case 32: goto tr1493;
+ case 40: goto tr1494;
+ case 41: goto tr1495;
+ case 3082: goto tr1496;
+ case 3131: goto tr1497;
+ case 3338: goto tr1498;
+ case 3387: goto tr1498;
+ case 3594: goto tr1499;
+ case 3643: goto tr1500;
}
- goto tr1219;
+ goto tr1237;
+st458:
+ if ( ++p == pe )
+ goto _test_eof458;
+case 458:
+ if ( (*p) == 52 )
+ goto st459;
+ goto tr1237;
st459:
if ( ++p == pe )
goto _test_eof459;
@@ -53638,62 +54649,31 @@ case 459:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1521;
- case 32: goto tr1521;
- case 40: goto tr1522;
- case 41: goto tr1523;
- case 3082: goto tr1524;
- case 3131: goto tr1525;
- case 3338: goto tr1526;
- case 3387: goto tr1526;
- case 3594: goto tr1527;
- case 3643: goto tr1528;
+ case 9: goto tr1502;
+ case 32: goto tr1502;
+ case 40: goto tr1503;
+ case 41: goto tr1504;
+ case 3082: goto tr1505;
+ case 3131: goto tr1506;
+ case 3338: goto tr1507;
+ case 3387: goto tr1507;
+ case 3594: goto tr1508;
+ case 3643: goto tr1509;
}
- goto tr1219;
+ goto tr1237;
st460:
if ( ++p == pe )
goto _test_eof460;
case 460:
switch( (*p) ) {
- case 65: goto st461;
- case 73: goto st465;
- case 83: goto st467;
- case 97: goto st461;
- case 105: goto st465;
- case 115: goto st467;
+ case 67: goto st461;
+ case 99: goto st461;
}
- goto tr1219;
+ goto tr1237;
st461:
if ( ++p == pe )
goto _test_eof461;
case 461:
- switch( (*p) ) {
- case 80: goto st462;
- case 112: goto st462;
- }
- goto tr1219;
-st462:
- if ( ++p == pe )
- goto _test_eof462;
-case 462:
- switch( (*p) ) {
- case 84: goto st463;
- case 116: goto st463;
- }
- goto tr1219;
-st463:
- if ( ++p == pe )
- goto _test_eof463;
-case 463:
- switch( (*p) ) {
- case 82: goto st464;
- case 114: goto st464;
- }
- goto tr1219;
-st464:
- if ( ++p == pe )
- goto _test_eof464;
-case 464:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -53711,31 +54691,22 @@ case 464:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1535;
- case 32: goto tr1535;
- case 40: goto tr1536;
- case 41: goto tr1537;
- case 3082: goto tr1538;
- case 3131: goto tr1539;
- case 3338: goto tr1540;
- case 3387: goto tr1540;
- case 3594: goto tr1541;
- case 3643: goto tr1542;
- }
- goto tr1219;
-st465:
- if ( ++p == pe )
- goto _test_eof465;
-case 465:
- switch( (*p) ) {
- case 68: goto st466;
- case 100: goto st466;
+ case 9: goto tr1511;
+ case 32: goto tr1511;
+ case 40: goto tr1512;
+ case 41: goto tr1513;
+ case 3082: goto tr1514;
+ case 3131: goto tr1515;
+ case 3338: goto tr1516;
+ case 3387: goto tr1516;
+ case 3594: goto tr1517;
+ case 3643: goto tr1518;
}
- goto tr1219;
-st466:
+ goto tr1237;
+st462:
if ( ++p == pe )
- goto _test_eof466;
-case 466:
+ goto _test_eof462;
+case 462:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -53753,18 +54724,56 @@ case 466:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1544;
- case 32: goto tr1544;
- case 40: goto tr1545;
- case 41: goto tr1546;
- case 3082: goto tr1547;
- case 3131: goto tr1548;
- case 3338: goto tr1549;
- case 3387: goto tr1549;
- case 3594: goto tr1550;
- case 3643: goto tr1551;
+ case 9: goto tr1519;
+ case 32: goto tr1519;
+ case 40: goto tr1520;
+ case 41: goto tr1521;
+ case 3082: goto tr1522;
+ case 3131: goto tr1523;
+ case 3338: goto tr1524;
+ case 3387: goto tr1524;
+ case 3594: goto tr1525;
+ case 3643: goto tr1526;
+ }
+ goto tr1237;
+st463:
+ if ( ++p == pe )
+ goto _test_eof463;
+case 463:
+ switch( (*p) ) {
+ case 73: goto st464;
+ case 88: goto st468;
+ case 105: goto st464;
+ case 120: goto st468;
}
- goto tr1219;
+ goto tr1237;
+st464:
+ if ( ++p == pe )
+ goto _test_eof464;
+case 464:
+ switch( (*p) ) {
+ case 78: goto st465;
+ case 110: goto st465;
+ }
+ goto tr1237;
+st465:
+ if ( ++p == pe )
+ goto _test_eof465;
+case 465:
+ switch( (*p) ) {
+ case 70: goto st466;
+ case 102: goto st466;
+ }
+ goto tr1237;
+st466:
+ if ( ++p == pe )
+ goto _test_eof466;
+case 466:
+ switch( (*p) ) {
+ case 79: goto st467;
+ case 111: goto st467;
+ }
+ goto tr1237;
st467:
if ( ++p == pe )
goto _test_eof467;
@@ -53786,33 +54795,22 @@ case 467:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1552;
- case 32: goto tr1552;
- case 40: goto tr1553;
- case 41: goto tr1554;
- case 69: goto st468;
- case 101: goto st468;
- case 3082: goto tr1556;
- case 3131: goto tr1557;
- case 3338: goto tr1558;
- case 3387: goto tr1558;
- case 3594: goto tr1559;
- case 3643: goto tr1560;
- }
- goto tr1219;
+ case 9: goto tr1532;
+ case 32: goto tr1532;
+ case 40: goto tr1533;
+ case 41: goto tr1534;
+ case 3082: goto tr1535;
+ case 3131: goto tr1536;
+ case 3338: goto tr1537;
+ case 3387: goto tr1537;
+ case 3594: goto tr1538;
+ case 3643: goto tr1539;
+ }
+ goto tr1237;
st468:
if ( ++p == pe )
goto _test_eof468;
case 468:
- switch( (*p) ) {
- case 67: goto st469;
- case 99: goto st469;
- }
- goto tr1219;
-st469:
- if ( ++p == pe )
- goto _test_eof469;
-case 469:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -53830,63 +54828,49 @@ case 469:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1562;
- case 32: goto tr1562;
- case 40: goto tr1563;
- case 41: goto tr1564;
- case 51: goto st470;
- case 3082: goto tr1566;
- case 3131: goto tr1567;
- case 3338: goto tr1568;
- case 3387: goto tr1568;
- case 3594: goto tr1569;
- case 3643: goto tr1570;
+ case 9: goto tr1540;
+ case 32: goto tr1540;
+ case 40: goto tr1541;
+ case 41: goto tr1542;
+ case 3082: goto tr1543;
+ case 3131: goto tr1544;
+ case 3338: goto tr1545;
+ case 3387: goto tr1545;
+ case 3594: goto tr1546;
+ case 3643: goto tr1547;
+ }
+ goto tr1237;
+st469:
+ if ( ++p == pe )
+ goto _test_eof469;
+case 469:
+ switch( (*p) ) {
+ case 65: goto st470;
+ case 73: goto st474;
+ case 83: goto st476;
+ case 97: goto st470;
+ case 105: goto st474;
+ case 115: goto st476;
}
- goto tr1219;
+ goto tr1237;
st470:
if ( ++p == pe )
goto _test_eof470;
case 470:
- _widec = (*p);
- if ( (*p) > 10 ) {
- if ( 59 <= (*p) && (*p) <= 59 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- } else if ( (*p) >= 10 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- switch( _widec ) {
- case 9: goto tr1571;
- case 32: goto tr1571;
- case 40: goto tr1572;
- case 41: goto tr1573;
+ switch( (*p) ) {
case 80: goto st471;
case 112: goto st471;
- case 3082: goto tr1575;
- case 3131: goto tr1576;
- case 3338: goto tr1577;
- case 3387: goto tr1577;
- case 3594: goto tr1578;
- case 3643: goto tr1579;
}
- goto tr1219;
+ goto tr1237;
st471:
if ( ++p == pe )
goto _test_eof471;
case 471:
switch( (*p) ) {
- case 65: goto st472;
- case 97: goto st472;
+ case 84: goto st472;
+ case 116: goto st472;
}
- goto tr1219;
+ goto tr1237;
st472:
if ( ++p == pe )
goto _test_eof472;
@@ -53895,25 +54879,49 @@ case 472:
case 82: goto st473;
case 114: goto st473;
}
- goto tr1219;
+ goto tr1237;
st473:
if ( ++p == pe )
goto _test_eof473;
case 473:
- switch( (*p) ) {
- case 65: goto st474;
- case 97: goto st474;
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
}
- goto tr1219;
+ switch( _widec ) {
+ case 9: goto tr1554;
+ case 32: goto tr1554;
+ case 40: goto tr1555;
+ case 41: goto tr1556;
+ case 3082: goto tr1557;
+ case 3131: goto tr1558;
+ case 3338: goto tr1559;
+ case 3387: goto tr1559;
+ case 3594: goto tr1560;
+ case 3643: goto tr1561;
+ }
+ goto tr1237;
st474:
if ( ++p == pe )
goto _test_eof474;
case 474:
switch( (*p) ) {
- case 77: goto st475;
- case 109: goto st475;
+ case 68: goto st475;
+ case 100: goto st475;
}
- goto tr1219;
+ goto tr1237;
st475:
if ( ++p == pe )
goto _test_eof475;
@@ -53935,103 +54943,171 @@ case 475:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1584;
- case 32: goto tr1584;
- case 40: goto tr1585;
- case 41: goto tr1586;
- case 3082: goto tr1587;
- case 3131: goto tr1588;
- case 3338: goto tr1589;
- case 3387: goto tr1589;
- case 3594: goto tr1590;
- case 3643: goto tr1591;
+ case 9: goto tr1563;
+ case 32: goto tr1563;
+ case 40: goto tr1564;
+ case 41: goto tr1565;
+ case 3082: goto tr1566;
+ case 3131: goto tr1567;
+ case 3338: goto tr1568;
+ case 3387: goto tr1568;
+ case 3594: goto tr1569;
+ case 3643: goto tr1570;
}
- goto tr1219;
+ goto tr1237;
st476:
if ( ++p == pe )
goto _test_eof476;
case 476:
- switch( (*p) ) {
- case 80: goto st477;
- case 112: goto st477;
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
}
- goto tr1219;
+ switch( _widec ) {
+ case 9: goto tr1571;
+ case 32: goto tr1571;
+ case 40: goto tr1572;
+ case 41: goto tr1573;
+ case 69: goto st477;
+ case 101: goto st477;
+ case 3082: goto tr1575;
+ case 3131: goto tr1576;
+ case 3338: goto tr1577;
+ case 3387: goto tr1577;
+ case 3594: goto tr1578;
+ case 3643: goto tr1579;
+ }
+ goto tr1237;
st477:
if ( ++p == pe )
goto _test_eof477;
case 477:
switch( (*p) ) {
- case 69: goto st478;
- case 101: goto st478;
+ case 67: goto st478;
+ case 99: goto st478;
}
- goto tr1219;
+ goto tr1237;
st478:
if ( ++p == pe )
goto _test_eof478;
case 478:
- switch( (*p) ) {
- case 78: goto st479;
- case 110: goto st479;
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ switch( _widec ) {
+ case 9: goto tr1581;
+ case 32: goto tr1581;
+ case 40: goto tr1582;
+ case 41: goto tr1583;
+ case 51: goto st479;
+ case 3082: goto tr1585;
+ case 3131: goto tr1586;
+ case 3338: goto tr1587;
+ case 3387: goto tr1587;
+ case 3594: goto tr1588;
+ case 3643: goto tr1589;
}
- goto tr1219;
+ goto tr1237;
st479:
if ( ++p == pe )
goto _test_eof479;
case 479:
- switch( (*p) ) {
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ switch( _widec ) {
+ case 9: goto tr1590;
+ case 32: goto tr1590;
+ case 40: goto tr1591;
+ case 41: goto tr1592;
case 80: goto st480;
case 112: goto st480;
- }
- goto tr1219;
+ case 3082: goto tr1594;
+ case 3131: goto tr1595;
+ case 3338: goto tr1596;
+ case 3387: goto tr1596;
+ case 3594: goto tr1597;
+ case 3643: goto tr1598;
+ }
+ goto tr1237;
st480:
if ( ++p == pe )
goto _test_eof480;
case 480:
switch( (*p) ) {
- case 71: goto st481;
- case 103: goto st481;
+ case 65: goto st481;
+ case 97: goto st481;
}
- goto tr1219;
+ goto tr1237;
st481:
if ( ++p == pe )
goto _test_eof481;
case 481:
switch( (*p) ) {
- case 80: goto st482;
- case 112: goto st482;
+ case 82: goto st482;
+ case 114: goto st482;
}
- goto tr1219;
+ goto tr1237;
st482:
if ( ++p == pe )
goto _test_eof482;
case 482:
switch( (*p) ) {
- case 75: goto st483;
- case 107: goto st483;
+ case 65: goto st483;
+ case 97: goto st483;
}
- goto tr1219;
+ goto tr1237;
st483:
if ( ++p == pe )
goto _test_eof483;
case 483:
switch( (*p) ) {
- case 69: goto st484;
- case 101: goto st484;
+ case 77: goto st484;
+ case 109: goto st484;
}
- goto tr1219;
+ goto tr1237;
st484:
if ( ++p == pe )
goto _test_eof484;
case 484:
- switch( (*p) ) {
- case 89: goto st485;
- case 121: goto st485;
- }
- goto tr1219;
-st485:
- if ( ++p == pe )
- goto _test_eof485;
-case 485:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -54049,142 +55125,99 @@ case 485:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1601;
- case 32: goto tr1601;
- case 40: goto tr1602;
- case 41: goto tr1603;
- case 3082: goto tr1604;
- case 3131: goto tr1605;
- case 3338: goto tr1606;
- case 3387: goto tr1606;
- case 3594: goto tr1607;
- case 3643: goto tr1608;
+ case 9: goto tr1603;
+ case 32: goto tr1603;
+ case 40: goto tr1604;
+ case 41: goto tr1605;
+ case 3082: goto tr1606;
+ case 3131: goto tr1607;
+ case 3338: goto tr1608;
+ case 3387: goto tr1608;
+ case 3594: goto tr1609;
+ case 3643: goto tr1610;
+ }
+ goto tr1237;
+st485:
+ if ( ++p == pe )
+ goto _test_eof485;
+case 485:
+ switch( (*p) ) {
+ case 80: goto st486;
+ case 112: goto st486;
}
- goto tr1219;
+ goto tr1237;
st486:
if ( ++p == pe )
goto _test_eof486;
case 486:
switch( (*p) ) {
- case 84: goto st487;
- case 116: goto st487;
+ case 69: goto st487;
+ case 101: goto st487;
}
- goto tr1219;
+ goto tr1237;
st487:
if ( ++p == pe )
goto _test_eof487;
case 487:
switch( (*p) ) {
- case 82: goto st488;
- case 114: goto st488;
+ case 78: goto st488;
+ case 110: goto st488;
}
- goto tr1219;
+ goto tr1237;
st488:
if ( ++p == pe )
goto _test_eof488;
case 488:
- _widec = (*p);
- if ( (*p) > 10 ) {
- if ( 59 <= (*p) && (*p) <= 59 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- } else if ( (*p) >= 10 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- switch( _widec ) {
- case 9: goto tr1611;
- case 32: goto tr1611;
- case 40: goto tr1612;
- case 41: goto tr1613;
- case 3082: goto tr1614;
- case 3131: goto tr1615;
- case 3338: goto tr1616;
- case 3387: goto tr1616;
- case 3594: goto tr1617;
- case 3643: goto tr1618;
+ switch( (*p) ) {
+ case 80: goto st489;
+ case 112: goto st489;
}
- goto tr1219;
+ goto tr1237;
st489:
if ( ++p == pe )
goto _test_eof489;
case 489:
switch( (*p) ) {
- case 80: goto st490;
- case 82: goto st491;
- case 84: goto st495;
- case 112: goto st490;
- case 114: goto st491;
- case 116: goto st495;
+ case 71: goto st490;
+ case 103: goto st490;
}
- goto tr1219;
+ goto tr1237;
st490:
if ( ++p == pe )
goto _test_eof490;
case 490:
- _widec = (*p);
- if ( (*p) > 10 ) {
- if ( 59 <= (*p) && (*p) <= 59 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- } else if ( (*p) >= 10 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- switch( _widec ) {
- case 9: goto tr1622;
- case 32: goto tr1622;
- case 40: goto tr1623;
- case 41: goto tr1624;
- case 3082: goto tr1625;
- case 3131: goto tr1626;
- case 3338: goto tr1627;
- case 3387: goto tr1627;
- case 3594: goto tr1628;
- case 3643: goto tr1629;
+ switch( (*p) ) {
+ case 80: goto st491;
+ case 112: goto st491;
}
- goto tr1219;
+ goto tr1237;
st491:
if ( ++p == pe )
goto _test_eof491;
case 491:
switch( (*p) ) {
- case 83: goto st492;
- case 115: goto st492;
+ case 75: goto st492;
+ case 107: goto st492;
}
- goto tr1219;
+ goto tr1237;
st492:
if ( ++p == pe )
goto _test_eof492;
case 492:
switch( (*p) ) {
- case 73: goto st493;
- case 105: goto st493;
+ case 69: goto st493;
+ case 101: goto st493;
}
- goto tr1219;
+ goto tr1237;
st493:
if ( ++p == pe )
goto _test_eof493;
case 493:
switch( (*p) ) {
- case 71: goto st494;
- case 103: goto st494;
+ case 89: goto st494;
+ case 121: goto st494;
}
- goto tr1219;
+ goto tr1237;
st494:
if ( ++p == pe )
goto _test_eof494;
@@ -54206,22 +55239,40 @@ case 494:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1633;
- case 32: goto tr1633;
- case 40: goto tr1634;
- case 41: goto tr1635;
- case 3082: goto tr1636;
- case 3131: goto tr1637;
- case 3338: goto tr1638;
- case 3387: goto tr1638;
- case 3594: goto tr1639;
- case 3643: goto tr1640;
+ case 9: goto tr1620;
+ case 32: goto tr1620;
+ case 40: goto tr1621;
+ case 41: goto tr1622;
+ case 3082: goto tr1623;
+ case 3131: goto tr1624;
+ case 3338: goto tr1625;
+ case 3387: goto tr1625;
+ case 3594: goto tr1626;
+ case 3643: goto tr1627;
}
- goto tr1219;
+ goto tr1237;
st495:
if ( ++p == pe )
goto _test_eof495;
case 495:
+ switch( (*p) ) {
+ case 84: goto st496;
+ case 116: goto st496;
+ }
+ goto tr1237;
+st496:
+ if ( ++p == pe )
+ goto _test_eof496;
+case 496:
+ switch( (*p) ) {
+ case 82: goto st497;
+ case 114: goto st497;
+ }
+ goto tr1237;
+st497:
+ if ( ++p == pe )
+ goto _test_eof497;
+case 497:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -54239,77 +55290,35 @@ case 495:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1641;
- case 32: goto tr1641;
- case 40: goto tr1642;
- case 41: goto tr1643;
- case 3082: goto tr1644;
- case 3131: goto tr1645;
- case 3338: goto tr1646;
- case 3387: goto tr1646;
- case 3594: goto tr1647;
- case 3643: goto tr1648;
+ case 9: goto tr1630;
+ case 32: goto tr1630;
+ case 40: goto tr1631;
+ case 41: goto tr1632;
+ case 3082: goto tr1633;
+ case 3131: goto tr1634;
+ case 3338: goto tr1635;
+ case 3387: goto tr1635;
+ case 3594: goto tr1636;
+ case 3643: goto tr1637;
}
- goto tr1219;
-st496:
- if ( ++p == pe )
- goto _test_eof496;
-case 496:
- switch( (*p) ) {
- case 77: goto st497;
- case 79: goto st502;
- case 80: goto st504;
- case 82: goto st506;
- case 83: goto st508;
- case 86: goto st512;
- case 109: goto st497;
- case 111: goto st502;
- case 112: goto st504;
- case 114: goto st506;
- case 115: goto st508;
- case 118: goto st512;
- }
- goto tr1219;
-st497:
- if ( ++p == pe )
- goto _test_eof497;
-case 497:
- switch( (*p) ) {
- case 73: goto st498;
- case 105: goto st498;
- }
- goto tr1219;
+ goto tr1237;
st498:
if ( ++p == pe )
goto _test_eof498;
case 498:
switch( (*p) ) {
- case 77: goto st499;
- case 109: goto st499;
+ case 80: goto st499;
+ case 82: goto st500;
+ case 84: goto st504;
+ case 112: goto st499;
+ case 114: goto st500;
+ case 116: goto st504;
}
- goto tr1219;
+ goto tr1237;
st499:
if ( ++p == pe )
goto _test_eof499;
case 499:
- switch( (*p) ) {
- case 69: goto st500;
- case 101: goto st500;
- }
- goto tr1219;
-st500:
- if ( ++p == pe )
- goto _test_eof500;
-case 500:
- switch( (*p) ) {
- case 65: goto st501;
- case 97: goto st501;
- }
- goto tr1219;
-st501:
- if ( ++p == pe )
- goto _test_eof501;
-case 501:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -54327,27 +55336,45 @@ case 501:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1659;
- case 32: goto tr1659;
- case 40: goto tr1660;
- case 41: goto tr1661;
- case 3082: goto tr1662;
- case 3131: goto tr1663;
- case 3338: goto tr1664;
- case 3387: goto tr1664;
- case 3594: goto tr1665;
- case 3643: goto tr1666;
+ case 9: goto tr1641;
+ case 32: goto tr1641;
+ case 40: goto tr1642;
+ case 41: goto tr1643;
+ case 3082: goto tr1644;
+ case 3131: goto tr1645;
+ case 3338: goto tr1646;
+ case 3387: goto tr1646;
+ case 3594: goto tr1647;
+ case 3643: goto tr1648;
}
- goto tr1219;
+ goto tr1237;
+st500:
+ if ( ++p == pe )
+ goto _test_eof500;
+case 500:
+ switch( (*p) ) {
+ case 83: goto st501;
+ case 115: goto st501;
+ }
+ goto tr1237;
+st501:
+ if ( ++p == pe )
+ goto _test_eof501;
+case 501:
+ switch( (*p) ) {
+ case 73: goto st502;
+ case 105: goto st502;
+ }
+ goto tr1237;
st502:
if ( ++p == pe )
goto _test_eof502;
case 502:
switch( (*p) ) {
- case 65: goto st503;
- case 97: goto st503;
+ case 71: goto st503;
+ case 103: goto st503;
}
- goto tr1219;
+ goto tr1237;
st503:
if ( ++p == pe )
goto _test_eof503;
@@ -54369,31 +55396,22 @@ case 503:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1668;
- case 32: goto tr1668;
- case 40: goto tr1669;
- case 41: goto tr1670;
- case 3082: goto tr1671;
- case 3131: goto tr1672;
- case 3338: goto tr1673;
- case 3387: goto tr1673;
- case 3594: goto tr1674;
- case 3643: goto tr1675;
+ case 9: goto tr1652;
+ case 32: goto tr1652;
+ case 40: goto tr1653;
+ case 41: goto tr1654;
+ case 3082: goto tr1655;
+ case 3131: goto tr1656;
+ case 3338: goto tr1657;
+ case 3387: goto tr1657;
+ case 3594: goto tr1658;
+ case 3643: goto tr1659;
}
- goto tr1219;
+ goto tr1237;
st504:
if ( ++p == pe )
goto _test_eof504;
case 504:
- switch( (*p) ) {
- case 70: goto st505;
- case 102: goto st505;
- }
- goto tr1219;
-st505:
- if ( ++p == pe )
- goto _test_eof505;
-case 505:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -54411,91 +55429,77 @@ case 505:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1677;
- case 32: goto tr1677;
- case 40: goto tr1678;
- case 41: goto tr1679;
- case 3082: goto tr1680;
- case 3131: goto tr1681;
- case 3338: goto tr1682;
- case 3387: goto tr1682;
- case 3594: goto tr1683;
- case 3643: goto tr1684;
+ case 9: goto tr1660;
+ case 32: goto tr1660;
+ case 40: goto tr1661;
+ case 41: goto tr1662;
+ case 3082: goto tr1663;
+ case 3131: goto tr1664;
+ case 3338: goto tr1665;
+ case 3387: goto tr1665;
+ case 3594: goto tr1666;
+ case 3643: goto tr1667;
}
- goto tr1219;
+ goto tr1237;
+st505:
+ if ( ++p == pe )
+ goto _test_eof505;
+case 505:
+ switch( (*p) ) {
+ case 77: goto st506;
+ case 79: goto st511;
+ case 80: goto st513;
+ case 82: goto st515;
+ case 83: goto st517;
+ case 86: goto st521;
+ case 109: goto st506;
+ case 111: goto st511;
+ case 112: goto st513;
+ case 114: goto st515;
+ case 115: goto st517;
+ case 118: goto st521;
+ }
+ goto tr1237;
st506:
if ( ++p == pe )
goto _test_eof506;
case 506:
switch( (*p) ) {
- case 86: goto st507;
- case 118: goto st507;
+ case 73: goto st507;
+ case 105: goto st507;
}
- goto tr1219;
+ goto tr1237;
st507:
if ( ++p == pe )
goto _test_eof507;
case 507:
- _widec = (*p);
- if ( (*p) > 10 ) {
- if ( 59 <= (*p) && (*p) <= 59 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- } else if ( (*p) >= 10 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- switch( _widec ) {
- case 9: goto tr1686;
- case 32: goto tr1686;
- case 40: goto tr1687;
- case 41: goto tr1688;
- case 3082: goto tr1689;
- case 3131: goto tr1690;
- case 3338: goto tr1691;
- case 3387: goto tr1691;
- case 3594: goto tr1692;
- case 3643: goto tr1693;
+ switch( (*p) ) {
+ case 77: goto st508;
+ case 109: goto st508;
}
- goto tr1219;
+ goto tr1237;
st508:
if ( ++p == pe )
goto _test_eof508;
case 508:
switch( (*p) ) {
- case 72: goto st509;
- case 104: goto st509;
+ case 69: goto st509;
+ case 101: goto st509;
}
- goto tr1219;
+ goto tr1237;
st509:
if ( ++p == pe )
goto _test_eof509;
case 509:
switch( (*p) ) {
- case 70: goto st510;
- case 102: goto st510;
+ case 65: goto st510;
+ case 97: goto st510;
}
- goto tr1219;
+ goto tr1237;
st510:
if ( ++p == pe )
goto _test_eof510;
case 510:
- switch( (*p) ) {
- case 80: goto st511;
- case 112: goto st511;
- }
- goto tr1219;
-st511:
- if ( ++p == pe )
- goto _test_eof511;
-case 511:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -54513,36 +55517,69 @@ case 511:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1697;
- case 32: goto tr1697;
- case 40: goto tr1698;
- case 41: goto tr1699;
- case 3082: goto tr1700;
- case 3131: goto tr1701;
- case 3338: goto tr1702;
- case 3387: goto tr1702;
- case 3594: goto tr1703;
- case 3643: goto tr1704;
+ case 9: goto tr1678;
+ case 32: goto tr1678;
+ case 40: goto tr1679;
+ case 41: goto tr1680;
+ case 3082: goto tr1681;
+ case 3131: goto tr1682;
+ case 3338: goto tr1683;
+ case 3387: goto tr1683;
+ case 3594: goto tr1684;
+ case 3643: goto tr1685;
}
- goto tr1219;
+ goto tr1237;
+st511:
+ if ( ++p == pe )
+ goto _test_eof511;
+case 511:
+ switch( (*p) ) {
+ case 65: goto st512;
+ case 97: goto st512;
+ }
+ goto tr1237;
st512:
if ( ++p == pe )
goto _test_eof512;
case 512:
- switch( (*p) ) {
- case 67: goto st513;
- case 99: goto st513;
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ switch( _widec ) {
+ case 9: goto tr1687;
+ case 32: goto tr1687;
+ case 40: goto tr1688;
+ case 41: goto tr1689;
+ case 3082: goto tr1690;
+ case 3131: goto tr1691;
+ case 3338: goto tr1692;
+ case 3387: goto tr1692;
+ case 3594: goto tr1693;
+ case 3643: goto tr1694;
}
- goto tr1219;
+ goto tr1237;
st513:
if ( ++p == pe )
goto _test_eof513;
case 513:
switch( (*p) ) {
- case 66: goto st514;
- case 98: goto st514;
+ case 70: goto st514;
+ case 102: goto st514;
}
- goto tr1219;
+ goto tr1237;
st514:
if ( ++p == pe )
goto _test_eof514;
@@ -54564,53 +55601,31 @@ case 514:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1707;
- case 32: goto tr1707;
- case 40: goto tr1708;
- case 41: goto tr1709;
- case 3082: goto tr1710;
- case 3131: goto tr1711;
- case 3338: goto tr1712;
- case 3387: goto tr1712;
- case 3594: goto tr1713;
- case 3643: goto tr1714;
+ case 9: goto tr1696;
+ case 32: goto tr1696;
+ case 40: goto tr1697;
+ case 41: goto tr1698;
+ case 3082: goto tr1699;
+ case 3131: goto tr1700;
+ case 3338: goto tr1701;
+ case 3387: goto tr1701;
+ case 3594: goto tr1702;
+ case 3643: goto tr1703;
}
- goto tr1219;
+ goto tr1237;
st515:
if ( ++p == pe )
goto _test_eof515;
case 515:
switch( (*p) ) {
- case 76: goto st516;
- case 88: goto st519;
- case 89: goto st521;
- case 108: goto st516;
- case 120: goto st519;
- case 121: goto st521;
+ case 86: goto st516;
+ case 118: goto st516;
}
- goto tr1219;
+ goto tr1237;
st516:
if ( ++p == pe )
goto _test_eof516;
case 516:
- switch( (*p) ) {
- case 83: goto st517;
- case 115: goto st517;
- }
- goto tr1219;
-st517:
- if ( ++p == pe )
- goto _test_eof517;
-case 517:
- switch( (*p) ) {
- case 65: goto st518;
- case 97: goto st518;
- }
- goto tr1219;
-st518:
- if ( ++p == pe )
- goto _test_eof518;
-case 518:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -54628,27 +55643,45 @@ case 518:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1720;
- case 32: goto tr1720;
- case 40: goto tr1721;
- case 41: goto tr1722;
- case 3082: goto tr1723;
- case 3131: goto tr1724;
- case 3338: goto tr1725;
- case 3387: goto tr1725;
- case 3594: goto tr1726;
- case 3643: goto tr1727;
+ case 9: goto tr1705;
+ case 32: goto tr1705;
+ case 40: goto tr1706;
+ case 41: goto tr1707;
+ case 3082: goto tr1708;
+ case 3131: goto tr1709;
+ case 3338: goto tr1710;
+ case 3387: goto tr1710;
+ case 3594: goto tr1711;
+ case 3643: goto tr1712;
}
- goto tr1219;
+ goto tr1237;
+st517:
+ if ( ++p == pe )
+ goto _test_eof517;
+case 517:
+ switch( (*p) ) {
+ case 72: goto st518;
+ case 104: goto st518;
+ }
+ goto tr1237;
+st518:
+ if ( ++p == pe )
+ goto _test_eof518;
+case 518:
+ switch( (*p) ) {
+ case 70: goto st519;
+ case 102: goto st519;
+ }
+ goto tr1237;
st519:
if ( ++p == pe )
goto _test_eof519;
case 519:
switch( (*p) ) {
- case 84: goto st520;
- case 116: goto st520;
+ case 80: goto st520;
+ case 112: goto st520;
}
- goto tr1219;
+ goto tr1237;
st520:
if ( ++p == pe )
goto _test_eof520;
@@ -54670,82 +55703,40 @@ case 520:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1729;
- case 32: goto tr1729;
- case 40: goto tr1730;
- case 41: goto tr1731;
- case 3082: goto tr1732;
- case 3131: goto tr1733;
- case 3338: goto tr1734;
- case 3387: goto tr1734;
- case 3594: goto tr1735;
- case 3643: goto tr1736;
+ case 9: goto tr1716;
+ case 32: goto tr1716;
+ case 40: goto tr1717;
+ case 41: goto tr1718;
+ case 3082: goto tr1719;
+ case 3131: goto tr1720;
+ case 3338: goto tr1721;
+ case 3387: goto tr1721;
+ case 3594: goto tr1722;
+ case 3643: goto tr1723;
}
- goto tr1219;
+ goto tr1237;
st521:
if ( ++p == pe )
goto _test_eof521;
case 521:
switch( (*p) ) {
- case 80: goto st522;
- case 112: goto st522;
+ case 67: goto st522;
+ case 99: goto st522;
}
- goto tr1219;
+ goto tr1237;
st522:
if ( ++p == pe )
goto _test_eof522;
case 522:
switch( (*p) ) {
- case 69: goto st523;
- case 101: goto st523;
+ case 66: goto st523;
+ case 98: goto st523;
}
- goto tr1219;
+ goto tr1237;
st523:
if ( ++p == pe )
goto _test_eof523;
case 523:
- if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1739;
- goto tr1219;
-tr1739:
- {
- s->number64 = 0;
- }
- {
- // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
- if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
- ((s->number64 == (UINT64_MAX / 10)) && // Marginal case.
- ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0')
- )
- ) {
- s->number64 *= 10;
- s->number64 += digit_to_num[(uint8_t)(*p)];
- } else {
- WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
- }
- }
- goto st524;
-tr1743:
- {
- // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
- if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
- ((s->number64 == (UINT64_MAX / 10)) && // Marginal case.
- ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0')
- )
- ) {
- s->number64 *= 10;
- s->number64 += digit_to_num[(uint8_t)(*p)];
- } else {
- WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
- }
- }
- goto st524;
-st524:
- if ( ++p == pe )
- goto _test_eof524;
-case 524:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -54763,38 +55754,49 @@ case 524:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1740;
- case 32: goto tr1740;
- case 40: goto tr1741;
- case 41: goto tr1742;
- case 3082: goto tr1744;
- case 3131: goto tr1745;
- case 3338: goto tr1746;
- case 3387: goto tr1746;
- case 3594: goto tr1747;
- case 3643: goto tr1748;
+ case 9: goto tr1726;
+ case 32: goto tr1726;
+ case 40: goto tr1727;
+ case 41: goto tr1728;
+ case 3082: goto tr1729;
+ case 3131: goto tr1730;
+ case 3338: goto tr1731;
+ case 3387: goto tr1731;
+ case 3594: goto tr1732;
+ case 3643: goto tr1733;
}
- if ( 48 <= _widec && _widec <= 57 )
- goto tr1743;
- goto tr1219;
+ goto tr1237;
+st524:
+ if ( ++p == pe )
+ goto _test_eof524;
+case 524:
+ switch( (*p) ) {
+ case 76: goto st525;
+ case 88: goto st528;
+ case 89: goto st530;
+ case 108: goto st525;
+ case 120: goto st528;
+ case 121: goto st530;
+ }
+ goto tr1237;
st525:
if ( ++p == pe )
goto _test_eof525;
case 525:
switch( (*p) ) {
- case 82: goto st526;
- case 114: goto st526;
+ case 83: goto st526;
+ case 115: goto st526;
}
- goto tr1219;
+ goto tr1237;
st526:
if ( ++p == pe )
goto _test_eof526;
case 526:
switch( (*p) ) {
- case 73: goto st527;
- case 105: goto st527;
+ case 65: goto st527;
+ case 97: goto st527;
}
- goto tr1219;
+ goto tr1237;
st527:
if ( ++p == pe )
goto _test_eof527;
@@ -54816,63 +55818,120 @@ case 527:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1751;
- case 32: goto tr1751;
- case 40: goto tr1752;
- case 41: goto tr1753;
- case 3082: goto tr1754;
- case 3131: goto tr1755;
- case 3338: goto tr1756;
- case 3387: goto tr1756;
- case 3594: goto tr1757;
- case 3643: goto tr1758;
+ case 9: goto tr1739;
+ case 32: goto tr1739;
+ case 40: goto tr1740;
+ case 41: goto tr1741;
+ case 3082: goto tr1742;
+ case 3131: goto tr1743;
+ case 3338: goto tr1744;
+ case 3387: goto tr1744;
+ case 3594: goto tr1745;
+ case 3643: goto tr1746;
}
- goto tr1219;
+ goto tr1237;
st528:
if ( ++p == pe )
goto _test_eof528;
case 528:
switch( (*p) ) {
- case 79: goto st529;
- case 111: goto st529;
+ case 84: goto st529;
+ case 116: goto st529;
}
- goto tr1219;
+ goto tr1237;
st529:
if ( ++p == pe )
goto _test_eof529;
case 529:
- switch( (*p) ) {
- case 78: goto st530;
- case 110: goto st530;
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ switch( _widec ) {
+ case 9: goto tr1748;
+ case 32: goto tr1748;
+ case 40: goto tr1749;
+ case 41: goto tr1750;
+ case 3082: goto tr1751;
+ case 3131: goto tr1752;
+ case 3338: goto tr1753;
+ case 3387: goto tr1753;
+ case 3594: goto tr1754;
+ case 3643: goto tr1755;
}
- goto tr1219;
+ goto tr1237;
st530:
if ( ++p == pe )
goto _test_eof530;
case 530:
switch( (*p) ) {
- case 69: goto st531;
- case 101: goto st531;
+ case 80: goto st531;
+ case 112: goto st531;
}
- goto tr1219;
+ goto tr1237;
st531:
if ( ++p == pe )
goto _test_eof531;
case 531:
switch( (*p) ) {
- case 77: goto st532;
- case 109: goto st532;
+ case 69: goto st532;
+ case 101: goto st532;
}
- goto tr1219;
+ goto tr1237;
st532:
if ( ++p == pe )
goto _test_eof532;
case 532:
- switch( (*p) ) {
- case 68: goto st533;
- case 100: goto st533;
+ if ( 48 <= (*p) && (*p) <= 57 )
+ goto tr1758;
+ goto tr1237;
+tr1758:
+ {
+ s->number64 = 0;
+ }
+ {
+ // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
+ if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
+ ((s->number64 == (UINT64_MAX / 10)) && // Marginal case.
+ ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0')
+ )
+ ) {
+ s->number64 *= 10;
+ s->number64 += digit_to_num[(uint8_t)(*p)];
+ } else {
+ WARN(ZS_NUMBER64_OVERFLOW);
+ p--; {goto st316;}
+ }
}
- goto tr1219;
+ goto st533;
+tr1762:
+ {
+ // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
+ if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
+ ((s->number64 == (UINT64_MAX / 10)) && // Marginal case.
+ ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0')
+ )
+ ) {
+ s->number64 *= 10;
+ s->number64 += digit_to_num[(uint8_t)(*p)];
+ } else {
+ WARN(ZS_NUMBER64_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ goto st533;
st533:
if ( ++p == pe )
goto _test_eof533;
@@ -54894,49 +55953,42 @@ case 533:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1764;
- case 32: goto tr1764;
- case 40: goto tr1765;
- case 41: goto tr1766;
- case 3082: goto tr1767;
- case 3131: goto tr1768;
- case 3338: goto tr1769;
- case 3387: goto tr1769;
- case 3594: goto tr1770;
- case 3643: goto tr1771;
+ case 9: goto tr1759;
+ case 32: goto tr1759;
+ case 40: goto tr1760;
+ case 41: goto tr1761;
+ case 3082: goto tr1763;
+ case 3131: goto tr1764;
+ case 3338: goto tr1765;
+ case 3387: goto tr1765;
+ case 3594: goto tr1766;
+ case 3643: goto tr1767;
}
- goto tr1219;
+ if ( 48 <= _widec && _widec <= 57 )
+ goto tr1762;
+ goto tr1237;
st534:
if ( ++p == pe )
goto _test_eof534;
case 534:
switch( (*p) ) {
- case 83: goto st535;
- case 115: goto st535;
+ case 82: goto st535;
+ case 114: goto st535;
}
- goto tr1219;
+ goto tr1237;
st535:
if ( ++p == pe )
goto _test_eof535;
case 535:
switch( (*p) ) {
- case 68: goto st536;
- case 100: goto st536;
+ case 73: goto st536;
+ case 105: goto st536;
}
- goto tr1219;
+ goto tr1237;
st536:
if ( ++p == pe )
goto _test_eof536;
case 536:
- switch( (*p) ) {
- case 66: goto st537;
- case 98: goto st537;
- }
- goto tr1219;
-st537:
- if ( ++p == pe )
- goto _test_eof537;
-case 537:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -54954,18 +56006,27 @@ case 537:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1775;
- case 32: goto tr1775;
- case 40: goto tr1776;
- case 41: goto tr1777;
- case 3082: goto tr1778;
- case 3131: goto tr1779;
- case 3338: goto tr1780;
- case 3387: goto tr1780;
- case 3594: goto tr1781;
- case 3643: goto tr1782;
+ case 9: goto tr1770;
+ case 32: goto tr1770;
+ case 40: goto tr1771;
+ case 41: goto tr1772;
+ case 3082: goto tr1773;
+ case 3131: goto tr1774;
+ case 3338: goto tr1775;
+ case 3387: goto tr1775;
+ case 3594: goto tr1776;
+ case 3643: goto tr1777;
}
- goto tr1219;
+ goto tr1237;
+st537:
+ if ( ++p == pe )
+ goto _test_eof537;
+case 537:
+ switch( (*p) ) {
+ case 65: goto st538;
+ case 97: goto st538;
+ }
+ goto tr1237;
st538:
if ( ++p == pe )
goto _test_eof538;
@@ -54974,11 +56035,38 @@ case 538:
case 76: goto st539;
case 108: goto st539;
}
- goto tr1219;
+ goto tr1237;
st539:
if ( ++p == pe )
goto _test_eof539;
case 539:
+ switch( (*p) ) {
+ case 76: goto st540;
+ case 108: goto st540;
+ }
+ goto tr1237;
+st540:
+ if ( ++p == pe )
+ goto _test_eof540;
+case 540:
+ switch( (*p) ) {
+ case 69: goto st541;
+ case 101: goto st541;
+ }
+ goto tr1237;
+st541:
+ if ( ++p == pe )
+ goto _test_eof541;
+case 541:
+ switch( (*p) ) {
+ case 84: goto st542;
+ case 116: goto st542;
+ }
+ goto tr1237;
+st542:
+ if ( ++p == pe )
+ goto _test_eof542;
+case 542:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -54996,22 +56084,202 @@ case 539:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1784;
- case 32: goto tr1784;
- case 40: goto tr1785;
- case 41: goto tr1786;
- case 3082: goto tr1787;
- case 3131: goto tr1788;
- case 3338: goto tr1789;
- case 3387: goto tr1789;
- case 3594: goto tr1790;
- case 3643: goto tr1791;
+ case 9: goto tr1783;
+ case 32: goto tr1783;
+ case 40: goto tr1784;
+ case 41: goto tr1785;
+ case 3082: goto tr1786;
+ case 3131: goto tr1787;
+ case 3338: goto tr1788;
+ case 3387: goto tr1788;
+ case 3594: goto tr1789;
+ case 3643: goto tr1790;
}
- goto tr1219;
-st540:
+ goto tr1237;
+st543:
if ( ++p == pe )
- goto _test_eof540;
-case 540:
+ goto _test_eof543;
+case 543:
+ switch( (*p) ) {
+ case 79: goto st544;
+ case 111: goto st544;
+ }
+ goto tr1237;
+st544:
+ if ( ++p == pe )
+ goto _test_eof544;
+case 544:
+ switch( (*p) ) {
+ case 78: goto st545;
+ case 110: goto st545;
+ }
+ goto tr1237;
+st545:
+ if ( ++p == pe )
+ goto _test_eof545;
+case 545:
+ switch( (*p) ) {
+ case 69: goto st546;
+ case 101: goto st546;
+ }
+ goto tr1237;
+st546:
+ if ( ++p == pe )
+ goto _test_eof546;
+case 546:
+ switch( (*p) ) {
+ case 77: goto st547;
+ case 109: goto st547;
+ }
+ goto tr1237;
+st547:
+ if ( ++p == pe )
+ goto _test_eof547;
+case 547:
+ switch( (*p) ) {
+ case 68: goto st548;
+ case 100: goto st548;
+ }
+ goto tr1237;
+st548:
+ if ( ++p == pe )
+ goto _test_eof548;
+case 548:
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ switch( _widec ) {
+ case 9: goto tr1796;
+ case 32: goto tr1796;
+ case 40: goto tr1797;
+ case 41: goto tr1798;
+ case 3082: goto tr1799;
+ case 3131: goto tr1800;
+ case 3338: goto tr1801;
+ case 3387: goto tr1801;
+ case 3594: goto tr1802;
+ case 3643: goto tr1803;
+ }
+ goto tr1237;
+st549:
+ if ( ++p == pe )
+ goto _test_eof549;
+case 549:
+ switch( (*p) ) {
+ case 83: goto st550;
+ case 115: goto st550;
+ }
+ goto tr1237;
+st550:
+ if ( ++p == pe )
+ goto _test_eof550;
+case 550:
+ switch( (*p) ) {
+ case 68: goto st551;
+ case 100: goto st551;
+ }
+ goto tr1237;
+st551:
+ if ( ++p == pe )
+ goto _test_eof551;
+case 551:
+ switch( (*p) ) {
+ case 66: goto st552;
+ case 98: goto st552;
+ }
+ goto tr1237;
+st552:
+ if ( ++p == pe )
+ goto _test_eof552;
+case 552:
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ switch( _widec ) {
+ case 9: goto tr1807;
+ case 32: goto tr1807;
+ case 40: goto tr1808;
+ case 41: goto tr1809;
+ case 3082: goto tr1810;
+ case 3131: goto tr1811;
+ case 3338: goto tr1812;
+ case 3387: goto tr1812;
+ case 3594: goto tr1813;
+ case 3643: goto tr1814;
+ }
+ goto tr1237;
+st553:
+ if ( ++p == pe )
+ goto _test_eof553;
+case 553:
+ switch( (*p) ) {
+ case 76: goto st554;
+ case 108: goto st554;
+ }
+ goto tr1237;
+st554:
+ if ( ++p == pe )
+ goto _test_eof554;
+case 554:
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ switch( _widec ) {
+ case 9: goto tr1816;
+ case 32: goto tr1816;
+ case 40: goto tr1817;
+ case 41: goto tr1818;
+ case 3082: goto tr1819;
+ case 3131: goto tr1820;
+ case 3338: goto tr1821;
+ case 3387: goto tr1821;
+ case 3594: goto tr1822;
+ case 3643: goto tr1823;
+ }
+ goto tr1237;
+st555:
+ if ( ++p == pe )
+ goto _test_eof555;
+case 555:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -55025,38 +56293,38 @@ case 540:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st541;
- case 32: goto st541;
- case 40: goto tr1794;
- case 41: goto tr1795;
- case 2058: goto tr1796;
- case 2107: goto tr1797;
+ case 9: goto st556;
+ case 32: goto st556;
+ case 40: goto tr1826;
+ case 41: goto tr1827;
+ case 2058: goto tr1828;
+ case 2107: goto tr1829;
}
- goto tr1792;
-tr1794:
+ goto tr1824;
+tr1826:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st541;
-tr1795:
+ goto st556;
+tr1827:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st541;
-tr1796:
+ goto st556;
+tr1828:
{
s->line_counter++;
}
- goto st541;
-tr1827:
+ goto st556;
+tr1859:
{
s->buffer[s->buffer_length++] = 0;
@@ -55066,18 +56334,18 @@ tr1827:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 541; goto _out;}
+ {p++; cs = 556; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st541;
-st541:
+ goto st556;
+st556:
if ( ++p == pe )
- goto _test_eof541;
-case 541:
+ goto _test_eof556;
+case 556:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -55091,17 +56359,17 @@ case 541:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st541;
- case 32: goto st541;
- case 40: goto tr1794;
- case 41: goto tr1795;
- case 2058: goto tr1796;
- case 2107: goto tr1797;
+ case 9: goto st556;
+ case 32: goto st556;
+ case 40: goto tr1826;
+ case 41: goto tr1827;
+ case 2058: goto tr1828;
+ case 2107: goto tr1829;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr1799;
- goto tr1798;
-tr1799:
+ goto tr1831;
+ goto tr1830;
+tr1831:
{
s->number64 = 0;
}
@@ -55116,11 +56384,11 @@ tr1799:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st542;
-tr1803:
+ goto st557;
+tr1835:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -55132,14 +56400,14 @@ tr1803:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st542;
-st542:
+ goto st557;
+st557:
if ( ++p == pe )
- goto _test_eof542;
-case 542:
+ goto _test_eof557;
+case 557:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -55153,40 +56421,40 @@ case 542:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1800;
- case 32: goto tr1800;
- case 40: goto tr1801;
- case 41: goto tr1802;
- case 2058: goto tr1804;
- case 2107: goto tr1805;
+ case 9: goto tr1832;
+ case 32: goto tr1832;
+ case 40: goto tr1833;
+ case 41: goto tr1834;
+ case 2058: goto tr1836;
+ case 2107: goto tr1837;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr1803;
- goto tr1798;
-tr1808:
+ goto tr1835;
+ goto tr1830;
+tr1840:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st543;
-tr1809:
+ goto st558;
+tr1841:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st543;
-tr1811:
+ goto st558;
+tr1843:
{
s->line_counter++;
}
- goto st543;
-tr1825:
+ goto st558;
+tr1857:
{
s->buffer[s->buffer_length++] = 0;
@@ -55196,75 +56464,75 @@ tr1825:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 543; goto _out;}
+ {p++; cs = 558; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st543;
-tr1800:
+ goto st558;
+tr1832:
{
if (s->number64 <= UINT16_MAX) {
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st543;
-tr1801:
+ goto st558;
+tr1833:
{
if (s->number64 <= UINT16_MAX) {
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st543;
-tr1802:
+ goto st558;
+tr1834:
{
if (s->number64 <= UINT16_MAX) {
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st543;
-tr1804:
+ goto st558;
+tr1836:
{
if (s->number64 <= UINT16_MAX) {
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st543;
-st543:
+ goto st558;
+st558:
if ( ++p == pe )
- goto _test_eof543;
-case 543:
+ goto _test_eof558;
+case 558:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -55278,69 +56546,69 @@ case 543:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st543;
- case 32: goto st543;
- case 40: goto tr1808;
- case 41: goto tr1809;
- case 2058: goto tr1811;
- case 2107: goto tr1812;
+ case 9: goto st558;
+ case 32: goto st558;
+ case 40: goto tr1840;
+ case 41: goto tr1841;
+ case 2058: goto tr1843;
+ case 2107: goto tr1844;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr1810;
+ goto tr1842;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr1810;
+ goto tr1842;
} else
- goto tr1810;
- goto tr1806;
-tr1810:
+ goto tr1842;
+ goto tr1838;
+tr1842:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st544;
-st544:
+ goto st559;
+st559:
if ( ++p == pe )
- goto _test_eof544;
-case 544:
+ goto _test_eof559;
+case 559:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1813;
+ goto tr1845;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr1813;
+ goto tr1845;
} else
- goto tr1813;
- goto tr1806;
-tr1815:
+ goto tr1845;
+ goto tr1838;
+tr1847:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st545;
-tr1816:
+ goto st560;
+tr1848:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st545;
-tr1817:
+ goto st560;
+tr1849:
{
s->line_counter++;
}
- goto st545;
-tr1823:
+ goto st560;
+tr1855:
{
s->buffer[s->buffer_length++] = 0;
@@ -55350,24 +56618,24 @@ tr1823:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 545; goto _out;}
+ {p++; cs = 560; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st545;
-tr1813:
+ goto st560;
+tr1845:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st545;
-st545:
+ goto st560;
+st560:
if ( ++p == pe )
- goto _test_eof545;
-case 545:
+ goto _test_eof560;
+case 560:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -55385,42 +56653,42 @@ case 545:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st545;
- case 32: goto st545;
- case 40: goto tr1815;
- case 41: goto tr1816;
- case 3082: goto tr1817;
- case 3131: goto tr1818;
- case 3338: goto tr1819;
- case 3387: goto tr1819;
- case 3594: goto tr1820;
- case 3643: goto tr1821;
+ case 9: goto st560;
+ case 32: goto st560;
+ case 40: goto tr1847;
+ case 41: goto tr1848;
+ case 3082: goto tr1849;
+ case 3131: goto tr1850;
+ case 3338: goto tr1851;
+ case 3387: goto tr1851;
+ case 3594: goto tr1852;
+ case 3643: goto tr1853;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr1810;
+ goto tr1842;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr1810;
+ goto tr1842;
} else
- goto tr1810;
- goto tr1806;
-tr1818:
+ goto tr1842;
+ goto tr1838;
+tr1850:
{
s->buffer_length = 0;
}
- goto st546;
-tr1822:
+ goto st561;
+tr1854:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st546;
-st546:
+ goto st561;
+st561:
if ( ++p == pe )
- goto _test_eof546;
-case 546:
+ goto _test_eof561;
+case 561:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -55440,44 +56708,44 @@ case 546:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1823;
+ goto tr1855;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1822;
- goto tr1806;
-tr1819:
+ goto tr1854;
+ goto tr1838;
+tr1851:
{
if ((rdata_tail - s->r_data) != s->r_data_length) {
WARN(ZS_BAD_RDATA_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1421;
-st1421:
+ goto st1469;
+st1469:
if ( ++p == pe )
- goto _test_eof1421;
-case 1421:
+ goto _test_eof1469;
+case 1469:
goto st0;
-tr1820:
+tr1852:
{
s->line_counter++;
}
{
if ((rdata_tail - s->r_data) != s->r_data_length) {
WARN(ZS_BAD_RDATA_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1422;
-st1422:
+ goto st1470;
+st1470:
if ( ++p == pe )
- goto _test_eof1422;
-case 1422:
+ goto _test_eof1470;
+case 1470:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -55495,44 +56763,44 @@ case 1422:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st545;
- case 32: goto st545;
- case 40: goto tr1815;
- case 41: goto tr1816;
- case 3082: goto tr1817;
- case 3131: goto tr1818;
- case 3338: goto tr1819;
- case 3387: goto tr1819;
- case 3594: goto tr1820;
- case 3643: goto tr1821;
+ case 9: goto st560;
+ case 32: goto st560;
+ case 40: goto tr1847;
+ case 41: goto tr1848;
+ case 3082: goto tr1849;
+ case 3131: goto tr1850;
+ case 3338: goto tr1851;
+ case 3387: goto tr1851;
+ case 3594: goto tr1852;
+ case 3643: goto tr1853;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr1810;
+ goto tr1842;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr1810;
+ goto tr1842;
} else
- goto tr1810;
- goto tr1806;
-tr1821:
+ goto tr1842;
+ goto tr1838;
+tr1853:
{
s->buffer_length = 0;
}
{
if ((rdata_tail - s->r_data) != s->r_data_length) {
WARN(ZS_BAD_RDATA_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1423;
-st1423:
+ goto st1471;
+st1471:
if ( ++p == pe )
- goto _test_eof1423;
-case 1423:
+ goto _test_eof1471;
+case 1471:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -55552,39 +56820,39 @@ case 1423:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1823;
+ goto tr1855;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1822;
- goto tr1806;
-tr1812:
+ goto tr1854;
+ goto tr1838;
+tr1844:
{
s->buffer_length = 0;
}
- goto st547;
-tr1824:
+ goto st562;
+tr1856:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st547;
-tr1805:
+ goto st562;
+tr1837:
{
if (s->number64 <= UINT16_MAX) {
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st547;
-st547:
+ goto st562;
+st562:
if ( ++p == pe )
- goto _test_eof547;
-case 547:
+ goto _test_eof562;
+case 562:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -55604,26 +56872,26 @@ case 547:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1825;
+ goto tr1857;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1824;
- goto tr1792;
-tr1797:
+ goto tr1856;
+ goto tr1824;
+tr1829:
{
s->buffer_length = 0;
}
- goto st548;
-tr1826:
+ goto st563;
+tr1858:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st548;
-st548:
+ goto st563;
+st563:
if ( ++p == pe )
- goto _test_eof548;
-case 548:
+ goto _test_eof563;
+case 563:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -55643,14 +56911,14 @@ case 548:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1827;
+ goto tr1859;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1826;
- goto tr1792;
-st549:
+ goto tr1858;
+ goto tr1824;
+st564:
if ( ++p == pe )
- goto _test_eof549;
-case 549:
+ goto _test_eof564;
+case 564:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -55664,38 +56932,38 @@ case 549:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st550;
- case 32: goto st550;
- case 40: goto tr1829;
- case 41: goto tr1830;
- case 2058: goto tr1831;
- case 2107: goto tr1832;
+ case 9: goto st565;
+ case 32: goto st565;
+ case 40: goto tr1861;
+ case 41: goto tr1862;
+ case 2058: goto tr1863;
+ case 2107: goto tr1864;
}
- goto tr1792;
-tr1829:
+ goto tr1824;
+tr1861:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st550;
-tr1830:
+ goto st565;
+tr1862:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st550;
-tr1831:
+ goto st565;
+tr1863:
{
s->line_counter++;
}
- goto st550;
-tr1867:
+ goto st565;
+tr1899:
{
s->buffer[s->buffer_length++] = 0;
@@ -55705,18 +56973,18 @@ tr1867:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 550; goto _out;}
+ {p++; cs = 565; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st550;
-st550:
+ goto st565;
+st565:
if ( ++p == pe )
- goto _test_eof550;
-case 550:
+ goto _test_eof565;
+case 565:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -55730,18 +56998,18 @@ case 550:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st550;
- case 32: goto st550;
- case 40: goto tr1829;
- case 41: goto tr1830;
- case 48: goto tr1833;
- case 2058: goto tr1831;
- case 2107: goto tr1832;
+ case 9: goto st565;
+ case 32: goto st565;
+ case 40: goto tr1861;
+ case 41: goto tr1862;
+ case 48: goto tr1865;
+ case 2058: goto tr1863;
+ case 2107: goto tr1864;
}
if ( 49 <= _widec && _widec <= 57 )
- goto tr1834;
- goto tr1798;
-tr1833:
+ goto tr1866;
+ goto tr1830;
+tr1865:
{
s->number64 = 0;
}
@@ -55756,14 +57024,14 @@ tr1833:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st551;
-st551:
+ goto st566;
+st566:
if ( ++p == pe )
- goto _test_eof551;
-case 551:
+ goto _test_eof566;
+case 566:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -55777,19 +57045,19 @@ case 551:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1835;
- case 32: goto tr1835;
- case 40: goto tr1836;
- case 41: goto tr1837;
- case 1802: goto tr1839;
- case 1851: goto tr1839;
- case 2058: goto tr1840;
- case 2107: goto tr1841;
+ case 9: goto tr1867;
+ case 32: goto tr1867;
+ case 40: goto tr1868;
+ case 41: goto tr1869;
+ case 1802: goto tr1871;
+ case 1851: goto tr1871;
+ case 2058: goto tr1872;
+ case 2107: goto tr1873;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr1838;
- goto tr1798;
-tr1835:
+ goto tr1870;
+ goto tr1830;
+tr1867:
{
p--; {cs = stack[--top];goto _again;}
}
@@ -55798,11 +57066,11 @@ tr1835:
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1424;
-tr1836:
+ goto st1472;
+tr1868:
{
p--; {cs = stack[--top];goto _again;}
}
@@ -55811,18 +57079,18 @@ tr1836:
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1424;
-tr1837:
+ goto st1472;
+tr1869:
{
p--; {cs = stack[--top];goto _again;}
}
@@ -55831,18 +57099,18 @@ tr1837:
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1424;
-tr1840:
+ goto st1472;
+tr1872:
{
p--; {cs = stack[--top];goto _again;}
}
@@ -55851,17 +57119,17 @@ tr1840:
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1424;
-st1424:
+ goto st1472;
+st1472:
if ( ++p == pe )
- goto _test_eof1424;
-case 1424:
+ goto _test_eof1472;
+case 1472:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -55875,46 +57143,46 @@ case 1424:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st552;
- case 32: goto st552;
- case 40: goto tr1843;
- case 41: goto tr1844;
- case 2058: goto tr1846;
- case 2107: goto tr1847;
+ case 9: goto st567;
+ case 32: goto st567;
+ case 40: goto tr1875;
+ case 41: goto tr1876;
+ case 2058: goto tr1878;
+ case 2107: goto tr1879;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr1845;
+ goto tr1877;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr1845;
+ goto tr1877;
} else
- goto tr1845;
- goto tr1806;
-tr1843:
+ goto tr1877;
+ goto tr1838;
+tr1875:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st552;
-tr1844:
+ goto st567;
+tr1876:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st552;
-tr1846:
+ goto st567;
+tr1878:
{
s->line_counter++;
}
- goto st552;
-tr1860:
+ goto st567;
+tr1892:
{
s->buffer[s->buffer_length++] = 0;
@@ -55924,75 +57192,75 @@ tr1860:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 552; goto _out;}
+ {p++; cs = 567; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st552;
-tr1861:
+ goto st567;
+tr1893:
{
if (s->number64 <= UINT16_MAX) {
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st552;
-tr1862:
+ goto st567;
+tr1894:
{
if (s->number64 <= UINT16_MAX) {
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st552;
-tr1863:
+ goto st567;
+tr1895:
{
if (s->number64 <= UINT16_MAX) {
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st552;
-tr1864:
+ goto st567;
+tr1896:
{
if (s->number64 <= UINT16_MAX) {
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st552;
-st552:
+ goto st567;
+st567:
if ( ++p == pe )
- goto _test_eof552;
-case 552:
+ goto _test_eof567;
+case 567:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -56006,69 +57274,69 @@ case 552:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st552;
- case 32: goto st552;
- case 40: goto tr1843;
- case 41: goto tr1844;
- case 2058: goto tr1846;
- case 2107: goto tr1847;
+ case 9: goto st567;
+ case 32: goto st567;
+ case 40: goto tr1875;
+ case 41: goto tr1876;
+ case 2058: goto tr1878;
+ case 2107: goto tr1879;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr1845;
+ goto tr1877;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr1845;
+ goto tr1877;
} else
- goto tr1845;
- goto tr1806;
-tr1845:
+ goto tr1877;
+ goto tr1838;
+tr1877:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st553;
-st553:
+ goto st568;
+st568:
if ( ++p == pe )
- goto _test_eof553;
-case 553:
+ goto _test_eof568;
+case 568:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1848;
+ goto tr1880;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr1848;
+ goto tr1880;
} else
- goto tr1848;
- goto tr1806;
-tr1850:
+ goto tr1880;
+ goto tr1838;
+tr1882:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st554;
-tr1851:
+ goto st569;
+tr1883:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st554;
-tr1852:
+ goto st569;
+tr1884:
{
s->line_counter++;
}
- goto st554;
-tr1858:
+ goto st569;
+tr1890:
{
s->buffer[s->buffer_length++] = 0;
@@ -56078,24 +57346,24 @@ tr1858:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 554; goto _out;}
+ {p++; cs = 569; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st554;
-tr1848:
+ goto st569;
+tr1880:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st554;
-st554:
+ goto st569;
+st569:
if ( ++p == pe )
- goto _test_eof554;
-case 554:
+ goto _test_eof569;
+case 569:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -56113,42 +57381,42 @@ case 554:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st554;
- case 32: goto st554;
- case 40: goto tr1850;
- case 41: goto tr1851;
- case 3082: goto tr1852;
- case 3131: goto tr1853;
- case 3338: goto tr1854;
- case 3387: goto tr1854;
- case 3594: goto tr1855;
- case 3643: goto tr1856;
+ case 9: goto st569;
+ case 32: goto st569;
+ case 40: goto tr1882;
+ case 41: goto tr1883;
+ case 3082: goto tr1884;
+ case 3131: goto tr1885;
+ case 3338: goto tr1886;
+ case 3387: goto tr1886;
+ case 3594: goto tr1887;
+ case 3643: goto tr1888;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr1845;
+ goto tr1877;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr1845;
+ goto tr1877;
} else
- goto tr1845;
- goto tr1806;
-tr1853:
+ goto tr1877;
+ goto tr1838;
+tr1885:
{
s->buffer_length = 0;
}
- goto st555;
-tr1857:
+ goto st570;
+tr1889:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st555;
-st555:
+ goto st570;
+st570:
if ( ++p == pe )
- goto _test_eof555;
-case 555:
+ goto _test_eof570;
+case 570:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -56168,49 +57436,49 @@ case 555:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1858;
+ goto tr1890;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1857;
- goto tr1806;
-tr1839:
+ goto tr1889;
+ goto tr1838;
+tr1871:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1425;
-tr1854:
+ goto st1473;
+tr1886:
{
if ((rdata_tail - s->r_data) != s->r_data_length) {
WARN(ZS_BAD_RDATA_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1425;
-st1425:
+ goto st1473;
+st1473:
if ( ++p == pe )
- goto _test_eof1425;
-case 1425:
- goto tr1792;
-tr1855:
+ goto _test_eof1473;
+case 1473:
+ goto tr1824;
+tr1887:
{
s->line_counter++;
}
{
if ((rdata_tail - s->r_data) != s->r_data_length) {
WARN(ZS_BAD_RDATA_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1426;
-st1426:
+ goto st1474;
+st1474:
if ( ++p == pe )
- goto _test_eof1426;
-case 1426:
+ goto _test_eof1474;
+case 1474:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -56228,44 +57496,44 @@ case 1426:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st554;
- case 32: goto st554;
- case 40: goto tr1850;
- case 41: goto tr1851;
- case 3082: goto tr1852;
- case 3131: goto tr1853;
- case 3338: goto tr1854;
- case 3387: goto tr1854;
- case 3594: goto tr1855;
- case 3643: goto tr1856;
+ case 9: goto st569;
+ case 32: goto st569;
+ case 40: goto tr1882;
+ case 41: goto tr1883;
+ case 3082: goto tr1884;
+ case 3131: goto tr1885;
+ case 3338: goto tr1886;
+ case 3387: goto tr1886;
+ case 3594: goto tr1887;
+ case 3643: goto tr1888;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr1845;
+ goto tr1877;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr1845;
+ goto tr1877;
} else
- goto tr1845;
- goto tr1806;
-tr1856:
+ goto tr1877;
+ goto tr1838;
+tr1888:
{
s->buffer_length = 0;
}
{
if ((rdata_tail - s->r_data) != s->r_data_length) {
WARN(ZS_BAD_RDATA_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1427;
-st1427:
+ goto st1475;
+st1475:
if ( ++p == pe )
- goto _test_eof1427;
-case 1427:
+ goto _test_eof1475;
+case 1475:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -56285,39 +57553,39 @@ case 1427:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1858;
+ goto tr1890;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1857;
- goto tr1806;
-tr1847:
+ goto tr1889;
+ goto tr1838;
+tr1879:
{
s->buffer_length = 0;
}
- goto st556;
-tr1859:
+ goto st571;
+tr1891:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st556;
-tr1865:
+ goto st571;
+tr1897:
{
if (s->number64 <= UINT16_MAX) {
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st556;
-st556:
+ goto st571;
+st571:
if ( ++p == pe )
- goto _test_eof556;
-case 556:
+ goto _test_eof571;
+case 571:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -56337,11 +57605,11 @@ case 556:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1860;
+ goto tr1892;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1859;
- goto tr1792;
-tr1834:
+ goto tr1891;
+ goto tr1824;
+tr1866:
{
s->number64 = 0;
}
@@ -56356,11 +57624,11 @@ tr1834:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st557;
-tr1838:
+ goto st572;
+tr1870:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -56372,14 +57640,14 @@ tr1838:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st557;
-st557:
+ goto st572;
+st572:
if ( ++p == pe )
- goto _test_eof557;
-case 557:
+ goto _test_eof572;
+case 572:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -56393,17 +57661,17 @@ case 557:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr1861;
- case 32: goto tr1861;
- case 40: goto tr1862;
- case 41: goto tr1863;
- case 2058: goto tr1864;
- case 2107: goto tr1865;
+ case 9: goto tr1893;
+ case 32: goto tr1893;
+ case 40: goto tr1894;
+ case 41: goto tr1895;
+ case 2058: goto tr1896;
+ case 2107: goto tr1897;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr1838;
- goto tr1798;
-tr1841:
+ goto tr1870;
+ goto tr1830;
+tr1873:
{
p--; {cs = stack[--top];goto _again;}
}
@@ -56412,17 +57680,17 @@ tr1841:
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1428;
-st1428:
+ goto st1476;
+st1476:
if ( ++p == pe )
- goto _test_eof1428;
-case 1428:
+ goto _test_eof1476;
+case 1476:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -56442,26 +57710,26 @@ case 1428:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1860;
+ goto tr1892;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1859;
- goto tr1792;
-tr1832:
+ goto tr1891;
+ goto tr1824;
+tr1864:
{
s->buffer_length = 0;
}
- goto st558;
-tr1866:
+ goto st573;
+tr1898:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st558;
-st558:
+ goto st573;
+st573:
if ( ++p == pe )
- goto _test_eof558;
-case 558:
+ goto _test_eof573;
+case 573:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -56481,69 +57749,71 @@ case 558:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1867;
+ goto tr1899;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1866;
- goto tr1792;
-st559:
+ goto tr1898;
+ goto tr1824;
+st574:
if ( ++p == pe )
- goto _test_eof559;
-case 559:
+ goto _test_eof574;
+case 574:
switch( (*p) ) {
- case 97: goto tr1869;
- case 101: goto tr1870;
- case 105: goto tr1871;
- case 107: goto tr1872;
- case 110: goto tr1873;
- case 112: goto tr1874;
+ case 97: goto tr1901;
+ case 100: goto tr1902;
+ case 101: goto tr1903;
+ case 105: goto tr1904;
+ case 107: goto tr1905;
+ case 110: goto tr1906;
+ case 111: goto tr1907;
+ case 112: goto tr1908;
}
- goto tr1868;
-tr1869:
+ goto tr1900;
+tr1901:
{
if (rdata_tail + 2 > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st560;
-st560:
+ goto st575;
+st575:
if ( ++p == pe )
- goto _test_eof560;
-case 560:
+ goto _test_eof575;
+case 575:
if ( (*p) == 108 )
- goto st561;
- goto tr1868;
-st561:
+ goto st576;
+ goto tr1900;
+st576:
if ( ++p == pe )
- goto _test_eof561;
-case 561:
+ goto _test_eof576;
+case 576:
if ( (*p) == 112 )
- goto st562;
- goto tr1868;
-st562:
+ goto st577;
+ goto tr1900;
+st577:
if ( ++p == pe )
- goto _test_eof562;
-case 562:
+ goto _test_eof577;
+case 577:
if ( (*p) == 110 )
- goto st563;
- goto tr1868;
-st563:
+ goto st578;
+ goto tr1900;
+st578:
if ( ++p == pe )
- goto _test_eof563;
-case 563:
+ goto _test_eof578;
+case 578:
switch( (*p) ) {
- case 32: goto tr1878;
- case 34: goto tr1878;
- case 44: goto tr1878;
- case 59: goto tr1878;
+ case 32: goto tr1912;
+ case 34: goto tr1912;
+ case 44: goto tr1912;
+ case 59: goto tr1912;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1878;
+ goto tr1912;
} else if ( (*p) >= 9 )
- goto tr1878;
- goto tr1868;
-tr1878:
+ goto tr1912;
+ goto tr1900;
+tr1912:
{
uint16_t val = htons(1);
memcpy(rdata_tail, &val, 2);
@@ -56552,8 +57822,18 @@ tr1878:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1429;
-tr1881:
+ goto st1477;
+tr1919:
+ {
+ uint16_t val = htons(7);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ p--; {cs = stack[--top];goto _again;}
+ }
+ goto st1477;
+tr1922:
{
uint16_t val = htons(5);
memcpy(rdata_tail, &val, 2);
@@ -56562,8 +57842,8 @@ tr1881:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1429;
-tr1890:
+ goto st1477;
+tr1931:
{
uint16_t val = htons(4);
memcpy(rdata_tail, &val, 2);
@@ -56572,8 +57852,8 @@ tr1890:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1429;
-tr1895:
+ goto st1477;
+tr1936:
{
uint16_t val = htons(6);
memcpy(rdata_tail, &val, 2);
@@ -56582,8 +57862,8 @@ tr1895:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1429;
-tr1900:
+ goto st1477;
+tr1941:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -56591,14 +57871,14 @@ tr1900:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1429;
-tr1916:
+ goto st1477;
+tr1957:
{
uint16_t val = htons(2);
memcpy(rdata_tail, &val, 2);
@@ -56607,8 +57887,18 @@ tr1916:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1429;
-tr1920:
+ goto st1477;
+tr1962:
+ {
+ uint16_t val = htons(8);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ p--; {cs = stack[--top];goto _again;}
+ }
+ goto st1477;
+tr1966:
{
uint16_t val = htons(3);
memcpy(rdata_tail, &val, 2);
@@ -56617,199 +57907,265 @@ tr1920:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1429;
-st1429:
+ goto st1477;
+st1477:
if ( ++p == pe )
- goto _test_eof1429;
-case 1429:
+ goto _test_eof1477;
+case 1477:
goto st0;
-tr1870:
+tr1902:
{
if (rdata_tail + 2 > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st564;
-st564:
+ goto st579;
+st579:
if ( ++p == pe )
- goto _test_eof564;
-case 564:
+ goto _test_eof579;
+case 579:
+ if ( (*p) == 111 )
+ goto st580;
+ goto tr1900;
+st580:
+ if ( ++p == pe )
+ goto _test_eof580;
+case 580:
+ if ( (*p) == 104 )
+ goto st581;
+ goto tr1900;
+st581:
+ if ( ++p == pe )
+ goto _test_eof581;
+case 581:
+ if ( (*p) == 112 )
+ goto st582;
+ goto tr1900;
+st582:
+ if ( ++p == pe )
+ goto _test_eof582;
+case 582:
+ if ( (*p) == 97 )
+ goto st583;
+ goto tr1900;
+st583:
+ if ( ++p == pe )
+ goto _test_eof583;
+case 583:
+ if ( (*p) == 116 )
+ goto st584;
+ goto tr1900;
+st584:
+ if ( ++p == pe )
+ goto _test_eof584;
+case 584:
+ if ( (*p) == 104 )
+ goto st585;
+ goto tr1900;
+st585:
+ if ( ++p == pe )
+ goto _test_eof585;
+case 585:
+ switch( (*p) ) {
+ case 32: goto tr1919;
+ case 34: goto tr1919;
+ case 44: goto tr1919;
+ case 59: goto tr1919;
+ }
+ if ( (*p) > 10 ) {
+ if ( 40 <= (*p) && (*p) <= 41 )
+ goto tr1919;
+ } else if ( (*p) >= 9 )
+ goto tr1919;
+ goto tr1900;
+tr1903:
+ {
+ if (rdata_tail + 2 > rdata_stop + 1) {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ goto st586;
+st586:
+ if ( ++p == pe )
+ goto _test_eof586;
+case 586:
if ( (*p) == 99 )
- goto st565;
- goto tr1868;
-st565:
+ goto st587;
+ goto tr1900;
+st587:
if ( ++p == pe )
- goto _test_eof565;
-case 565:
+ goto _test_eof587;
+case 587:
if ( (*p) == 104 )
- goto st566;
- goto tr1868;
-st566:
+ goto st588;
+ goto tr1900;
+st588:
if ( ++p == pe )
- goto _test_eof566;
-case 566:
+ goto _test_eof588;
+case 588:
switch( (*p) ) {
- case 32: goto tr1881;
- case 34: goto tr1881;
- case 44: goto tr1881;
- case 59: goto tr1881;
+ case 32: goto tr1922;
+ case 34: goto tr1922;
+ case 44: goto tr1922;
+ case 59: goto tr1922;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1881;
+ goto tr1922;
} else if ( (*p) >= 9 )
- goto tr1881;
- goto tr1868;
-tr1871:
+ goto tr1922;
+ goto tr1900;
+tr1904:
{
if (rdata_tail + 2 > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st567;
-st567:
+ goto st589;
+st589:
if ( ++p == pe )
- goto _test_eof567;
-case 567:
+ goto _test_eof589;
+case 589:
if ( (*p) == 112 )
- goto st568;
- goto tr1868;
-st568:
+ goto st590;
+ goto tr1900;
+st590:
if ( ++p == pe )
- goto _test_eof568;
-case 568:
+ goto _test_eof590;
+case 590:
if ( (*p) == 118 )
- goto st569;
- goto tr1868;
-st569:
+ goto st591;
+ goto tr1900;
+st591:
if ( ++p == pe )
- goto _test_eof569;
-case 569:
+ goto _test_eof591;
+case 591:
switch( (*p) ) {
- case 52: goto st570;
- case 54: goto st575;
+ case 52: goto st592;
+ case 54: goto st597;
}
- goto tr1868;
-st570:
+ goto tr1900;
+st592:
if ( ++p == pe )
- goto _test_eof570;
-case 570:
+ goto _test_eof592;
+case 592:
if ( (*p) == 104 )
- goto st571;
- goto tr1868;
-st571:
+ goto st593;
+ goto tr1900;
+st593:
if ( ++p == pe )
- goto _test_eof571;
-case 571:
+ goto _test_eof593;
+case 593:
if ( (*p) == 105 )
- goto st572;
- goto tr1868;
-st572:
+ goto st594;
+ goto tr1900;
+st594:
if ( ++p == pe )
- goto _test_eof572;
-case 572:
+ goto _test_eof594;
+case 594:
if ( (*p) == 110 )
- goto st573;
- goto tr1868;
-st573:
+ goto st595;
+ goto tr1900;
+st595:
if ( ++p == pe )
- goto _test_eof573;
-case 573:
+ goto _test_eof595;
+case 595:
if ( (*p) == 116 )
- goto st574;
- goto tr1868;
-st574:
+ goto st596;
+ goto tr1900;
+st596:
if ( ++p == pe )
- goto _test_eof574;
-case 574:
+ goto _test_eof596;
+case 596:
switch( (*p) ) {
- case 32: goto tr1890;
- case 34: goto tr1890;
- case 44: goto tr1890;
- case 59: goto tr1890;
+ case 32: goto tr1931;
+ case 34: goto tr1931;
+ case 44: goto tr1931;
+ case 59: goto tr1931;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1890;
+ goto tr1931;
} else if ( (*p) >= 9 )
- goto tr1890;
- goto tr1868;
-st575:
+ goto tr1931;
+ goto tr1900;
+st597:
if ( ++p == pe )
- goto _test_eof575;
-case 575:
+ goto _test_eof597;
+case 597:
if ( (*p) == 104 )
- goto st576;
- goto tr1868;
-st576:
+ goto st598;
+ goto tr1900;
+st598:
if ( ++p == pe )
- goto _test_eof576;
-case 576:
+ goto _test_eof598;
+case 598:
if ( (*p) == 105 )
- goto st577;
- goto tr1868;
-st577:
+ goto st599;
+ goto tr1900;
+st599:
if ( ++p == pe )
- goto _test_eof577;
-case 577:
+ goto _test_eof599;
+case 599:
if ( (*p) == 110 )
- goto st578;
- goto tr1868;
-st578:
+ goto st600;
+ goto tr1900;
+st600:
if ( ++p == pe )
- goto _test_eof578;
-case 578:
+ goto _test_eof600;
+case 600:
if ( (*p) == 116 )
- goto st579;
- goto tr1868;
-st579:
+ goto st601;
+ goto tr1900;
+st601:
if ( ++p == pe )
- goto _test_eof579;
-case 579:
+ goto _test_eof601;
+case 601:
switch( (*p) ) {
- case 32: goto tr1895;
- case 34: goto tr1895;
- case 44: goto tr1895;
- case 59: goto tr1895;
+ case 32: goto tr1936;
+ case 34: goto tr1936;
+ case 44: goto tr1936;
+ case 59: goto tr1936;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1895;
+ goto tr1936;
} else if ( (*p) >= 9 )
- goto tr1895;
- goto tr1868;
-tr1872:
+ goto tr1936;
+ goto tr1900;
+tr1905:
{
if (rdata_tail + 2 > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st580;
-st580:
+ goto st602;
+st602:
if ( ++p == pe )
- goto _test_eof580;
-case 580:
+ goto _test_eof602;
+case 602:
if ( (*p) == 101 )
- goto st581;
- goto tr1868;
-st581:
+ goto st603;
+ goto tr1900;
+st603:
if ( ++p == pe )
- goto _test_eof581;
-case 581:
+ goto _test_eof603;
+case 603:
if ( (*p) == 121 )
- goto st582;
- goto tr1868;
-st582:
+ goto st604;
+ goto tr1900;
+st604:
if ( ++p == pe )
- goto _test_eof582;
-case 582:
+ goto _test_eof604;
+case 604:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1899;
- goto tr1898;
-tr1899:
+ goto tr1940;
+ goto tr1939;
+tr1940:
{
s->number64 = 0;
}
@@ -56824,11 +58180,11 @@ tr1899:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st583;
-tr1901:
+ goto st605;
+tr1942:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -56840,200 +58196,252 @@ tr1901:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st583;
-st583:
+ goto st605;
+st605:
if ( ++p == pe )
- goto _test_eof583;
-case 583:
+ goto _test_eof605;
+case 605:
switch( (*p) ) {
- case 32: goto tr1900;
- case 34: goto tr1900;
- case 44: goto tr1900;
- case 59: goto tr1900;
+ case 32: goto tr1941;
+ case 34: goto tr1941;
+ case 44: goto tr1941;
+ case 59: goto tr1941;
}
if ( (*p) < 40 ) {
if ( 9 <= (*p) && (*p) <= 10 )
- goto tr1900;
+ goto tr1941;
} else if ( (*p) > 41 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr1901;
+ goto tr1942;
} else
- goto tr1900;
- goto tr1898;
-tr1873:
+ goto tr1941;
+ goto tr1939;
+tr1906:
{
if (rdata_tail + 2 > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st584;
-st584:
+ goto st606;
+st606:
if ( ++p == pe )
- goto _test_eof584;
-case 584:
+ goto _test_eof606;
+case 606:
if ( (*p) == 111 )
- goto st585;
- goto tr1868;
-st585:
+ goto st607;
+ goto tr1900;
+st607:
if ( ++p == pe )
- goto _test_eof585;
-case 585:
+ goto _test_eof607;
+case 607:
if ( (*p) == 45 )
- goto st586;
- goto tr1868;
-st586:
+ goto st608;
+ goto tr1900;
+st608:
if ( ++p == pe )
- goto _test_eof586;
-case 586:
+ goto _test_eof608;
+case 608:
if ( (*p) == 100 )
- goto st587;
- goto tr1868;
-st587:
+ goto st609;
+ goto tr1900;
+st609:
if ( ++p == pe )
- goto _test_eof587;
-case 587:
+ goto _test_eof609;
+case 609:
if ( (*p) == 101 )
- goto st588;
- goto tr1868;
-st588:
+ goto st610;
+ goto tr1900;
+st610:
if ( ++p == pe )
- goto _test_eof588;
-case 588:
+ goto _test_eof610;
+case 610:
if ( (*p) == 102 )
- goto st589;
- goto tr1868;
-st589:
+ goto st611;
+ goto tr1900;
+st611:
if ( ++p == pe )
- goto _test_eof589;
-case 589:
+ goto _test_eof611;
+case 611:
if ( (*p) == 97 )
- goto st590;
- goto tr1868;
-st590:
+ goto st612;
+ goto tr1900;
+st612:
if ( ++p == pe )
- goto _test_eof590;
-case 590:
+ goto _test_eof612;
+case 612:
if ( (*p) == 117 )
- goto st591;
- goto tr1868;
-st591:
+ goto st613;
+ goto tr1900;
+st613:
if ( ++p == pe )
- goto _test_eof591;
-case 591:
+ goto _test_eof613;
+case 613:
if ( (*p) == 108 )
- goto st592;
- goto tr1868;
-st592:
+ goto st614;
+ goto tr1900;
+st614:
if ( ++p == pe )
- goto _test_eof592;
-case 592:
+ goto _test_eof614;
+case 614:
if ( (*p) == 116 )
- goto st593;
- goto tr1868;
-st593:
+ goto st615;
+ goto tr1900;
+st615:
if ( ++p == pe )
- goto _test_eof593;
-case 593:
+ goto _test_eof615;
+case 615:
if ( (*p) == 45 )
- goto st594;
- goto tr1868;
-st594:
+ goto st616;
+ goto tr1900;
+st616:
if ( ++p == pe )
- goto _test_eof594;
-case 594:
+ goto _test_eof616;
+case 616:
if ( (*p) == 97 )
- goto st595;
- goto tr1868;
-st595:
+ goto st617;
+ goto tr1900;
+st617:
if ( ++p == pe )
- goto _test_eof595;
-case 595:
+ goto _test_eof617;
+case 617:
if ( (*p) == 108 )
- goto st596;
- goto tr1868;
-st596:
+ goto st618;
+ goto tr1900;
+st618:
if ( ++p == pe )
- goto _test_eof596;
-case 596:
+ goto _test_eof618;
+case 618:
if ( (*p) == 112 )
- goto st597;
- goto tr1868;
-st597:
+ goto st619;
+ goto tr1900;
+st619:
if ( ++p == pe )
- goto _test_eof597;
-case 597:
+ goto _test_eof619;
+case 619:
if ( (*p) == 110 )
- goto st598;
- goto tr1868;
-st598:
+ goto st620;
+ goto tr1900;
+st620:
if ( ++p == pe )
- goto _test_eof598;
-case 598:
+ goto _test_eof620;
+case 620:
switch( (*p) ) {
- case 32: goto tr1916;
- case 34: goto tr1916;
- case 44: goto tr1916;
- case 59: goto tr1916;
+ case 32: goto tr1957;
+ case 34: goto tr1957;
+ case 44: goto tr1957;
+ case 59: goto tr1957;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1916;
+ goto tr1957;
} else if ( (*p) >= 9 )
- goto tr1916;
- goto tr1868;
-tr1874:
+ goto tr1957;
+ goto tr1900;
+tr1907:
{
if (rdata_tail + 2 > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st599;
-st599:
+ goto st621;
+st621:
if ( ++p == pe )
- goto _test_eof599;
-case 599:
+ goto _test_eof621;
+case 621:
+ if ( (*p) == 104 )
+ goto st622;
+ goto tr1900;
+st622:
+ if ( ++p == pe )
+ goto _test_eof622;
+case 622:
+ if ( (*p) == 116 )
+ goto st623;
+ goto tr1900;
+st623:
+ if ( ++p == pe )
+ goto _test_eof623;
+case 623:
+ if ( (*p) == 116 )
+ goto st624;
+ goto tr1900;
+st624:
+ if ( ++p == pe )
+ goto _test_eof624;
+case 624:
+ if ( (*p) == 112 )
+ goto st625;
+ goto tr1900;
+st625:
+ if ( ++p == pe )
+ goto _test_eof625;
+case 625:
+ switch( (*p) ) {
+ case 32: goto tr1962;
+ case 34: goto tr1962;
+ case 44: goto tr1962;
+ case 59: goto tr1962;
+ }
+ if ( (*p) > 10 ) {
+ if ( 40 <= (*p) && (*p) <= 41 )
+ goto tr1962;
+ } else if ( (*p) >= 9 )
+ goto tr1962;
+ goto tr1900;
+tr1908:
+ {
+ if (rdata_tail + 2 > rdata_stop + 1) {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ goto st626;
+st626:
+ if ( ++p == pe )
+ goto _test_eof626;
+case 626:
if ( (*p) == 111 )
- goto st600;
- goto tr1868;
-st600:
+ goto st627;
+ goto tr1900;
+st627:
if ( ++p == pe )
- goto _test_eof600;
-case 600:
+ goto _test_eof627;
+case 627:
if ( (*p) == 114 )
- goto st601;
- goto tr1868;
-st601:
+ goto st628;
+ goto tr1900;
+st628:
if ( ++p == pe )
- goto _test_eof601;
-case 601:
+ goto _test_eof628;
+case 628:
if ( (*p) == 116 )
- goto st602;
- goto tr1868;
-st602:
+ goto st629;
+ goto tr1900;
+st629:
if ( ++p == pe )
- goto _test_eof602;
-case 602:
+ goto _test_eof629;
+case 629:
switch( (*p) ) {
- case 32: goto tr1920;
- case 34: goto tr1920;
- case 44: goto tr1920;
- case 59: goto tr1920;
+ case 32: goto tr1966;
+ case 34: goto tr1966;
+ case 44: goto tr1966;
+ case 59: goto tr1966;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1920;
+ goto tr1966;
} else if ( (*p) >= 9 )
- goto tr1920;
- goto tr1868;
-st603:
+ goto tr1966;
+ goto tr1900;
+st630:
if ( ++p == pe )
- goto _test_eof603;
-case 603:
+ goto _test_eof630;
+case 630:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -57051,42 +58459,42 @@ case 603:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1922;
- case 32: goto tr1922;
- case 40: goto tr1923;
- case 41: goto tr1924;
- case 3082: goto tr1925;
- case 3131: goto tr1926;
- case 3338: goto tr1927;
- case 3387: goto tr1927;
- case 3594: goto tr1928;
- case 3643: goto tr1929;
- }
- goto tr1921;
-tr1931:
+ case 9: goto tr1968;
+ case 32: goto tr1968;
+ case 40: goto tr1969;
+ case 41: goto tr1970;
+ case 3082: goto tr1971;
+ case 3131: goto tr1972;
+ case 3338: goto tr1973;
+ case 3387: goto tr1973;
+ case 3594: goto tr1974;
+ case 3643: goto tr1975;
+ }
+ goto tr1967;
+tr1977:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st604;
-tr1932:
+ goto st631;
+tr1978:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st604;
-tr1940:
+ goto st631;
+tr1988:
{
s->line_counter++;
}
- goto st604;
-tr1960:
+ goto st631;
+tr2008:
{
s->buffer[s->buffer_length++] = 0;
@@ -57096,21 +58504,21 @@ tr1960:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 604; goto _out;}
+ {p++; cs = 631; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st604;
-tr1922:
+ goto st631;
+tr1968:
{
s->svcb.params_position = rdata_tail;
s->svcb.last_key = -1;
}
- goto st604;
-tr1923:
+ goto st631;
+tr1969:
{
s->svcb.params_position = rdata_tail;
s->svcb.last_key = -1;
@@ -57118,12 +58526,12 @@ tr1923:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st604;
-tr1924:
+ goto st631;
+tr1970:
{
s->svcb.params_position = rdata_tail;
s->svcb.last_key = -1;
@@ -57131,12 +58539,12 @@ tr1924:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st604;
-tr1925:
+ goto st631;
+tr1971:
{
s->svcb.params_position = rdata_tail;
s->svcb.last_key = -1;
@@ -57144,26 +58552,26 @@ tr1925:
{
s->line_counter++;
}
- goto st604;
-tr1951:
+ goto st631;
+tr1999:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->comma_list = false;
if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -57174,36 +58582,36 @@ tr1951:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st604;
-tr1952:
+ goto st631;
+tr2000:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->comma_list = false;
if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -57214,43 +58622,43 @@ tr1952:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st604;
-tr1953:
+ goto st631;
+tr2001:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->comma_list = false;
if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -57261,43 +58669,43 @@ tr1953:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st604;
-tr1954:
+ goto st631;
+tr2002:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->comma_list = false;
if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -57308,74 +58716,95 @@ tr1954:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st604;
-tr1974:
+ goto st631;
+tr2018:
+ {
+ s->item_length = rdata_tail - s->item_length2_location - 2;
+
+ if (s->item_length <= MAX_ITEM_LENGTH2) {
+ uint16_t val = htons((uint16_t)(s->item_length));
+ memcpy(s->item_length2_location, &val, 2);
+ } else {
+ WARN(ZS_ITEM_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
+ }
+ }
+ goto st631;
+tr2019:
+ {
+ s->item_length = rdata_tail - s->item_length2_location - 2;
+
+ if (s->item_length <= MAX_ITEM_LENGTH2) {
+ uint16_t val = htons((uint16_t)(s->item_length));
+ memcpy(s->item_length2_location, &val, 2);
+ } else {
+ WARN(ZS_ITEM_OVERFLOW);
+ p--; {goto st316;}
}
}
- goto st604;
-tr1975:
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st604;
-tr1976:
+ goto st631;
+tr2020:
+ {
+ s->item_length = rdata_tail - s->item_length2_location - 2;
+
+ if (s->item_length <= MAX_ITEM_LENGTH2) {
+ uint16_t val = htons((uint16_t)(s->item_length));
+ memcpy(s->item_length2_location, &val, 2);
+ } else {
+ WARN(ZS_ITEM_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st604;
-tr1977:
- {
- int ret = svcb_sort(s, rdata_tail);
- if (ret != ZS_OK) {
- WARN(ret);
- p--; {goto st307;}
- }
- }
- {
- s->line_counter++;
- }
- goto st604;
-tr1987:
+ goto st631;
+tr2021:
{
s->item_length = rdata_tail - s->item_length2_location - 2;
@@ -57384,107 +58813,86 @@ tr1987:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st604;
-tr1988:
{
- s->item_length = rdata_tail - s->item_length2_location - 2;
-
- if (s->item_length <= MAX_ITEM_LENGTH2) {
- uint16_t val = htons((uint16_t)(s->item_length));
- memcpy(s->item_length2_location, &val, 2);
- } else {
- WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ s->line_counter++;
+ }
+ goto st631;
+tr2028:
+ {
+ int ret = svcb_sort(s, rdata_tail);
+ if (ret != ZS_OK) {
+ WARN(ret);
+ p--; {goto st316;}
}
}
+ goto st631;
+tr2029:
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st604;
-tr1989:
- {
- s->item_length = rdata_tail - s->item_length2_location - 2;
-
- if (s->item_length <= MAX_ITEM_LENGTH2) {
- uint16_t val = htons((uint16_t)(s->item_length));
- memcpy(s->item_length2_location, &val, 2);
- } else {
- WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
- }
- }
+ goto st631;
+tr2030:
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st604;
-tr1991:
- {
- s->item_length = rdata_tail - s->item_length2_location - 2;
-
- if (s->item_length <= MAX_ITEM_LENGTH2) {
- uint16_t val = htons((uint16_t)(s->item_length));
- memcpy(s->item_length2_location, &val, 2);
- } else {
- WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
- }
- }
+ goto st631;
+tr2031:
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st604;
-tr2013:
+ goto st631;
+tr2071:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -57497,30 +58905,30 @@ tr2013:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st604;
-tr2014:
+ goto st631;
+tr2072:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -57533,37 +58941,37 @@ tr2014:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st604;
-tr2015:
+ goto st631;
+tr2073:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -57576,37 +58984,37 @@ tr2015:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st604;
-tr2018:
+ goto st631;
+tr2076:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -57619,33 +59027,33 @@ tr2018:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st604;
-tr2036:
+ goto st631;
+tr2094:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -57658,30 +59066,30 @@ tr2036:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st604;
-tr2037:
+ goto st631;
+tr2095:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -57694,37 +59102,37 @@ tr2037:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st604;
-tr2038:
+ goto st631;
+tr2096:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -57737,37 +59145,37 @@ tr2038:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st604;
-tr2041:
+ goto st631;
+tr2099:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -57780,21 +59188,21 @@ tr2041:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st604;
-tr2051:
+ goto st631;
+tr2109:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -57802,7 +59210,7 @@ tr2051:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -57814,11 +59222,11 @@ tr2051:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st604;
-tr2052:
+ goto st631;
+tr2110:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -57826,7 +59234,7 @@ tr2052:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -57838,18 +59246,18 @@ tr2052:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st604;
-tr2053:
+ goto st631;
+tr2111:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -57857,7 +59265,7 @@ tr2053:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -57869,18 +59277,18 @@ tr2053:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st604;
-tr2056:
+ goto st631;
+tr2114:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -57888,7 +59296,7 @@ tr2056:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -57900,14 +59308,14 @@ tr2056:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st604;
-tr2077:
+ goto st631;
+tr2134:
{
s->item_length = rdata_tail - s->item_length2_location - 2;
@@ -57916,7 +59324,7 @@ tr2077:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -57926,11 +59334,11 @@ tr2077:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st604;
-tr2078:
+ goto st631;
+tr2135:
{
s->item_length = rdata_tail - s->item_length2_location - 2;
@@ -57939,7 +59347,7 @@ tr2078:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -57949,18 +59357,18 @@ tr2078:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st604;
-tr2079:
+ goto st631;
+tr2136:
{
s->item_length = rdata_tail - s->item_length2_location - 2;
@@ -57969,7 +59377,7 @@ tr2079:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -57979,18 +59387,18 @@ tr2079:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st604;
-tr2081:
+ goto st631;
+tr2138:
{
s->item_length = rdata_tail - s->item_length2_location - 2;
@@ -57999,7 +59407,7 @@ tr2081:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -58009,14 +59417,14 @@ tr2081:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st604;
-tr2101:
+ goto st631;
+tr2158:
{
uint16_t val = htons(2);
memcpy(rdata_tail, &val, 2);
@@ -58031,11 +59439,11 @@ tr2101:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st604;
-tr2102:
+ goto st631;
+tr2159:
{
uint16_t val = htons(2);
memcpy(rdata_tail, &val, 2);
@@ -58050,18 +59458,18 @@ tr2102:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st604;
-tr2103:
+ goto st631;
+tr2160:
{
uint16_t val = htons(2);
memcpy(rdata_tail, &val, 2);
@@ -58076,18 +59484,18 @@ tr2103:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st604;
-tr2104:
+ goto st631;
+tr2161:
{
uint16_t val = htons(2);
memcpy(rdata_tail, &val, 2);
@@ -58102,14 +59510,107 @@ tr2104:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st604;
-tr2118:
+ goto st631;
+tr2170:
+ {
+ uint16_t val = htons(8);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ uint16_t val = htons(0);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ int ret = svcb_sort(s, rdata_tail);
+ if (ret != ZS_OK) {
+ WARN(ret);
+ p--; {goto st316;}
+ }
+ }
+ goto st631;
+tr2171:
+ {
+ uint16_t val = htons(8);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ uint16_t val = htons(0);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ int ret = svcb_sort(s, rdata_tail);
+ if (ret != ZS_OK) {
+ WARN(ret);
+ p--; {goto st316;}
+ }
+ }
+ {
+ if (s->multiline == true) {
+ ERR(ZS_LEFT_PARENTHESIS);
+ p--; {goto st316;}
+ }
+ s->multiline = true;
+ }
+ goto st631;
+tr2172:
+ {
+ uint16_t val = htons(8);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ uint16_t val = htons(0);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ int ret = svcb_sort(s, rdata_tail);
+ if (ret != ZS_OK) {
+ WARN(ret);
+ p--; {goto st316;}
+ }
+ }
+ {
+ if (s->multiline == false) {
+ ERR(ZS_RIGHT_PARENTHESIS);
+ p--; {goto st316;}
+ }
+ s->multiline = false;
+ }
+ goto st631;
+tr2173:
+ {
+ uint16_t val = htons(8);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ uint16_t val = htons(0);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ int ret = svcb_sort(s, rdata_tail);
+ if (ret != ZS_OK) {
+ WARN(ret);
+ p--; {goto st316;}
+ }
+ }
+ {
+ s->line_counter++;
+ }
+ goto st631;
+tr2187:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -58117,18 +59618,18 @@ tr2118:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st604;
-tr2119:
+ goto st631;
+tr2188:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -58136,25 +59637,25 @@ tr2119:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st604;
-tr2120:
+ goto st631;
+tr2189:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -58162,25 +59663,25 @@ tr2120:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st604;
-tr2122:
+ goto st631;
+tr2191:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -58188,24 +59689,24 @@ tr2122:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st604;
-st604:
+ goto st631;
+st631:
if ( ++p == pe )
- goto _test_eof604;
-case 604:
+ goto _test_eof631;
+case 631:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -58223,85 +59724,87 @@ case 604:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st604;
- case 32: goto st604;
- case 40: goto tr1931;
- case 41: goto tr1932;
- case 97: goto tr1933;
- case 101: goto tr1934;
- case 105: goto tr1935;
- case 107: goto tr1936;
- case 109: goto tr1937;
- case 110: goto tr1938;
- case 112: goto tr1939;
- case 3082: goto tr1940;
- case 3131: goto tr1941;
- case 3338: goto tr1942;
- case 3387: goto tr1942;
- case 3594: goto tr1943;
- case 3643: goto tr1944;
- }
- goto tr1921;
-tr1933:
+ case 9: goto st631;
+ case 32: goto st631;
+ case 40: goto tr1977;
+ case 41: goto tr1978;
+ case 97: goto tr1979;
+ case 100: goto tr1980;
+ case 101: goto tr1981;
+ case 105: goto tr1982;
+ case 107: goto tr1983;
+ case 109: goto tr1984;
+ case 110: goto tr1985;
+ case 111: goto tr1986;
+ case 112: goto tr1987;
+ case 3082: goto tr1988;
+ case 3131: goto tr1989;
+ case 3338: goto tr1990;
+ case 3387: goto tr1990;
+ case 3594: goto tr1991;
+ case 3643: goto tr1992;
+ }
+ goto tr1967;
+tr1979:
{
if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->svcb.param_position = rdata_tail;
}
- goto st605;
-st605:
+ goto st632;
+st632:
if ( ++p == pe )
- goto _test_eof605;
-case 605:
+ goto _test_eof632;
+case 632:
if ( (*p) == 108 )
- goto st606;
- goto tr1921;
-st606:
+ goto st633;
+ goto tr1967;
+st633:
if ( ++p == pe )
- goto _test_eof606;
-case 606:
+ goto _test_eof633;
+case 633:
if ( (*p) == 112 )
- goto st607;
- goto tr1921;
-st607:
+ goto st634;
+ goto tr1967;
+st634:
if ( ++p == pe )
- goto _test_eof607;
-case 607:
+ goto _test_eof634;
+case 634:
if ( (*p) == 110 )
- goto st608;
- goto tr1921;
-st608:
+ goto st635;
+ goto tr1967;
+st635:
if ( ++p == pe )
- goto _test_eof608;
-case 608:
+ goto _test_eof635;
+case 635:
if ( (*p) == 61 )
- goto tr1948;
- goto tr1921;
-tr1948:
+ goto tr1996;
+ goto tr1967;
+tr1996:
{
uint16_t val = htons(1);
memcpy(rdata_tail, &val, 2);
rdata_tail += 2;
}
- goto st609;
-st609:
+ goto st636;
+st636:
if ( ++p == pe )
- goto _test_eof609;
-case 609:
+ goto _test_eof636;
+case 636:
switch( (*p) ) {
- case 32: goto tr1921;
- case 34: goto tr1950;
- case 59: goto tr1921;
+ case 32: goto tr1967;
+ case 34: goto tr1998;
+ case 59: goto tr1967;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1921;
+ goto tr1967;
} else if ( (*p) >= 9 )
- goto tr1921;
- goto tr1949;
-tr1949:
+ goto tr1967;
+ goto tr1997;
+tr1997:
{
s->comma_list = true;
s->pending_backslash = false;
@@ -58312,7 +59815,7 @@ tr1949:
rdata_tail += 2;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -58320,15 +59823,15 @@ tr1949:
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 610;goto st318;} }
- goto st610;
-st610:
+ { p--; {stack[top++] = 637;goto st327;} }
+ goto st637;
+st637:
if ( ++p == pe )
- goto _test_eof610;
-case 610:
+ goto _test_eof637;
+case 637:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -58346,31 +59849,31 @@ case 610:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1951;
- case 32: goto tr1951;
- case 40: goto tr1952;
- case 41: goto tr1953;
- case 3082: goto tr1954;
- case 3131: goto tr1955;
- case 3338: goto tr1956;
- case 3387: goto tr1956;
- case 3594: goto tr1957;
- case 3643: goto tr1958;
+ case 9: goto tr1999;
+ case 32: goto tr1999;
+ case 40: goto tr2000;
+ case 41: goto tr2001;
+ case 3082: goto tr2002;
+ case 3131: goto tr2003;
+ case 3338: goto tr2004;
+ case 3387: goto tr2004;
+ case 3594: goto tr2005;
+ case 3643: goto tr2006;
}
- goto tr1921;
-tr1941:
+ goto tr1967;
+tr1989:
{
s->buffer_length = 0;
}
- goto st611;
-tr1959:
+ goto st638;
+tr2007:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st611;
-tr1926:
+ goto st638;
+tr1972:
{
s->svcb.params_position = rdata_tail;
s->svcb.last_key = -1;
@@ -58378,26 +59881,26 @@ tr1926:
{
s->buffer_length = 0;
}
- goto st611;
-tr1955:
+ goto st638;
+tr2003:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->comma_list = false;
if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -58408,33 +59911,21 @@ tr1955:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
- }
- }
- {
- s->buffer_length = 0;
- }
- goto st611;
-tr1978:
- {
- int ret = svcb_sort(s, rdata_tail);
- if (ret != ZS_OK) {
- WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st611;
-tr1992:
+ goto st638;
+tr2022:
{
s->item_length = rdata_tail - s->item_length2_location - 2;
@@ -58443,33 +59934,45 @@ tr1992:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st611;
-tr2019:
+ goto st638;
+tr2032:
+ {
+ int ret = svcb_sort(s, rdata_tail);
+ if (ret != ZS_OK) {
+ WARN(ret);
+ p--; {goto st316;}
+ }
+ }
+ {
+ s->buffer_length = 0;
+ }
+ goto st638;
+tr2077:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -58482,33 +59985,33 @@ tr2019:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st611;
-tr2042:
+ goto st638;
+tr2100:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -58521,21 +60024,21 @@ tr2042:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st611;
-tr2057:
+ goto st638;
+tr2115:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -58543,7 +60046,7 @@ tr2057:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -58555,14 +60058,14 @@ tr2057:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st611;
-tr2082:
+ goto st638;
+tr2139:
{
s->item_length = rdata_tail - s->item_length2_location - 2;
@@ -58571,7 +60074,7 @@ tr2082:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -58581,14 +60084,14 @@ tr2082:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st611;
-tr2105:
+ goto st638;
+tr2162:
{
uint16_t val = htons(2);
memcpy(rdata_tail, &val, 2);
@@ -58603,14 +60106,36 @@ tr2105:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
+ }
+ }
+ {
+ s->buffer_length = 0;
+ }
+ goto st638;
+tr2174:
+ {
+ uint16_t val = htons(8);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ uint16_t val = htons(0);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ int ret = svcb_sort(s, rdata_tail);
+ if (ret != ZS_OK) {
+ WARN(ret);
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st611;
-tr2123:
+ goto st638;
+tr2192:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -58618,24 +60143,24 @@ tr2123:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st611;
-st611:
+ goto st638;
+st638:
if ( ++p == pe )
- goto _test_eof611;
-case 611:
+ goto _test_eof638;
+case 638:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -58655,11 +60180,11 @@ case 611:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1960;
+ goto tr2008;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1959;
- goto tr1921;
-tr1927:
+ goto tr2007;
+ goto tr1967;
+tr1973:
{
s->svcb.params_position = rdata_tail;
s->svcb.last_key = -1;
@@ -58668,44 +60193,44 @@ tr1927:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1430;
-tr1942:
+ goto st1478;
+tr1990:
{
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1430;
-tr1956:
+ goto st1478;
+tr2004:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->comma_list = false;
if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -58716,89 +60241,89 @@ tr1956:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1430;
-tr1979:
+ goto st1478;
+tr2023:
+ {
+ s->item_length = rdata_tail - s->item_length2_location - 2;
+
+ if (s->item_length <= MAX_ITEM_LENGTH2) {
+ uint16_t val = htons((uint16_t)(s->item_length));
+ memcpy(s->item_length2_location, &val, 2);
+ } else {
+ WARN(ZS_ITEM_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1430;
-tr1993:
- {
- s->item_length = rdata_tail - s->item_length2_location - 2;
-
- if (s->item_length <= MAX_ITEM_LENGTH2) {
- uint16_t val = htons((uint16_t)(s->item_length));
- memcpy(s->item_length2_location, &val, 2);
- } else {
- WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
- }
- }
+ goto st1478;
+tr2033:
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1430;
-tr2020:
+ goto st1478;
+tr2078:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -58811,40 +60336,40 @@ tr2020:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1430;
-tr2043:
+ goto st1478;
+tr2101:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -58857,28 +60382,28 @@ tr2043:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1430;
-tr2058:
+ goto st1478;
+tr2116:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -58886,7 +60411,7 @@ tr2058:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -58898,21 +60423,21 @@ tr2058:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1430;
-tr2083:
+ goto st1478;
+tr2140:
{
s->item_length = rdata_tail - s->item_length2_location - 2;
@@ -58921,7 +60446,7 @@ tr2083:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -58931,21 +60456,21 @@ tr2083:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1430;
-tr2106:
+ goto st1478;
+tr2163:
{
uint16_t val = htons(2);
memcpy(rdata_tail, &val, 2);
@@ -58960,21 +60485,50 @@ tr2106:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
+ }
+ }
+ {
+ int ret = svcb_check(s, rdata_tail);
+ if (ret != ZS_OK) {
+ WARN(ret);
+ p--; {goto st316;}
+ }
+ }
+ {
+ p--; {cs = stack[--top];goto _again;}
+ }
+ goto st1478;
+tr2175:
+ {
+ uint16_t val = htons(8);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ uint16_t val = htons(0);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ int ret = svcb_sort(s, rdata_tail);
+ if (ret != ZS_OK) {
+ WARN(ret);
+ p--; {goto st316;}
}
}
{
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1430;
-tr2124:
+ goto st1478;
+tr2193:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -58982,33 +60536,33 @@ tr2124:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1430;
-st1430:
+ goto st1478;
+st1478:
if ( ++p == pe )
- goto _test_eof1430;
-case 1430:
+ goto _test_eof1478;
+case 1478:
goto st0;
-tr1928:
+tr1974:
{
s->svcb.params_position = rdata_tail;
s->svcb.last_key = -1;
@@ -59020,14 +60574,14 @@ tr1928:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1431;
-tr1943:
+ goto st1479;
+tr1991:
{
s->line_counter++;
}
@@ -59035,32 +60589,32 @@ tr1943:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1431;
-tr1957:
+ goto st1479;
+tr2005:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->comma_list = false;
if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59071,14 +60625,14 @@ tr1957:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59088,19 +60642,30 @@ tr1957:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1431;
-tr1980:
+ goto st1479;
+tr2024:
+ {
+ s->item_length = rdata_tail - s->item_length2_location - 2;
+
+ if (s->item_length <= MAX_ITEM_LENGTH2) {
+ uint16_t val = htons((uint16_t)(s->item_length));
+ memcpy(s->item_length2_location, &val, 2);
+ } else {
+ WARN(ZS_ITEM_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59110,30 +60675,19 @@ tr1980:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1431;
-tr1994:
- {
- s->item_length = rdata_tail - s->item_length2_location - 2;
-
- if (s->item_length <= MAX_ITEM_LENGTH2) {
- uint16_t val = htons((uint16_t)(s->item_length));
- memcpy(s->item_length2_location, &val, 2);
- } else {
- WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
- }
- }
+ goto st1479;
+tr2034:
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59143,26 +60697,26 @@ tr1994:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1431;
-tr2021:
+ goto st1479;
+tr2079:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -59175,14 +60729,14 @@ tr2021:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59192,26 +60746,26 @@ tr2021:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1431;
-tr2044:
+ goto st1479;
+tr2102:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -59224,14 +60778,14 @@ tr2044:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59241,14 +60795,14 @@ tr2044:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1431;
-tr2059:
+ goto st1479;
+tr2117:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -59256,7 +60810,7 @@ tr2059:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59268,7 +60822,7 @@ tr2059:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59278,14 +60832,14 @@ tr2059:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1431;
-tr2084:
+ goto st1479;
+tr2141:
{
s->item_length = rdata_tail - s->item_length2_location - 2;
@@ -59294,7 +60848,7 @@ tr2084:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59304,7 +60858,7 @@ tr2084:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59314,14 +60868,14 @@ tr2084:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1431;
-tr2107:
+ goto st1479;
+tr2164:
{
uint16_t val = htons(2);
memcpy(rdata_tail, &val, 2);
@@ -59336,7 +60890,7 @@ tr2107:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59346,14 +60900,46 @@ tr2107:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1431;
-tr2125:
+ goto st1479;
+tr2176:
+ {
+ uint16_t val = htons(8);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ uint16_t val = htons(0);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ int ret = svcb_sort(s, rdata_tail);
+ if (ret != ZS_OK) {
+ WARN(ret);
+ p--; {goto st316;}
+ }
+ }
+ {
+ s->line_counter++;
+ }
+ {
+ int ret = svcb_check(s, rdata_tail);
+ if (ret != ZS_OK) {
+ WARN(ret);
+ p--; {goto st316;}
+ }
+ }
+ {
+ p--; {cs = stack[--top];goto _again;}
+ }
+ goto st1479;
+tr2194:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -59361,14 +60947,14 @@ tr2125:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59378,17 +60964,17 @@ tr2125:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1431;
-st1431:
+ goto st1479;
+st1479:
if ( ++p == pe )
- goto _test_eof1431;
-case 1431:
+ goto _test_eof1479;
+case 1479:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -59406,354 +60992,123 @@ case 1431:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st604;
- case 32: goto st604;
- case 40: goto tr1931;
- case 41: goto tr1932;
- case 97: goto tr1933;
- case 101: goto tr1934;
- case 105: goto tr1935;
- case 107: goto tr1936;
- case 109: goto tr1937;
- case 110: goto tr1938;
- case 112: goto tr1939;
- case 3082: goto tr1940;
- case 3131: goto tr1941;
- case 3338: goto tr1942;
- case 3387: goto tr1942;
- case 3594: goto tr1943;
- case 3643: goto tr1944;
- }
- goto tr1921;
-tr1934:
+ case 9: goto st631;
+ case 32: goto st631;
+ case 40: goto tr1977;
+ case 41: goto tr1978;
+ case 97: goto tr1979;
+ case 100: goto tr1980;
+ case 101: goto tr1981;
+ case 105: goto tr1982;
+ case 107: goto tr1983;
+ case 109: goto tr1984;
+ case 110: goto tr1985;
+ case 111: goto tr1986;
+ case 112: goto tr1987;
+ case 3082: goto tr1988;
+ case 3131: goto tr1989;
+ case 3338: goto tr1990;
+ case 3387: goto tr1990;
+ case 3594: goto tr1991;
+ case 3643: goto tr1992;
+ }
+ goto tr1967;
+tr1980:
{
if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->svcb.param_position = rdata_tail;
}
- goto st612;
-st612:
+ goto st639;
+st639:
if ( ++p == pe )
- goto _test_eof612;
-case 612:
- if ( (*p) == 99 )
- goto st613;
- goto tr1921;
-st613:
+ goto _test_eof639;
+case 639:
+ if ( (*p) == 111 )
+ goto st640;
+ goto tr1967;
+st640:
if ( ++p == pe )
- goto _test_eof613;
-case 613:
+ goto _test_eof640;
+case 640:
if ( (*p) == 104 )
- goto st614;
- goto tr1921;
-st614:
+ goto st641;
+ goto tr1967;
+st641:
if ( ++p == pe )
- goto _test_eof614;
-case 614:
+ goto _test_eof641;
+case 641:
+ if ( (*p) == 112 )
+ goto st642;
+ goto tr1967;
+st642:
+ if ( ++p == pe )
+ goto _test_eof642;
+case 642:
+ if ( (*p) == 97 )
+ goto st643;
+ goto tr1967;
+st643:
+ if ( ++p == pe )
+ goto _test_eof643;
+case 643:
+ if ( (*p) == 116 )
+ goto st644;
+ goto tr1967;
+st644:
+ if ( ++p == pe )
+ goto _test_eof644;
+case 644:
+ if ( (*p) == 104 )
+ goto st645;
+ goto tr1967;
+st645:
+ if ( ++p == pe )
+ goto _test_eof645;
+case 645:
if ( (*p) == 61 )
- goto tr1963;
- goto tr1921;
-tr1963:
+ goto tr2015;
+ goto tr1967;
+tr2015:
{
- uint16_t val = htons(5);
+ uint16_t val = htons(7);
memcpy(rdata_tail, &val, 2);
rdata_tail += 2;
}
- goto st615;
-st615:
+ goto st646;
+st646:
if ( ++p == pe )
- goto _test_eof615;
-case 615:
+ goto _test_eof646;
+case 646:
switch( (*p) ) {
- case 34: goto st616;
- case 43: goto tr1965;
- }
- if ( (*p) < 65 ) {
- if ( 47 <= (*p) && (*p) <= 57 )
- goto tr1965;
- } else if ( (*p) > 90 ) {
- if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1965;
- } else
- goto tr1965;
- goto tr1921;
-st616:
- if ( ++p == pe )
- goto _test_eof616;
-case 616:
- if ( (*p) == 43 )
- goto tr1966;
- if ( (*p) < 65 ) {
- if ( 47 <= (*p) && (*p) <= 57 )
- goto tr1966;
- } else if ( (*p) > 90 ) {
- if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1966;
- } else
- goto tr1966;
- goto tr1921;
-tr1973:
- {
- if (rdata_tail <= rdata_stop) {
- *rdata_tail = first_base64_to_num[(uint8_t)(*p)];
- } else {
- WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
- }
+ case 32: goto tr1967;
+ case 34: goto tr2017;
+ case 59: goto tr1967;
}
- goto st617;
-tr1966:
+ if ( (*p) > 10 ) {
+ if ( 40 <= (*p) && (*p) <= 41 )
+ goto tr1967;
+ } else if ( (*p) >= 9 )
+ goto tr1967;
+ goto tr2016;
+tr2016:
{
if (rdata_tail < rdata_stop) {
s->item_length2_location = rdata_tail;
rdata_tail += 2;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
- }
- }
- {
- if (rdata_tail <= rdata_stop) {
- *rdata_tail = first_base64_to_num[(uint8_t)(*p)];
- } else {
- WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
- }
- }
- goto st617;
-st617:
- if ( ++p == pe )
- goto _test_eof617;
-case 617:
- if ( (*p) == 43 )
- goto tr1967;
- if ( (*p) < 65 ) {
- if ( 47 <= (*p) && (*p) <= 57 )
- goto tr1967;
- } else if ( (*p) > 90 ) {
- if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1967;
- } else
- goto tr1967;
- goto tr1921;
-tr1967:
- {
- *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)];
-
- if (rdata_tail <= rdata_stop) {
- *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)];
- } else {
- WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
- }
- }
- goto st618;
-st618:
- if ( ++p == pe )
- goto _test_eof618;
-case 618:
- switch( (*p) ) {
- case 43: goto tr1968;
- case 61: goto st622;
- }
- if ( (*p) < 65 ) {
- if ( 47 <= (*p) && (*p) <= 57 )
- goto tr1968;
- } else if ( (*p) > 90 ) {
- if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1968;
- } else
- goto tr1968;
- goto tr1921;
-tr1968:
- {
- *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)];
-
- if (rdata_tail <= rdata_stop) {
- *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)];
- } else {
- WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
- }
- }
- goto st619;
-st619:
- if ( ++p == pe )
- goto _test_eof619;
-case 619:
- switch( (*p) ) {
- case 43: goto tr1970;
- case 61: goto st620;
- }
- if ( (*p) < 65 ) {
- if ( 47 <= (*p) && (*p) <= 57 )
- goto tr1970;
- } else if ( (*p) > 90 ) {
- if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1970;
- } else
- goto tr1970;
- goto tr1921;
-tr1970:
- {
- *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)];
- }
- goto st620;
-st620:
- if ( ++p == pe )
- goto _test_eof620;
-case 620:
- switch( (*p) ) {
- case 34: goto tr1972;
- case 43: goto tr1973;
- }
- if ( (*p) < 65 ) {
- if ( 47 <= (*p) && (*p) <= 57 )
- goto tr1973;
- } else if ( (*p) > 90 ) {
- if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1973;
- } else
- goto tr1973;
- goto tr1921;
-tr1972:
- {
- s->item_length = rdata_tail - s->item_length2_location - 2;
-
- if (s->item_length <= MAX_ITEM_LENGTH2) {
- uint16_t val = htons((uint16_t)(s->item_length));
- memcpy(s->item_length2_location, &val, 2);
- } else {
- WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
- }
- }
- goto st621;
-tr2009:
- {
- s->buffer[s->buffer_length] = 0;
-
- if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
- WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
- }
- }
- {
- if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
- WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
- }
- memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
- rdata_tail += ZS_INET4_ADDR_LENGTH;
- }
- {
- s->item_length = rdata_tail - s->item_length2_location - 2;
-
- if (s->item_length <= MAX_ITEM_LENGTH2) {
- uint16_t val = htons((uint16_t)(s->item_length));
- memcpy(s->item_length2_location, &val, 2);
- } else {
- WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
- }
- }
- goto st621;
-tr2032:
- {
- s->buffer[s->buffer_length] = 0;
-
- if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
- WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
- }
- }
- {
- if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
- WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
- }
- memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
- rdata_tail += ZS_INET6_ADDR_LENGTH;
- }
- {
- s->item_length = rdata_tail - s->item_length2_location - 2;
-
- if (s->item_length <= MAX_ITEM_LENGTH2) {
- uint16_t val = htons((uint16_t)(s->item_length));
- memcpy(s->item_length2_location, &val, 2);
- } else {
- WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
- }
- }
- goto st621;
-tr2116:
- {
- if (s->number64 <= UINT16_MAX) {
- uint16_t num16 = htons((uint16_t)s->number64);
- memcpy(rdata_tail, &num16, 2);
- rdata_tail += 2;
- } else {
- WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
- }
- }
- goto st621;
-tr2074:
- {
- s->item_length = rdata_tail - s->item_length2_location - 2;
-
- if (s->item_length <= MAX_ITEM_LENGTH2) {
- uint16_t val = htons((uint16_t)(s->item_length));
- memcpy(s->item_length2_location, &val, 2);
- } else {
- WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- {
- svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail);
- }
- goto st621;
-tr2128:
- {
- s->item_length = rdata_tail - s->item_length_location - 1;
- if (s->comma_list && s->item_length == 0) {
- WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
- }
- if (s->item_length <= MAX_ITEM_LENGTH) {
- *(s->item_length_location) = (uint8_t)(s->item_length);
- } else {
- WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
- }
- }
- {
- s->comma_list = false;
- if (s->pending_backslash) {
- WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
- }
- }
- {
- s->item_length = rdata_tail - s->item_length2_location - 2;
-
- if (s->item_length <= MAX_ITEM_LENGTH2) {
- uint16_t val = htons((uint16_t)(s->item_length));
- memcpy(s->item_length2_location, &val, 2);
- } else {
- WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
- }
- }
- goto st621;
-st621:
+ { p--; {stack[top++] = 647;goto st327;} }
+ goto st647;
+st647:
if ( ++p == pe )
- goto _test_eof621;
-case 621:
+ goto _test_eof647;
+case 647:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -59771,19 +61126,19 @@ case 621:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1974;
- case 32: goto tr1974;
- case 40: goto tr1975;
- case 41: goto tr1976;
- case 3082: goto tr1977;
- case 3131: goto tr1978;
- case 3338: goto tr1979;
- case 3387: goto tr1979;
- case 3594: goto tr1980;
- case 3643: goto tr1981;
+ case 9: goto tr2018;
+ case 32: goto tr2018;
+ case 40: goto tr2019;
+ case 41: goto tr2020;
+ case 3082: goto tr2021;
+ case 3131: goto tr2022;
+ case 3338: goto tr2023;
+ case 3387: goto tr2023;
+ case 3594: goto tr2024;
+ case 3643: goto tr2025;
}
- goto tr1921;
-tr1929:
+ goto tr1967;
+tr1975:
{
s->svcb.params_position = rdata_tail;
s->svcb.last_key = -1;
@@ -59795,14 +61150,14 @@ tr1929:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1432;
-tr1944:
+ goto st1480;
+tr1992:
{
s->buffer_length = 0;
}
@@ -59810,32 +61165,32 @@ tr1944:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1432;
-tr1958:
+ goto st1480;
+tr2006:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->comma_list = false;
if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59846,14 +61201,14 @@ tr1958:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59863,19 +61218,30 @@ tr1958:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1432;
-tr1981:
+ goto st1480;
+tr2025:
+ {
+ s->item_length = rdata_tail - s->item_length2_location - 2;
+
+ if (s->item_length <= MAX_ITEM_LENGTH2) {
+ uint16_t val = htons((uint16_t)(s->item_length));
+ memcpy(s->item_length2_location, &val, 2);
+ } else {
+ WARN(ZS_ITEM_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59885,30 +61251,19 @@ tr1981:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1432;
-tr1995:
- {
- s->item_length = rdata_tail - s->item_length2_location - 2;
-
- if (s->item_length <= MAX_ITEM_LENGTH2) {
- uint16_t val = htons((uint16_t)(s->item_length));
- memcpy(s->item_length2_location, &val, 2);
- } else {
- WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
- }
- }
+ goto st1480;
+tr2035:
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59918,26 +61273,26 @@ tr1995:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1432;
-tr2022:
+ goto st1480;
+tr2080:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -59950,14 +61305,14 @@ tr2022:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -59967,26 +61322,26 @@ tr2022:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1432;
-tr2045:
+ goto st1480;
+tr2103:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -59999,14 +61354,14 @@ tr2045:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -60016,14 +61371,14 @@ tr2045:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1432;
-tr2060:
+ goto st1480;
+tr2118:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -60031,7 +61386,7 @@ tr2060:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -60043,7 +61398,7 @@ tr2060:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -60053,14 +61408,14 @@ tr2060:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1432;
-tr2085:
+ goto st1480;
+tr2142:
{
s->item_length = rdata_tail - s->item_length2_location - 2;
@@ -60069,7 +61424,7 @@ tr2085:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -60079,7 +61434,7 @@ tr2085:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -60089,14 +61444,14 @@ tr2085:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1432;
-tr2108:
+ goto st1480;
+tr2165:
{
uint16_t val = htons(2);
memcpy(rdata_tail, &val, 2);
@@ -60111,7 +61466,7 @@ tr2108:
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -60121,14 +61476,46 @@ tr2108:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1432;
-tr2126:
+ goto st1480;
+tr2177:
+ {
+ uint16_t val = htons(8);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ uint16_t val = htons(0);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ int ret = svcb_sort(s, rdata_tail);
+ if (ret != ZS_OK) {
+ WARN(ret);
+ p--; {goto st316;}
+ }
+ }
+ {
+ s->buffer_length = 0;
+ }
+ {
+ int ret = svcb_check(s, rdata_tail);
+ if (ret != ZS_OK) {
+ WARN(ret);
+ p--; {goto st316;}
+ }
+ }
+ {
+ p--; {cs = stack[--top];goto _again;}
+ }
+ goto st1480;
+tr2195:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -60136,14 +61523,14 @@ tr2126:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -60153,17 +61540,17 @@ tr2126:
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1432;
-st1432:
+ goto st1480;
+st1480:
if ( ++p == pe )
- goto _test_eof1432;
-case 1432:
+ goto _test_eof1480;
+case 1480:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -60183,35 +61570,334 @@ case 1432:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr1960;
+ goto tr2008;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr1959;
- goto tr1921;
-st622:
+ goto tr2007;
+ goto tr1967;
+tr2017:
+ {
+ if (rdata_tail < rdata_stop) {
+ s->item_length2_location = rdata_tail;
+ rdata_tail += 2;
+ } else {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ { p--; {stack[top++] = 648;goto st327;} }
+ goto st648;
+st648:
if ( ++p == pe )
- goto _test_eof622;
-case 622:
+ goto _test_eof648;
+case 648:
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ switch( _widec ) {
+ case 9: goto tr2018;
+ case 32: goto tr2018;
+ case 40: goto tr2019;
+ case 41: goto tr2020;
+ case 3082: goto tr2021;
+ case 3131: goto tr2022;
+ case 3338: goto tr2023;
+ case 3387: goto tr2023;
+ case 3594: goto tr2024;
+ case 3643: goto tr2025;
+ }
+ if ( _widec < 11 ) {
+ if ( _widec <= 8 )
+ goto tr2026;
+ } else if ( _widec > 58 ) {
+ if ( 60 <= _widec )
+ goto tr2026;
+ } else
+ goto tr2026;
+ goto tr1967;
+tr2026:
+ {
+ if (rdata_tail < rdata_stop) {
+ s->item_length2_location = rdata_tail;
+ rdata_tail += 2;
+ } else {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ { p--; {stack[top++] = 649;goto st327;} }
+ goto st649;
+st649:
+ if ( ++p == pe )
+ goto _test_eof649;
+case 649:
+ if ( (*p) == 34 )
+ goto tr2027;
+ goto tr1967;
+tr2027:
+ {
+ s->item_length = rdata_tail - s->item_length2_location - 2;
+
+ if (s->item_length <= MAX_ITEM_LENGTH2) {
+ uint16_t val = htons((uint16_t)(s->item_length));
+ memcpy(s->item_length2_location, &val, 2);
+ } else {
+ WARN(ZS_ITEM_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ goto st650;
+tr2067:
+ {
+ s->buffer[s->buffer_length] = 0;
+
+ if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
+ WARN(ZS_BAD_IPV4);
+ p--; {goto st316;}
+ }
+ }
+ {
+ if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
+ rdata_tail += ZS_INET4_ADDR_LENGTH;
+ }
+ {
+ s->item_length = rdata_tail - s->item_length2_location - 2;
+
+ if (s->item_length <= MAX_ITEM_LENGTH2) {
+ uint16_t val = htons((uint16_t)(s->item_length));
+ memcpy(s->item_length2_location, &val, 2);
+ } else {
+ WARN(ZS_ITEM_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ goto st650;
+tr2090:
+ {
+ s->buffer[s->buffer_length] = 0;
+
+ if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
+ WARN(ZS_BAD_IPV6);
+ p--; {goto st316;}
+ }
+ }
+ {
+ if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
+ rdata_tail += ZS_INET6_ADDR_LENGTH;
+ }
+ {
+ s->item_length = rdata_tail - s->item_length2_location - 2;
+
+ if (s->item_length <= MAX_ITEM_LENGTH2) {
+ uint16_t val = htons((uint16_t)(s->item_length));
+ memcpy(s->item_length2_location, &val, 2);
+ } else {
+ WARN(ZS_ITEM_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ goto st650;
+tr2185:
+ {
+ if (s->number64 <= UINT16_MAX) {
+ uint16_t num16 = htons((uint16_t)s->number64);
+ memcpy(rdata_tail, &num16, 2);
+ rdata_tail += 2;
+ } else {
+ WARN(ZS_NUMBER16_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ goto st650;
+tr2131:
+ {
+ s->item_length = rdata_tail - s->item_length2_location - 2;
+
+ if (s->item_length <= MAX_ITEM_LENGTH2) {
+ uint16_t val = htons((uint16_t)(s->item_length));
+ memcpy(s->item_length2_location, &val, 2);
+ } else {
+ WARN(ZS_ITEM_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ {
+ svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail);
+ }
+ goto st650;
+tr2197:
+ {
+ s->item_length = rdata_tail - s->item_length_location - 1;
+ if (s->comma_list && s->item_length == 0) {
+ WARN(ZS_EMPTY_LIST_ITEM);
+ p--; {goto st316;}
+ }
+ if (s->item_length <= MAX_ITEM_LENGTH) {
+ *(s->item_length_location) = (uint8_t)(s->item_length);
+ } else {
+ WARN(ZS_ITEM_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ {
+ s->comma_list = false;
+ if (s->pending_backslash) {
+ WARN(ZS_BAD_ALPN_BACKSLASH);
+ p--; {goto st316;}
+ }
+ }
+ {
+ s->item_length = rdata_tail - s->item_length2_location - 2;
+
+ if (s->item_length <= MAX_ITEM_LENGTH2) {
+ uint16_t val = htons((uint16_t)(s->item_length));
+ memcpy(s->item_length2_location, &val, 2);
+ } else {
+ WARN(ZS_ITEM_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ goto st650;
+st650:
+ if ( ++p == pe )
+ goto _test_eof650;
+case 650:
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ switch( _widec ) {
+ case 9: goto tr2028;
+ case 32: goto tr2028;
+ case 40: goto tr2029;
+ case 41: goto tr2030;
+ case 3082: goto tr2031;
+ case 3131: goto tr2032;
+ case 3338: goto tr2033;
+ case 3387: goto tr2033;
+ case 3594: goto tr2034;
+ case 3643: goto tr2035;
+ }
+ goto tr1967;
+tr1981:
+ {
+ if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ s->svcb.param_position = rdata_tail;
+ }
+ goto st651;
+st651:
+ if ( ++p == pe )
+ goto _test_eof651;
+case 651:
+ if ( (*p) == 99 )
+ goto st652;
+ goto tr1967;
+st652:
+ if ( ++p == pe )
+ goto _test_eof652;
+case 652:
+ if ( (*p) == 104 )
+ goto st653;
+ goto tr1967;
+st653:
+ if ( ++p == pe )
+ goto _test_eof653;
+case 653:
if ( (*p) == 61 )
- goto st620;
- goto tr1921;
-tr1990:
+ goto tr2038;
+ goto tr1967;
+tr2038:
+ {
+ uint16_t val = htons(5);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ goto st654;
+st654:
+ if ( ++p == pe )
+ goto _test_eof654;
+case 654:
+ switch( (*p) ) {
+ case 34: goto st655;
+ case 43: goto tr2040;
+ }
+ if ( (*p) < 65 ) {
+ if ( 47 <= (*p) && (*p) <= 57 )
+ goto tr2040;
+ } else if ( (*p) > 90 ) {
+ if ( 97 <= (*p) && (*p) <= 122 )
+ goto tr2040;
+ } else
+ goto tr2040;
+ goto tr1967;
+st655:
+ if ( ++p == pe )
+ goto _test_eof655;
+case 655:
+ if ( (*p) == 43 )
+ goto tr2041;
+ if ( (*p) < 65 ) {
+ if ( 47 <= (*p) && (*p) <= 57 )
+ goto tr2041;
+ } else if ( (*p) > 90 ) {
+ if ( 97 <= (*p) && (*p) <= 122 )
+ goto tr2041;
+ } else
+ goto tr2041;
+ goto tr1967;
+tr2047:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_base64_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st623;
-tr1965:
+ goto st656;
+tr2041:
{
if (rdata_tail < rdata_stop) {
s->item_length2_location = rdata_tail;
rdata_tail += 2;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -60219,26 +61905,26 @@ tr1965:
*rdata_tail = first_base64_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st623;
-st623:
+ goto st656;
+st656:
if ( ++p == pe )
- goto _test_eof623;
-case 623:
+ goto _test_eof656;
+case 656:
if ( (*p) == 43 )
- goto tr1982;
+ goto tr2042;
if ( (*p) < 65 ) {
if ( 47 <= (*p) && (*p) <= 57 )
- goto tr1982;
+ goto tr2042;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1982;
+ goto tr2042;
} else
- goto tr1982;
- goto tr1921;
-tr1982:
+ goto tr2042;
+ goto tr1967;
+tr2042:
{
*(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)];
@@ -60246,28 +61932,28 @@ tr1982:
*rdata_tail = second_right_base64_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st624;
-st624:
+ goto st657;
+st657:
if ( ++p == pe )
- goto _test_eof624;
-case 624:
+ goto _test_eof657;
+case 657:
switch( (*p) ) {
- case 43: goto tr1983;
- case 61: goto st627;
+ case 43: goto tr2043;
+ case 61: goto st660;
}
if ( (*p) < 65 ) {
if ( 47 <= (*p) && (*p) <= 57 )
- goto tr1983;
+ goto tr2043;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1983;
+ goto tr2043;
} else
- goto tr1983;
- goto tr1921;
-tr1983:
+ goto tr2043;
+ goto tr1967;
+tr2043:
{
*(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)];
@@ -60275,36 +61961,167 @@ tr1983:
*rdata_tail = third_right_base64_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st625;
-st625:
+ goto st658;
+st658:
if ( ++p == pe )
- goto _test_eof625;
-case 625:
+ goto _test_eof658;
+case 658:
switch( (*p) ) {
- case 43: goto tr1985;
- case 61: goto st626;
+ case 43: goto tr2045;
+ case 61: goto st659;
}
if ( (*p) < 65 ) {
if ( 47 <= (*p) && (*p) <= 57 )
- goto tr1985;
+ goto tr2045;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr1985;
+ goto tr2045;
} else
- goto tr1985;
- goto tr1921;
-tr1985:
+ goto tr2045;
+ goto tr1967;
+tr2045:
{
*(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)];
}
- goto st626;
-st626:
+ goto st659;
+st659:
if ( ++p == pe )
- goto _test_eof626;
-case 626:
+ goto _test_eof659;
+case 659:
+ switch( (*p) ) {
+ case 34: goto tr2027;
+ case 43: goto tr2047;
+ }
+ if ( (*p) < 65 ) {
+ if ( 47 <= (*p) && (*p) <= 57 )
+ goto tr2047;
+ } else if ( (*p) > 90 ) {
+ if ( 97 <= (*p) && (*p) <= 122 )
+ goto tr2047;
+ } else
+ goto tr2047;
+ goto tr1967;
+st660:
+ if ( ++p == pe )
+ goto _test_eof660;
+case 660:
+ if ( (*p) == 61 )
+ goto st659;
+ goto tr1967;
+tr2053:
+ {
+ if (rdata_tail <= rdata_stop) {
+ *rdata_tail = first_base64_to_num[(uint8_t)(*p)];
+ } else {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ goto st661;
+tr2040:
+ {
+ if (rdata_tail < rdata_stop) {
+ s->item_length2_location = rdata_tail;
+ rdata_tail += 2;
+ } else {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ {
+ if (rdata_tail <= rdata_stop) {
+ *rdata_tail = first_base64_to_num[(uint8_t)(*p)];
+ } else {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ goto st661;
+st661:
+ if ( ++p == pe )
+ goto _test_eof661;
+case 661:
+ if ( (*p) == 43 )
+ goto tr2048;
+ if ( (*p) < 65 ) {
+ if ( 47 <= (*p) && (*p) <= 57 )
+ goto tr2048;
+ } else if ( (*p) > 90 ) {
+ if ( 97 <= (*p) && (*p) <= 122 )
+ goto tr2048;
+ } else
+ goto tr2048;
+ goto tr1967;
+tr2048:
+ {
+ *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)];
+
+ if (rdata_tail <= rdata_stop) {
+ *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)];
+ } else {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ goto st662;
+st662:
+ if ( ++p == pe )
+ goto _test_eof662;
+case 662:
+ switch( (*p) ) {
+ case 43: goto tr2049;
+ case 61: goto st665;
+ }
+ if ( (*p) < 65 ) {
+ if ( 47 <= (*p) && (*p) <= 57 )
+ goto tr2049;
+ } else if ( (*p) > 90 ) {
+ if ( 97 <= (*p) && (*p) <= 122 )
+ goto tr2049;
+ } else
+ goto tr2049;
+ goto tr1967;
+tr2049:
+ {
+ *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)];
+
+ if (rdata_tail <= rdata_stop) {
+ *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)];
+ } else {
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ }
+ goto st663;
+st663:
+ if ( ++p == pe )
+ goto _test_eof663;
+case 663:
+ switch( (*p) ) {
+ case 43: goto tr2051;
+ case 61: goto st664;
+ }
+ if ( (*p) < 65 ) {
+ if ( 47 <= (*p) && (*p) <= 57 )
+ goto tr2051;
+ } else if ( (*p) > 90 ) {
+ if ( 97 <= (*p) && (*p) <= 122 )
+ goto tr2051;
+ } else
+ goto tr2051;
+ goto tr1967;
+tr2051:
+ {
+ *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)];
+ }
+ goto st664;
+st664:
+ if ( ++p == pe )
+ goto _test_eof664;
+case 664:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -60322,136 +62139,136 @@ case 626:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1987;
- case 32: goto tr1987;
- case 40: goto tr1988;
- case 41: goto tr1989;
- case 43: goto tr1990;
- case 3082: goto tr1991;
- case 3131: goto tr1992;
- case 3338: goto tr1993;
- case 3387: goto tr1993;
- case 3594: goto tr1994;
- case 3643: goto tr1995;
+ case 9: goto tr2018;
+ case 32: goto tr2018;
+ case 40: goto tr2019;
+ case 41: goto tr2020;
+ case 43: goto tr2053;
+ case 3082: goto tr2021;
+ case 3131: goto tr2022;
+ case 3338: goto tr2023;
+ case 3387: goto tr2023;
+ case 3594: goto tr2024;
+ case 3643: goto tr2025;
}
if ( _widec < 65 ) {
if ( 47 <= _widec && _widec <= 57 )
- goto tr1990;
+ goto tr2053;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr1990;
+ goto tr2053;
} else
- goto tr1990;
- goto tr1921;
-st627:
+ goto tr2053;
+ goto tr1967;
+st665:
if ( ++p == pe )
- goto _test_eof627;
-case 627:
+ goto _test_eof665;
+case 665:
if ( (*p) == 61 )
- goto st626;
- goto tr1921;
-tr1935:
+ goto st664;
+ goto tr1967;
+tr1982:
{
if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->svcb.param_position = rdata_tail;
}
- goto st628;
-st628:
+ goto st666;
+st666:
if ( ++p == pe )
- goto _test_eof628;
-case 628:
+ goto _test_eof666;
+case 666:
if ( (*p) == 112 )
- goto st629;
- goto tr1921;
-st629:
+ goto st667;
+ goto tr1967;
+st667:
if ( ++p == pe )
- goto _test_eof629;
-case 629:
+ goto _test_eof667;
+case 667:
if ( (*p) == 118 )
- goto st630;
- goto tr1921;
-st630:
+ goto st668;
+ goto tr1967;
+st668:
if ( ++p == pe )
- goto _test_eof630;
-case 630:
+ goto _test_eof668;
+case 668:
switch( (*p) ) {
- case 52: goto st631;
- case 54: goto st642;
+ case 52: goto st669;
+ case 54: goto st680;
}
- goto tr1921;
-st631:
+ goto tr1967;
+st669:
if ( ++p == pe )
- goto _test_eof631;
-case 631:
+ goto _test_eof669;
+case 669:
if ( (*p) == 104 )
- goto st632;
- goto tr1921;
-st632:
+ goto st670;
+ goto tr1967;
+st670:
if ( ++p == pe )
- goto _test_eof632;
-case 632:
+ goto _test_eof670;
+case 670:
if ( (*p) == 105 )
- goto st633;
- goto tr1921;
-st633:
+ goto st671;
+ goto tr1967;
+st671:
if ( ++p == pe )
- goto _test_eof633;
-case 633:
+ goto _test_eof671;
+case 671:
if ( (*p) == 110 )
- goto st634;
- goto tr1921;
-st634:
+ goto st672;
+ goto tr1967;
+st672:
if ( ++p == pe )
- goto _test_eof634;
-case 634:
+ goto _test_eof672;
+case 672:
if ( (*p) == 116 )
- goto st635;
- goto tr1921;
-st635:
+ goto st673;
+ goto tr1967;
+st673:
if ( ++p == pe )
- goto _test_eof635;
-case 635:
+ goto _test_eof673;
+case 673:
if ( (*p) == 61 )
- goto tr2004;
- goto tr1921;
-tr2004:
+ goto tr2062;
+ goto tr1967;
+tr2062:
{
uint16_t val = htons(4);
memcpy(rdata_tail, &val, 2);
rdata_tail += 2;
}
- goto st636;
-st636:
+ goto st674;
+st674:
if ( ++p == pe )
- goto _test_eof636;
-case 636:
+ goto _test_eof674;
+case 674:
switch( (*p) ) {
- case 34: goto st637;
- case 46: goto tr2007;
+ case 34: goto st675;
+ case 46: goto tr2065;
}
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2007;
- goto tr2005;
-st637:
+ goto tr2065;
+ goto tr2063;
+st675:
if ( ++p == pe )
- goto _test_eof637;
-case 637:
+ goto _test_eof675;
+case 675:
if ( (*p) == 46 )
- goto tr2008;
+ goto tr2066;
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2008;
- goto tr2005;
-tr2008:
+ goto tr2066;
+ goto tr2063;
+tr2066:
{
if (rdata_tail < rdata_stop) {
s->item_length2_location = rdata_tail;
rdata_tail += 2;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -60462,21 +62279,21 @@ tr2008:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st638;
-tr2011:
+ goto st676;
+tr2069:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st638;
-tr2012:
+ goto st676;
+tr2070:
{
s->buffer_length = 0;
}
@@ -60485,57 +62302,57 @@ tr2012:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st638;
-st638:
+ goto st676;
+st676:
if ( ++p == pe )
- goto _test_eof638;
-case 638:
+ goto _test_eof676;
+case 676:
switch( (*p) ) {
- case 34: goto tr2009;
- case 44: goto tr2010;
- case 46: goto tr2011;
+ case 34: goto tr2067;
+ case 44: goto tr2068;
+ case 46: goto tr2069;
}
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2011;
- goto tr2005;
-tr2010:
+ goto tr2069;
+ goto tr2063;
+tr2068:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
}
- goto st639;
-st639:
+ goto st677;
+st677:
if ( ++p == pe )
- goto _test_eof639;
-case 639:
+ goto _test_eof677;
+case 677:
if ( (*p) == 46 )
- goto tr2012;
+ goto tr2070;
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2012;
- goto tr2005;
-tr2007:
+ goto tr2070;
+ goto tr2063;
+tr2065:
{
if (rdata_tail < rdata_stop) {
s->item_length2_location = rdata_tail;
rdata_tail += 2;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -60546,21 +62363,21 @@ tr2007:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st640;
-tr2017:
+ goto st678;
+tr2075:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st640;
-tr2023:
+ goto st678;
+tr2081:
{
s->buffer_length = 0;
}
@@ -60569,14 +62386,14 @@ tr2023:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st640;
-st640:
+ goto st678;
+st678:
if ( ++p == pe )
- goto _test_eof640;
-case 640:
+ goto _test_eof678;
+case 678:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -60594,131 +62411,131 @@ case 640:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2013;
- case 32: goto tr2013;
- case 40: goto tr2014;
- case 41: goto tr2015;
- case 44: goto tr2016;
- case 46: goto tr2017;
- case 3082: goto tr2018;
- case 3131: goto tr2019;
- case 3338: goto tr2020;
- case 3387: goto tr2020;
- case 3594: goto tr2021;
- case 3643: goto tr2022;
+ case 9: goto tr2071;
+ case 32: goto tr2071;
+ case 40: goto tr2072;
+ case 41: goto tr2073;
+ case 44: goto tr2074;
+ case 46: goto tr2075;
+ case 3082: goto tr2076;
+ case 3131: goto tr2077;
+ case 3338: goto tr2078;
+ case 3387: goto tr2078;
+ case 3594: goto tr2079;
+ case 3643: goto tr2080;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2017;
- goto tr2005;
-tr2016:
+ goto tr2075;
+ goto tr2063;
+tr2074:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
}
- goto st641;
-st641:
+ goto st679;
+st679:
if ( ++p == pe )
- goto _test_eof641;
-case 641:
+ goto _test_eof679;
+case 679:
if ( (*p) == 46 )
- goto tr2023;
+ goto tr2081;
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2023;
- goto tr2005;
-st642:
+ goto tr2081;
+ goto tr2063;
+st680:
if ( ++p == pe )
- goto _test_eof642;
-case 642:
+ goto _test_eof680;
+case 680:
if ( (*p) == 104 )
- goto st643;
- goto tr1921;
-st643:
+ goto st681;
+ goto tr1967;
+st681:
if ( ++p == pe )
- goto _test_eof643;
-case 643:
+ goto _test_eof681;
+case 681:
if ( (*p) == 105 )
- goto st644;
- goto tr1921;
-st644:
+ goto st682;
+ goto tr1967;
+st682:
if ( ++p == pe )
- goto _test_eof644;
-case 644:
+ goto _test_eof682;
+case 682:
if ( (*p) == 110 )
- goto st645;
- goto tr1921;
-st645:
+ goto st683;
+ goto tr1967;
+st683:
if ( ++p == pe )
- goto _test_eof645;
-case 645:
+ goto _test_eof683;
+case 683:
if ( (*p) == 116 )
- goto st646;
- goto tr1921;
-st646:
+ goto st684;
+ goto tr1967;
+st684:
if ( ++p == pe )
- goto _test_eof646;
-case 646:
+ goto _test_eof684;
+case 684:
if ( (*p) == 61 )
- goto tr2028;
- goto tr1921;
-tr2028:
+ goto tr2086;
+ goto tr1967;
+tr2086:
{
uint16_t val = htons(6);
memcpy(rdata_tail, &val, 2);
rdata_tail += 2;
}
- goto st647;
-st647:
+ goto st685;
+st685:
if ( ++p == pe )
- goto _test_eof647;
-case 647:
+ goto _test_eof685;
+case 685:
switch( (*p) ) {
- case 34: goto st648;
- case 46: goto tr2030;
+ case 34: goto st686;
+ case 46: goto tr2088;
}
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 58 )
- goto tr2030;
+ goto tr2088;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr2030;
+ goto tr2088;
} else
- goto tr2030;
- goto tr2005;
-st648:
+ goto tr2088;
+ goto tr2063;
+st686:
if ( ++p == pe )
- goto _test_eof648;
-case 648:
+ goto _test_eof686;
+case 686:
if ( (*p) == 46 )
- goto tr2031;
+ goto tr2089;
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 58 )
- goto tr2031;
+ goto tr2089;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr2031;
+ goto tr2089;
} else
- goto tr2031;
- goto tr2005;
-tr2031:
+ goto tr2089;
+ goto tr2063;
+tr2089:
{
if (rdata_tail < rdata_stop) {
s->item_length2_location = rdata_tail;
rdata_tail += 2;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -60729,21 +62546,21 @@ tr2031:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st649;
-tr2034:
+ goto st687;
+tr2092:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st649;
-tr2035:
+ goto st687;
+tr2093:
{
s->buffer_length = 0;
}
@@ -60752,69 +62569,69 @@ tr2035:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st649;
-st649:
+ goto st687;
+st687:
if ( ++p == pe )
- goto _test_eof649;
-case 649:
+ goto _test_eof687;
+case 687:
switch( (*p) ) {
- case 34: goto tr2032;
- case 44: goto tr2033;
- case 46: goto tr2034;
+ case 34: goto tr2090;
+ case 44: goto tr2091;
+ case 46: goto tr2092;
}
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 58 )
- goto tr2034;
+ goto tr2092;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr2034;
+ goto tr2092;
} else
- goto tr2034;
- goto tr2005;
-tr2033:
+ goto tr2092;
+ goto tr2063;
+tr2091:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
}
- goto st650;
-st650:
+ goto st688;
+st688:
if ( ++p == pe )
- goto _test_eof650;
-case 650:
+ goto _test_eof688;
+case 688:
if ( (*p) == 46 )
- goto tr2035;
+ goto tr2093;
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 58 )
- goto tr2035;
+ goto tr2093;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr2035;
+ goto tr2093;
} else
- goto tr2035;
- goto tr2005;
-tr2030:
+ goto tr2093;
+ goto tr2063;
+tr2088:
{
if (rdata_tail < rdata_stop) {
s->item_length2_location = rdata_tail;
rdata_tail += 2;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -60825,21 +62642,21 @@ tr2030:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st651;
-tr2040:
+ goto st689;
+tr2098:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st651;
-tr2046:
+ goto st689;
+tr2104:
{
s->buffer_length = 0;
}
@@ -60848,14 +62665,14 @@ tr2046:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st651;
-st651:
+ goto st689;
+st689:
if ( ++p == pe )
- goto _test_eof651;
-case 651:
+ goto _test_eof689;
+case 689:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -60873,92 +62690,92 @@ case 651:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2036;
- case 32: goto tr2036;
- case 40: goto tr2037;
- case 41: goto tr2038;
- case 44: goto tr2039;
- case 46: goto tr2040;
- case 3082: goto tr2041;
- case 3131: goto tr2042;
- case 3338: goto tr2043;
- case 3387: goto tr2043;
- case 3594: goto tr2044;
- case 3643: goto tr2045;
+ case 9: goto tr2094;
+ case 32: goto tr2094;
+ case 40: goto tr2095;
+ case 41: goto tr2096;
+ case 44: goto tr2097;
+ case 46: goto tr2098;
+ case 3082: goto tr2099;
+ case 3131: goto tr2100;
+ case 3338: goto tr2101;
+ case 3387: goto tr2101;
+ case 3594: goto tr2102;
+ case 3643: goto tr2103;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 58 )
- goto tr2040;
+ goto tr2098;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr2040;
+ goto tr2098;
} else
- goto tr2040;
- goto tr2005;
-tr2039:
+ goto tr2098;
+ goto tr2063;
+tr2097:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
}
- goto st652;
-st652:
+ goto st690;
+st690:
if ( ++p == pe )
- goto _test_eof652;
-case 652:
+ goto _test_eof690;
+case 690:
if ( (*p) == 46 )
- goto tr2046;
+ goto tr2104;
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 58 )
- goto tr2046;
+ goto tr2104;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr2046;
+ goto tr2104;
} else
- goto tr2046;
- goto tr2005;
-tr1936:
+ goto tr2104;
+ goto tr2063;
+tr1983:
{
if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->svcb.param_position = rdata_tail;
}
- goto st653;
-st653:
+ goto st691;
+st691:
if ( ++p == pe )
- goto _test_eof653;
-case 653:
+ goto _test_eof691;
+case 691:
if ( (*p) == 101 )
- goto st654;
- goto tr1921;
-st654:
+ goto st692;
+ goto tr1967;
+st692:
if ( ++p == pe )
- goto _test_eof654;
-case 654:
+ goto _test_eof692;
+case 692:
if ( (*p) == 121 )
- goto st655;
- goto tr1921;
-st655:
+ goto st693;
+ goto tr1967;
+st693:
if ( ++p == pe )
- goto _test_eof655;
-case 655:
+ goto _test_eof693;
+case 693:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2050;
- goto tr2049;
-tr2050:
+ goto tr2108;
+ goto tr2107;
+tr2108:
{
s->number64 = 0;
}
@@ -60973,11 +62790,11 @@ tr2050:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st656;
-tr2054:
+ goto st694;
+tr2112:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -60989,14 +62806,14 @@ tr2054:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st656;
-st656:
+ goto st694;
+st694:
if ( ++p == pe )
- goto _test_eof656;
-case 656:
+ goto _test_eof694;
+case 694:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -61014,22 +62831,22 @@ case 656:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2051;
- case 32: goto tr2051;
- case 40: goto tr2052;
- case 41: goto tr2053;
- case 61: goto tr2055;
- case 3082: goto tr2056;
- case 3131: goto tr2057;
- case 3338: goto tr2058;
- case 3387: goto tr2058;
- case 3594: goto tr2059;
- case 3643: goto tr2060;
+ case 9: goto tr2109;
+ case 32: goto tr2109;
+ case 40: goto tr2110;
+ case 41: goto tr2111;
+ case 61: goto tr2113;
+ case 3082: goto tr2114;
+ case 3131: goto tr2115;
+ case 3338: goto tr2116;
+ case 3387: goto tr2116;
+ case 3594: goto tr2117;
+ case 3643: goto tr2118;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2054;
- goto tr2049;
-tr2055:
+ goto tr2112;
+ goto tr2107;
+tr2113:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -61037,171 +62854,126 @@ tr2055:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st657;
-st657:
+ goto st695;
+st695:
if ( ++p == pe )
- goto _test_eof657;
-case 657:
+ goto _test_eof695;
+case 695:
switch( (*p) ) {
- case 32: goto tr1921;
- case 59: goto tr1921;
+ case 32: goto tr1967;
+ case 59: goto tr1967;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr1921;
+ goto tr1967;
} else if ( (*p) >= 9 )
- goto tr1921;
- goto tr2061;
-tr2061:
- {
- if (rdata_tail < rdata_stop) {
- s->item_length2_location = rdata_tail;
- rdata_tail += 2;
- } else {
- WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
- }
- }
- { p--; {stack[top++] = 658;goto st318;} }
- goto st658;
-st658:
- if ( ++p == pe )
- goto _test_eof658;
-case 658:
- _widec = (*p);
- if ( (*p) > 10 ) {
- if ( 59 <= (*p) && (*p) <= 59 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- } else if ( (*p) >= 10 ) {
- _widec = (short)(2688 + ((*p) - -128));
- if (
- s->multiline ) _widec += 256;
- if (
- !s->multiline ) _widec += 512;
- }
- switch( _widec ) {
- case 9: goto tr1987;
- case 32: goto tr1987;
- case 40: goto tr1988;
- case 41: goto tr1989;
- case 3082: goto tr1991;
- case 3131: goto tr1992;
- case 3338: goto tr1993;
- case 3387: goto tr1993;
- case 3594: goto tr1994;
- case 3643: goto tr1995;
- }
- goto tr1921;
-tr1937:
+ goto tr1967;
+ goto tr2016;
+tr1984:
{
if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->svcb.param_position = rdata_tail;
}
- goto st659;
-st659:
+ goto st696;
+st696:
if ( ++p == pe )
- goto _test_eof659;
-case 659:
+ goto _test_eof696;
+case 696:
if ( (*p) == 97 )
- goto st660;
- goto tr1921;
-st660:
+ goto st697;
+ goto tr1967;
+st697:
if ( ++p == pe )
- goto _test_eof660;
-case 660:
+ goto _test_eof697;
+case 697:
if ( (*p) == 110 )
- goto st661;
- goto tr1921;
-st661:
+ goto st698;
+ goto tr1967;
+st698:
if ( ++p == pe )
- goto _test_eof661;
-case 661:
+ goto _test_eof698;
+case 698:
if ( (*p) == 100 )
- goto st662;
- goto tr1921;
-st662:
+ goto st699;
+ goto tr1967;
+st699:
if ( ++p == pe )
- goto _test_eof662;
-case 662:
+ goto _test_eof699;
+case 699:
if ( (*p) == 97 )
- goto st663;
- goto tr1921;
-st663:
+ goto st700;
+ goto tr1967;
+st700:
if ( ++p == pe )
- goto _test_eof663;
-case 663:
+ goto _test_eof700;
+case 700:
if ( (*p) == 116 )
- goto st664;
- goto tr1921;
-st664:
+ goto st701;
+ goto tr1967;
+st701:
if ( ++p == pe )
- goto _test_eof664;
-case 664:
+ goto _test_eof701;
+case 701:
if ( (*p) == 111 )
- goto st665;
- goto tr1921;
-st665:
+ goto st702;
+ goto tr1967;
+st702:
if ( ++p == pe )
- goto _test_eof665;
-case 665:
+ goto _test_eof702;
+case 702:
if ( (*p) == 114 )
- goto st666;
- goto tr1921;
-st666:
+ goto st703;
+ goto tr1967;
+st703:
if ( ++p == pe )
- goto _test_eof666;
-case 666:
+ goto _test_eof703;
+case 703:
if ( (*p) == 121 )
- goto st667;
- goto tr1921;
-st667:
+ goto st704;
+ goto tr1967;
+st704:
if ( ++p == pe )
- goto _test_eof667;
-case 667:
+ goto _test_eof704;
+case 704:
if ( (*p) == 61 )
- goto tr2070;
- goto tr1921;
-tr2070:
+ goto tr2127;
+ goto tr1967;
+tr2127:
{
uint16_t val = htons(0);
memcpy(rdata_tail, &val, 2);
rdata_tail += 2;
}
- goto st668;
-st668:
+ goto st705;
+st705:
if ( ++p == pe )
- goto _test_eof668;
-case 668:
+ goto _test_eof705;
+case 705:
if ( (*p) == 34 )
- goto st669;
+ goto st706;
if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr2072;
+ goto tr2129;
} else if ( (*p) >= 65 )
- goto tr2072;
- goto tr1921;
-st669:
+ goto tr2129;
+ goto tr1967;
+st706:
if ( ++p == pe )
- goto _test_eof669;
-case 669:
+ goto _test_eof706;
+case 706:
if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr2073;
+ goto tr2130;
} else if ( (*p) >= 65 )
- goto tr2073;
- goto tr1921;
-tr2073:
+ goto tr2130;
+ goto tr1967;
+tr2130:
{
s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix.
}
@@ -61211,34 +62983,34 @@ tr2073:
rdata_tail += 2;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 670;goto st559;} }
- goto st670;
-tr2076:
- { p--; {stack[top++] = 670;goto st559;} }
- goto st670;
-st670:
+ { p--; {stack[top++] = 707;goto st574;} }
+ goto st707;
+tr2133:
+ { p--; {stack[top++] = 707;goto st574;} }
+ goto st707;
+st707:
if ( ++p == pe )
- goto _test_eof670;
-case 670:
+ goto _test_eof707;
+case 707:
switch( (*p) ) {
- case 34: goto tr2074;
- case 44: goto st671;
+ case 34: goto tr2131;
+ case 44: goto st708;
}
- goto tr1921;
-st671:
+ goto tr1967;
+st708:
if ( ++p == pe )
- goto _test_eof671;
-case 671:
+ goto _test_eof708;
+case 708:
if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr2076;
+ goto tr2133;
} else if ( (*p) >= 65 )
- goto tr2076;
- goto tr1921;
-tr2072:
+ goto tr2133;
+ goto tr1967;
+tr2129:
{
s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix.
}
@@ -61248,18 +63020,18 @@ tr2072:
rdata_tail += 2;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 672;goto st559;} }
- goto st672;
-tr2086:
- { p--; {stack[top++] = 672;goto st559;} }
- goto st672;
-st672:
+ { p--; {stack[top++] = 709;goto st574;} }
+ goto st709;
+tr2143:
+ { p--; {stack[top++] = 709;goto st574;} }
+ goto st709;
+st709:
if ( ++p == pe )
- goto _test_eof672;
-case 672:
+ goto _test_eof709;
+case 709:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -61277,140 +63049,140 @@ case 672:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2077;
- case 32: goto tr2077;
- case 40: goto tr2078;
- case 41: goto tr2079;
- case 44: goto st673;
- case 3082: goto tr2081;
- case 3131: goto tr2082;
- case 3338: goto tr2083;
- case 3387: goto tr2083;
- case 3594: goto tr2084;
- case 3643: goto tr2085;
+ case 9: goto tr2134;
+ case 32: goto tr2134;
+ case 40: goto tr2135;
+ case 41: goto tr2136;
+ case 44: goto st710;
+ case 3082: goto tr2138;
+ case 3131: goto tr2139;
+ case 3338: goto tr2140;
+ case 3387: goto tr2140;
+ case 3594: goto tr2141;
+ case 3643: goto tr2142;
}
- goto tr1921;
-st673:
+ goto tr1967;
+st710:
if ( ++p == pe )
- goto _test_eof673;
-case 673:
+ goto _test_eof710;
+case 710:
if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr2086;
+ goto tr2143;
} else if ( (*p) >= 65 )
- goto tr2086;
- goto tr1921;
-tr1938:
+ goto tr2143;
+ goto tr1967;
+tr1985:
{
if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->svcb.param_position = rdata_tail;
}
- goto st674;
-st674:
+ goto st711;
+st711:
if ( ++p == pe )
- goto _test_eof674;
-case 674:
+ goto _test_eof711;
+case 711:
if ( (*p) == 111 )
- goto st675;
- goto tr1921;
-st675:
+ goto st712;
+ goto tr1967;
+st712:
if ( ++p == pe )
- goto _test_eof675;
-case 675:
+ goto _test_eof712;
+case 712:
if ( (*p) == 45 )
- goto st676;
- goto tr1921;
-st676:
+ goto st713;
+ goto tr1967;
+st713:
if ( ++p == pe )
- goto _test_eof676;
-case 676:
+ goto _test_eof713;
+case 713:
if ( (*p) == 100 )
- goto st677;
- goto tr1921;
-st677:
+ goto st714;
+ goto tr1967;
+st714:
if ( ++p == pe )
- goto _test_eof677;
-case 677:
+ goto _test_eof714;
+case 714:
if ( (*p) == 101 )
- goto st678;
- goto tr1921;
-st678:
+ goto st715;
+ goto tr1967;
+st715:
if ( ++p == pe )
- goto _test_eof678;
-case 678:
+ goto _test_eof715;
+case 715:
if ( (*p) == 102 )
- goto st679;
- goto tr1921;
-st679:
+ goto st716;
+ goto tr1967;
+st716:
if ( ++p == pe )
- goto _test_eof679;
-case 679:
+ goto _test_eof716;
+case 716:
if ( (*p) == 97 )
- goto st680;
- goto tr1921;
-st680:
+ goto st717;
+ goto tr1967;
+st717:
if ( ++p == pe )
- goto _test_eof680;
-case 680:
+ goto _test_eof717;
+case 717:
if ( (*p) == 117 )
- goto st681;
- goto tr1921;
-st681:
+ goto st718;
+ goto tr1967;
+st718:
if ( ++p == pe )
- goto _test_eof681;
-case 681:
+ goto _test_eof718;
+case 718:
if ( (*p) == 108 )
- goto st682;
- goto tr1921;
-st682:
+ goto st719;
+ goto tr1967;
+st719:
if ( ++p == pe )
- goto _test_eof682;
-case 682:
+ goto _test_eof719;
+case 719:
if ( (*p) == 116 )
- goto st683;
- goto tr1921;
-st683:
+ goto st720;
+ goto tr1967;
+st720:
if ( ++p == pe )
- goto _test_eof683;
-case 683:
+ goto _test_eof720;
+case 720:
if ( (*p) == 45 )
- goto st684;
- goto tr1921;
-st684:
+ goto st721;
+ goto tr1967;
+st721:
if ( ++p == pe )
- goto _test_eof684;
-case 684:
+ goto _test_eof721;
+case 721:
if ( (*p) == 97 )
- goto st685;
- goto tr1921;
-st685:
+ goto st722;
+ goto tr1967;
+st722:
if ( ++p == pe )
- goto _test_eof685;
-case 685:
+ goto _test_eof722;
+case 722:
if ( (*p) == 108 )
- goto st686;
- goto tr1921;
-st686:
+ goto st723;
+ goto tr1967;
+st723:
if ( ++p == pe )
- goto _test_eof686;
-case 686:
+ goto _test_eof723;
+case 723:
if ( (*p) == 112 )
- goto st687;
- goto tr1921;
-st687:
+ goto st724;
+ goto tr1967;
+st724:
if ( ++p == pe )
- goto _test_eof687;
-case 687:
+ goto _test_eof724;
+case 724:
if ( (*p) == 110 )
- goto st688;
- goto tr1921;
-st688:
+ goto st725;
+ goto tr1967;
+st725:
if ( ++p == pe )
- goto _test_eof688;
-case 688:
+ goto _test_eof725;
+case 725:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -61428,79 +63200,149 @@ case 688:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2101;
- case 32: goto tr2101;
- case 40: goto tr2102;
- case 41: goto tr2103;
- case 3082: goto tr2104;
- case 3131: goto tr2105;
- case 3338: goto tr2106;
- case 3387: goto tr2106;
- case 3594: goto tr2107;
- case 3643: goto tr2108;
+ case 9: goto tr2158;
+ case 32: goto tr2158;
+ case 40: goto tr2159;
+ case 41: goto tr2160;
+ case 3082: goto tr2161;
+ case 3131: goto tr2162;
+ case 3338: goto tr2163;
+ case 3387: goto tr2163;
+ case 3594: goto tr2164;
+ case 3643: goto tr2165;
}
- goto tr1921;
-tr1939:
+ goto tr1967;
+tr1986:
{
if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->svcb.param_position = rdata_tail;
}
- goto st689;
-st689:
+ goto st726;
+st726:
if ( ++p == pe )
- goto _test_eof689;
-case 689:
+ goto _test_eof726;
+case 726:
+ if ( (*p) == 104 )
+ goto st727;
+ goto tr1967;
+st727:
+ if ( ++p == pe )
+ goto _test_eof727;
+case 727:
+ if ( (*p) == 116 )
+ goto st728;
+ goto tr1967;
+st728:
+ if ( ++p == pe )
+ goto _test_eof728;
+case 728:
+ if ( (*p) == 116 )
+ goto st729;
+ goto tr1967;
+st729:
+ if ( ++p == pe )
+ goto _test_eof729;
+case 729:
+ if ( (*p) == 112 )
+ goto st730;
+ goto tr1967;
+st730:
+ if ( ++p == pe )
+ goto _test_eof730;
+case 730:
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(2688 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ if (
+ !s->multiline ) _widec += 512;
+ }
+ switch( _widec ) {
+ case 9: goto tr2170;
+ case 32: goto tr2170;
+ case 40: goto tr2171;
+ case 41: goto tr2172;
+ case 3082: goto tr2173;
+ case 3131: goto tr2174;
+ case 3338: goto tr2175;
+ case 3387: goto tr2175;
+ case 3594: goto tr2176;
+ case 3643: goto tr2177;
+ }
+ goto tr1967;
+tr1987:
+ {
+ if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len
+ WARN(ZS_RDATA_OVERFLOW);
+ p--; {goto st316;}
+ }
+ s->svcb.param_position = rdata_tail;
+ }
+ goto st731;
+st731:
+ if ( ++p == pe )
+ goto _test_eof731;
+case 731:
if ( (*p) == 111 )
- goto st690;
- goto tr1921;
-st690:
+ goto st732;
+ goto tr1967;
+st732:
if ( ++p == pe )
- goto _test_eof690;
-case 690:
+ goto _test_eof732;
+case 732:
if ( (*p) == 114 )
- goto st691;
- goto tr1921;
-st691:
+ goto st733;
+ goto tr1967;
+st733:
if ( ++p == pe )
- goto _test_eof691;
-case 691:
+ goto _test_eof733;
+case 733:
if ( (*p) == 116 )
- goto st692;
- goto tr1921;
-st692:
+ goto st734;
+ goto tr1967;
+st734:
if ( ++p == pe )
- goto _test_eof692;
-case 692:
+ goto _test_eof734;
+case 734:
if ( (*p) == 61 )
- goto tr2112;
- goto tr1921;
-tr2112:
+ goto tr2181;
+ goto tr1967;
+tr2181:
{
uint16_t val = htons(3);
memcpy(rdata_tail, &val, 2);
rdata_tail += 2;
}
- goto st693;
-st693:
+ goto st735;
+st735:
if ( ++p == pe )
- goto _test_eof693;
-case 693:
+ goto _test_eof735;
+case 735:
if ( (*p) == 34 )
- goto st694;
+ goto st736;
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2114;
- goto tr2049;
-st694:
+ goto tr2183;
+ goto tr2107;
+st736:
if ( ++p == pe )
- goto _test_eof694;
-case 694:
+ goto _test_eof736;
+case 736:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2115;
- goto tr2049;
-tr2117:
+ goto tr2184;
+ goto tr2107;
+tr2186:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -61512,11 +63354,11 @@ tr2117:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st695;
-tr2115:
+ goto st737;
+tr2184:
{
uint16_t val = htons(2);
memcpy(rdata_tail, &val, 2);
@@ -61525,7 +63367,7 @@ tr2115:
{
if (rdata_tail + 2 > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -61542,20 +63384,20 @@ tr2115:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st695;
-st695:
+ goto st737;
+st737:
if ( ++p == pe )
- goto _test_eof695;
-case 695:
+ goto _test_eof737;
+case 737:
if ( (*p) == 34 )
- goto tr2116;
+ goto tr2185;
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2117;
- goto tr2049;
-tr2121:
+ goto tr2186;
+ goto tr2107;
+tr2190:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -61567,11 +63409,11 @@ tr2121:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st696;
-tr2114:
+ goto st738;
+tr2183:
{
uint16_t val = htons(2);
memcpy(rdata_tail, &val, 2);
@@ -61580,7 +63422,7 @@ tr2114:
{
if (rdata_tail + 2 > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -61597,14 +63439,14 @@ tr2114:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st696;
-st696:
+ goto st738;
+st738:
if ( ++p == pe )
- goto _test_eof696;
-case 696:
+ goto _test_eof738;
+case 738:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -61622,21 +63464,21 @@ case 696:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2118;
- case 32: goto tr2118;
- case 40: goto tr2119;
- case 41: goto tr2120;
- case 3082: goto tr2122;
- case 3131: goto tr2123;
- case 3338: goto tr2124;
- case 3387: goto tr2124;
- case 3594: goto tr2125;
- case 3643: goto tr2126;
+ case 9: goto tr2187;
+ case 32: goto tr2187;
+ case 40: goto tr2188;
+ case 41: goto tr2189;
+ case 3082: goto tr2191;
+ case 3131: goto tr2192;
+ case 3338: goto tr2193;
+ case 3387: goto tr2193;
+ case 3594: goto tr2194;
+ case 3643: goto tr2195;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2121;
- goto tr2049;
-tr1950:
+ goto tr2190;
+ goto tr2107;
+tr1998:
{
s->comma_list = true;
s->pending_backslash = false;
@@ -61647,7 +63489,7 @@ tr1950:
rdata_tail += 2;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -61655,15 +63497,15 @@ tr1950:
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 697;goto st318;} }
- goto st697;
-st697:
+ { p--; {stack[top++] = 739;goto st327;} }
+ goto st739;
+st739:
if ( ++p == pe )
- goto _test_eof697;
-case 697:
+ goto _test_eof739;
+case 739:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -61681,27 +63523,27 @@ case 697:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr1951;
- case 32: goto tr1951;
- case 40: goto tr1952;
- case 41: goto tr1953;
- case 3082: goto tr1954;
- case 3131: goto tr1955;
- case 3338: goto tr1956;
- case 3387: goto tr1956;
- case 3594: goto tr1957;
- case 3643: goto tr1958;
+ case 9: goto tr1999;
+ case 32: goto tr1999;
+ case 40: goto tr2000;
+ case 41: goto tr2001;
+ case 3082: goto tr2002;
+ case 3131: goto tr2003;
+ case 3338: goto tr2004;
+ case 3387: goto tr2004;
+ case 3594: goto tr2005;
+ case 3643: goto tr2006;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr2127;
+ goto tr2196;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr2127;
+ goto tr2196;
} else
- goto tr2127;
- goto tr1921;
-tr2127:
+ goto tr2196;
+ goto tr1967;
+tr2196:
{
s->comma_list = true;
s->pending_backslash = false;
@@ -61712,7 +63554,7 @@ tr2127:
rdata_tail += 2;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -61720,38 +63562,38 @@ tr2127:
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 698;goto st318;} }
- goto st698;
-st698:
+ { p--; {stack[top++] = 740;goto st327;} }
+ goto st740;
+st740:
if ( ++p == pe )
- goto _test_eof698;
-case 698:
+ goto _test_eof740;
+case 740:
if ( (*p) == 34 )
- goto tr2128;
- goto tr1921;
-st699:
+ goto tr2197;
+ goto tr1967;
+st741:
if ( ++p == pe )
- goto _test_eof699;
-case 699:
+ goto _test_eof741;
+case 741:
switch( (*p) ) {
- case 68: goto st701;
- case 69: goto st716;
- case 73: goto st755;
- case 80: goto st763;
- case 82: goto st776;
- case 100: goto st701;
- case 101: goto st716;
- case 105: goto st755;
- case 112: goto st763;
- case 114: goto st776;
+ case 68: goto st743;
+ case 69: goto st758;
+ case 73: goto st797;
+ case 80: goto st805;
+ case 82: goto st818;
+ case 100: goto st743;
+ case 101: goto st758;
+ case 105: goto st797;
+ case 112: goto st805;
+ case 114: goto st818;
}
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2130;
- goto tr2129;
-tr2130:
+ goto tr2199;
+ goto tr2198;
+tr2199:
{
s->number64 = 0;
}
@@ -61766,11 +63608,11 @@ tr2130:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st700;
-tr2137:
+ goto st742;
+tr2206:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -61782,1151 +63624,1151 @@ tr2137:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st700;
-st700:
+ goto st742;
+st742:
if ( ++p == pe )
- goto _test_eof700;
-case 700:
+ goto _test_eof742;
+case 742:
switch( (*p) ) {
- case 32: goto tr2136;
- case 59: goto tr2136;
+ case 32: goto tr2205;
+ case 59: goto tr2205;
}
if ( (*p) < 40 ) {
if ( 9 <= (*p) && (*p) <= 10 )
- goto tr2136;
+ goto tr2205;
} else if ( (*p) > 41 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2137;
+ goto tr2206;
} else
- goto tr2136;
- goto tr2129;
-tr2136:
+ goto tr2205;
+ goto tr2198;
+tr2205:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2140:
+ goto st1481;
+tr2209:
{
*(rdata_tail++) = 2;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2142:
+ goto st1481;
+tr2211:
{
*(rdata_tail++) = 3;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2154:
+ goto st1481;
+tr2223:
{
*(rdata_tail++) = 6;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2164:
+ goto st1481;
+tr2233:
{
*(rdata_tail++) = 12;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2178:
+ goto st1481;
+tr2247:
{
*(rdata_tail++) = 13;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2187:
+ goto st1481;
+tr2256:
{
*(rdata_tail++) = 14;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2194:
+ goto st1481;
+tr2263:
{
*(rdata_tail++) = 15;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2197:
+ goto st1481;
+tr2266:
{
*(rdata_tail++) = 16;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2205:
+ goto st1481;
+tr2274:
{
*(rdata_tail++) = 252;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2216:
+ goto st1481;
+tr2285:
{
*(rdata_tail++) = 253;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2219:
+ goto st1481;
+tr2288:
{
*(rdata_tail++) = 254;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2226:
+ goto st1481;
+tr2295:
{
*(rdata_tail++) = 1;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2232:
+ goto st1481;
+tr2301:
{
*(rdata_tail++) = 5;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2244:
+ goto st1481;
+tr2313:
{
*(rdata_tail++) = 7;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2247:
+ goto st1481;
+tr2316:
{
*(rdata_tail++) = 8;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-tr2250:
+ goto st1481;
+tr2319:
{
*(rdata_tail++) = 10;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1433;
-st1433:
+ goto st1481;
+st1481:
if ( ++p == pe )
- goto _test_eof1433;
-case 1433:
+ goto _test_eof1481;
+case 1481:
goto st0;
-st701:
+st743:
if ( ++p == pe )
- goto _test_eof701;
-case 701:
+ goto _test_eof743;
+case 743:
switch( (*p) ) {
- case 72: goto st702;
- case 83: goto st703;
- case 104: goto st702;
- case 115: goto st703;
+ case 72: goto st744;
+ case 83: goto st745;
+ case 104: goto st744;
+ case 115: goto st745;
}
- goto tr2129;
-st702:
+ goto tr2198;
+st744:
if ( ++p == pe )
- goto _test_eof702;
-case 702:
+ goto _test_eof744;
+case 744:
switch( (*p) ) {
- case 32: goto tr2140;
- case 59: goto tr2140;
+ case 32: goto tr2209;
+ case 59: goto tr2209;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2140;
+ goto tr2209;
} else if ( (*p) >= 9 )
- goto tr2140;
- goto tr2129;
-st703:
+ goto tr2209;
+ goto tr2198;
+st745:
if ( ++p == pe )
- goto _test_eof703;
-case 703:
+ goto _test_eof745;
+case 745:
switch( (*p) ) {
- case 65: goto st704;
- case 97: goto st704;
+ case 65: goto st746;
+ case 97: goto st746;
}
- goto tr2129;
-st704:
+ goto tr2198;
+st746:
if ( ++p == pe )
- goto _test_eof704;
-case 704:
+ goto _test_eof746;
+case 746:
switch( (*p) ) {
- case 32: goto tr2142;
- case 45: goto st705;
- case 59: goto tr2142;
+ case 32: goto tr2211;
+ case 45: goto st747;
+ case 59: goto tr2211;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2142;
+ goto tr2211;
} else if ( (*p) >= 9 )
- goto tr2142;
- goto tr2129;
-st705:
+ goto tr2211;
+ goto tr2198;
+st747:
if ( ++p == pe )
- goto _test_eof705;
-case 705:
+ goto _test_eof747;
+case 747:
switch( (*p) ) {
- case 78: goto st706;
- case 110: goto st706;
+ case 78: goto st748;
+ case 110: goto st748;
}
- goto tr2129;
-st706:
+ goto tr2198;
+st748:
if ( ++p == pe )
- goto _test_eof706;
-case 706:
+ goto _test_eof748;
+case 748:
switch( (*p) ) {
- case 83: goto st707;
- case 115: goto st707;
+ case 83: goto st749;
+ case 115: goto st749;
}
- goto tr2129;
-st707:
+ goto tr2198;
+st749:
if ( ++p == pe )
- goto _test_eof707;
-case 707:
+ goto _test_eof749;
+case 749:
switch( (*p) ) {
- case 69: goto st708;
- case 101: goto st708;
+ case 69: goto st750;
+ case 101: goto st750;
}
- goto tr2129;
-st708:
+ goto tr2198;
+st750:
if ( ++p == pe )
- goto _test_eof708;
-case 708:
+ goto _test_eof750;
+case 750:
switch( (*p) ) {
- case 67: goto st709;
- case 99: goto st709;
+ case 67: goto st751;
+ case 99: goto st751;
}
- goto tr2129;
-st709:
+ goto tr2198;
+st751:
if ( ++p == pe )
- goto _test_eof709;
-case 709:
+ goto _test_eof751;
+case 751:
if ( (*p) == 51 )
- goto st710;
- goto tr2129;
-st710:
+ goto st752;
+ goto tr2198;
+st752:
if ( ++p == pe )
- goto _test_eof710;
-case 710:
+ goto _test_eof752;
+case 752:
if ( (*p) == 45 )
- goto st711;
- goto tr2129;
-st711:
+ goto st753;
+ goto tr2198;
+st753:
if ( ++p == pe )
- goto _test_eof711;
-case 711:
+ goto _test_eof753;
+case 753:
switch( (*p) ) {
- case 83: goto st712;
- case 115: goto st712;
+ case 83: goto st754;
+ case 115: goto st754;
}
- goto tr2129;
-st712:
+ goto tr2198;
+st754:
if ( ++p == pe )
- goto _test_eof712;
-case 712:
+ goto _test_eof754;
+case 754:
switch( (*p) ) {
- case 72: goto st713;
- case 104: goto st713;
+ case 72: goto st755;
+ case 104: goto st755;
}
- goto tr2129;
-st713:
+ goto tr2198;
+st755:
if ( ++p == pe )
- goto _test_eof713;
-case 713:
+ goto _test_eof755;
+case 755:
switch( (*p) ) {
- case 65: goto st714;
- case 97: goto st714;
+ case 65: goto st756;
+ case 97: goto st756;
}
- goto tr2129;
-st714:
+ goto tr2198;
+st756:
if ( ++p == pe )
- goto _test_eof714;
-case 714:
+ goto _test_eof756;
+case 756:
if ( (*p) == 49 )
- goto st715;
- goto tr2129;
-st715:
+ goto st757;
+ goto tr2198;
+st757:
if ( ++p == pe )
- goto _test_eof715;
-case 715:
+ goto _test_eof757;
+case 757:
switch( (*p) ) {
- case 32: goto tr2154;
- case 59: goto tr2154;
+ case 32: goto tr2223;
+ case 59: goto tr2223;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2154;
+ goto tr2223;
} else if ( (*p) >= 9 )
- goto tr2154;
- goto tr2129;
-st716:
+ goto tr2223;
+ goto tr2198;
+st758:
if ( ++p == pe )
- goto _test_eof716;
-case 716:
+ goto _test_eof758;
+case 758:
switch( (*p) ) {
- case 67: goto st717;
- case 68: goto st746;
- case 99: goto st717;
- case 100: goto st746;
+ case 67: goto st759;
+ case 68: goto st788;
+ case 99: goto st759;
+ case 100: goto st788;
}
- goto tr2129;
-st717:
+ goto tr2198;
+st759:
if ( ++p == pe )
- goto _test_eof717;
-case 717:
+ goto _test_eof759;
+case 759:
switch( (*p) ) {
- case 67: goto st718;
- case 68: goto st724;
- case 99: goto st718;
- case 100: goto st724;
+ case 67: goto st760;
+ case 68: goto st766;
+ case 99: goto st760;
+ case 100: goto st766;
}
- goto tr2129;
-st718:
+ goto tr2198;
+st760:
if ( ++p == pe )
- goto _test_eof718;
-case 718:
+ goto _test_eof760;
+case 760:
if ( (*p) == 45 )
- goto st719;
- goto tr2129;
-st719:
+ goto st761;
+ goto tr2198;
+st761:
if ( ++p == pe )
- goto _test_eof719;
-case 719:
+ goto _test_eof761;
+case 761:
switch( (*p) ) {
- case 71: goto st720;
- case 103: goto st720;
+ case 71: goto st762;
+ case 103: goto st762;
}
- goto tr2129;
-st720:
+ goto tr2198;
+st762:
if ( ++p == pe )
- goto _test_eof720;
-case 720:
+ goto _test_eof762;
+case 762:
switch( (*p) ) {
- case 79: goto st721;
- case 111: goto st721;
+ case 79: goto st763;
+ case 111: goto st763;
}
- goto tr2129;
-st721:
+ goto tr2198;
+st763:
if ( ++p == pe )
- goto _test_eof721;
-case 721:
+ goto _test_eof763;
+case 763:
switch( (*p) ) {
- case 83: goto st722;
- case 115: goto st722;
+ case 83: goto st764;
+ case 115: goto st764;
}
- goto tr2129;
-st722:
+ goto tr2198;
+st764:
if ( ++p == pe )
- goto _test_eof722;
-case 722:
+ goto _test_eof764;
+case 764:
switch( (*p) ) {
- case 84: goto st723;
- case 116: goto st723;
+ case 84: goto st765;
+ case 116: goto st765;
}
- goto tr2129;
-st723:
+ goto tr2198;
+st765:
if ( ++p == pe )
- goto _test_eof723;
-case 723:
+ goto _test_eof765;
+case 765:
switch( (*p) ) {
- case 32: goto tr2164;
- case 59: goto tr2164;
+ case 32: goto tr2233;
+ case 59: goto tr2233;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2164;
+ goto tr2233;
} else if ( (*p) >= 9 )
- goto tr2164;
- goto tr2129;
-st724:
+ goto tr2233;
+ goto tr2198;
+st766:
if ( ++p == pe )
- goto _test_eof724;
-case 724:
+ goto _test_eof766;
+case 766:
switch( (*p) ) {
- case 83: goto st725;
- case 115: goto st725;
+ case 83: goto st767;
+ case 115: goto st767;
}
- goto tr2129;
-st725:
+ goto tr2198;
+st767:
if ( ++p == pe )
- goto _test_eof725;
-case 725:
+ goto _test_eof767;
+case 767:
switch( (*p) ) {
- case 65: goto st726;
- case 97: goto st726;
+ case 65: goto st768;
+ case 97: goto st768;
}
- goto tr2129;
-st726:
+ goto tr2198;
+st768:
if ( ++p == pe )
- goto _test_eof726;
-case 726:
+ goto _test_eof768;
+case 768:
switch( (*p) ) {
- case 80: goto st727;
- case 112: goto st727;
+ case 80: goto st769;
+ case 112: goto st769;
}
- goto tr2129;
-st727:
+ goto tr2198;
+st769:
if ( ++p == pe )
- goto _test_eof727;
-case 727:
+ goto _test_eof769;
+case 769:
switch( (*p) ) {
- case 50: goto st728;
- case 51: goto st737;
+ case 50: goto st770;
+ case 51: goto st779;
}
- goto tr2129;
-st728:
+ goto tr2198;
+st770:
if ( ++p == pe )
- goto _test_eof728;
-case 728:
+ goto _test_eof770;
+case 770:
if ( (*p) == 53 )
- goto st729;
- goto tr2129;
-st729:
+ goto st771;
+ goto tr2198;
+st771:
if ( ++p == pe )
- goto _test_eof729;
-case 729:
+ goto _test_eof771;
+case 771:
if ( (*p) == 54 )
- goto st730;
- goto tr2129;
-st730:
+ goto st772;
+ goto tr2198;
+st772:
if ( ++p == pe )
- goto _test_eof730;
-case 730:
+ goto _test_eof772;
+case 772:
switch( (*p) ) {
- case 83: goto st731;
- case 115: goto st731;
+ case 83: goto st773;
+ case 115: goto st773;
}
- goto tr2129;
-st731:
+ goto tr2198;
+st773:
if ( ++p == pe )
- goto _test_eof731;
-case 731:
+ goto _test_eof773;
+case 773:
switch( (*p) ) {
- case 72: goto st732;
- case 104: goto st732;
+ case 72: goto st774;
+ case 104: goto st774;
}
- goto tr2129;
-st732:
+ goto tr2198;
+st774:
if ( ++p == pe )
- goto _test_eof732;
-case 732:
+ goto _test_eof774;
+case 774:
switch( (*p) ) {
- case 65: goto st733;
- case 97: goto st733;
+ case 65: goto st775;
+ case 97: goto st775;
}
- goto tr2129;
-st733:
+ goto tr2198;
+st775:
if ( ++p == pe )
- goto _test_eof733;
-case 733:
+ goto _test_eof775;
+case 775:
if ( (*p) == 50 )
- goto st734;
- goto tr2129;
-st734:
+ goto st776;
+ goto tr2198;
+st776:
if ( ++p == pe )
- goto _test_eof734;
-case 734:
+ goto _test_eof776;
+case 776:
if ( (*p) == 53 )
- goto st735;
- goto tr2129;
-st735:
+ goto st777;
+ goto tr2198;
+st777:
if ( ++p == pe )
- goto _test_eof735;
-case 735:
+ goto _test_eof777;
+case 777:
if ( (*p) == 54 )
- goto st736;
- goto tr2129;
-st736:
+ goto st778;
+ goto tr2198;
+st778:
if ( ++p == pe )
- goto _test_eof736;
-case 736:
+ goto _test_eof778;
+case 778:
switch( (*p) ) {
- case 32: goto tr2178;
- case 59: goto tr2178;
+ case 32: goto tr2247;
+ case 59: goto tr2247;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2178;
+ goto tr2247;
} else if ( (*p) >= 9 )
- goto tr2178;
- goto tr2129;
-st737:
+ goto tr2247;
+ goto tr2198;
+st779:
if ( ++p == pe )
- goto _test_eof737;
-case 737:
+ goto _test_eof779;
+case 779:
if ( (*p) == 56 )
- goto st738;
- goto tr2129;
-st738:
+ goto st780;
+ goto tr2198;
+st780:
if ( ++p == pe )
- goto _test_eof738;
-case 738:
+ goto _test_eof780;
+case 780:
if ( (*p) == 52 )
- goto st739;
- goto tr2129;
-st739:
+ goto st781;
+ goto tr2198;
+st781:
if ( ++p == pe )
- goto _test_eof739;
-case 739:
+ goto _test_eof781;
+case 781:
switch( (*p) ) {
- case 83: goto st740;
- case 115: goto st740;
+ case 83: goto st782;
+ case 115: goto st782;
}
- goto tr2129;
-st740:
+ goto tr2198;
+st782:
if ( ++p == pe )
- goto _test_eof740;
-case 740:
+ goto _test_eof782;
+case 782:
switch( (*p) ) {
- case 72: goto st741;
- case 104: goto st741;
+ case 72: goto st783;
+ case 104: goto st783;
}
- goto tr2129;
-st741:
+ goto tr2198;
+st783:
if ( ++p == pe )
- goto _test_eof741;
-case 741:
+ goto _test_eof783;
+case 783:
switch( (*p) ) {
- case 65: goto st742;
- case 97: goto st742;
+ case 65: goto st784;
+ case 97: goto st784;
}
- goto tr2129;
-st742:
+ goto tr2198;
+st784:
if ( ++p == pe )
- goto _test_eof742;
-case 742:
+ goto _test_eof784;
+case 784:
if ( (*p) == 51 )
- goto st743;
- goto tr2129;
-st743:
+ goto st785;
+ goto tr2198;
+st785:
if ( ++p == pe )
- goto _test_eof743;
-case 743:
+ goto _test_eof785;
+case 785:
if ( (*p) == 56 )
- goto st744;
- goto tr2129;
-st744:
+ goto st786;
+ goto tr2198;
+st786:
if ( ++p == pe )
- goto _test_eof744;
-case 744:
+ goto _test_eof786;
+case 786:
if ( (*p) == 52 )
- goto st745;
- goto tr2129;
-st745:
+ goto st787;
+ goto tr2198;
+st787:
if ( ++p == pe )
- goto _test_eof745;
-case 745:
+ goto _test_eof787;
+case 787:
switch( (*p) ) {
- case 32: goto tr2187;
- case 59: goto tr2187;
+ case 32: goto tr2256;
+ case 59: goto tr2256;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2187;
+ goto tr2256;
} else if ( (*p) >= 9 )
- goto tr2187;
- goto tr2129;
-st746:
+ goto tr2256;
+ goto tr2198;
+st788:
if ( ++p == pe )
- goto _test_eof746;
-case 746:
+ goto _test_eof788;
+case 788:
switch( (*p) ) {
- case 50: goto st747;
- case 52: goto st752;
+ case 50: goto st789;
+ case 52: goto st794;
}
- goto tr2129;
-st747:
+ goto tr2198;
+st789:
if ( ++p == pe )
- goto _test_eof747;
-case 747:
+ goto _test_eof789;
+case 789:
if ( (*p) == 53 )
- goto st748;
- goto tr2129;
-st748:
+ goto st790;
+ goto tr2198;
+st790:
if ( ++p == pe )
- goto _test_eof748;
-case 748:
+ goto _test_eof790;
+case 790:
if ( (*p) == 53 )
- goto st749;
- goto tr2129;
-st749:
+ goto st791;
+ goto tr2198;
+st791:
if ( ++p == pe )
- goto _test_eof749;
-case 749:
+ goto _test_eof791;
+case 791:
if ( (*p) == 49 )
- goto st750;
- goto tr2129;
-st750:
+ goto st792;
+ goto tr2198;
+st792:
if ( ++p == pe )
- goto _test_eof750;
-case 750:
+ goto _test_eof792;
+case 792:
if ( (*p) == 57 )
- goto st751;
- goto tr2129;
-st751:
+ goto st793;
+ goto tr2198;
+st793:
if ( ++p == pe )
- goto _test_eof751;
-case 751:
+ goto _test_eof793;
+case 793:
switch( (*p) ) {
- case 32: goto tr2194;
- case 59: goto tr2194;
+ case 32: goto tr2263;
+ case 59: goto tr2263;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2194;
+ goto tr2263;
} else if ( (*p) >= 9 )
- goto tr2194;
- goto tr2129;
-st752:
+ goto tr2263;
+ goto tr2198;
+st794:
if ( ++p == pe )
- goto _test_eof752;
-case 752:
+ goto _test_eof794;
+case 794:
if ( (*p) == 52 )
- goto st753;
- goto tr2129;
-st753:
+ goto st795;
+ goto tr2198;
+st795:
if ( ++p == pe )
- goto _test_eof753;
-case 753:
+ goto _test_eof795;
+case 795:
if ( (*p) == 56 )
- goto st754;
- goto tr2129;
-st754:
+ goto st796;
+ goto tr2198;
+st796:
if ( ++p == pe )
- goto _test_eof754;
-case 754:
+ goto _test_eof796;
+case 796:
switch( (*p) ) {
- case 32: goto tr2197;
- case 59: goto tr2197;
+ case 32: goto tr2266;
+ case 59: goto tr2266;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2197;
+ goto tr2266;
} else if ( (*p) >= 9 )
- goto tr2197;
- goto tr2129;
-st755:
+ goto tr2266;
+ goto tr2198;
+st797:
if ( ++p == pe )
- goto _test_eof755;
-case 755:
+ goto _test_eof797;
+case 797:
switch( (*p) ) {
- case 78: goto st756;
- case 110: goto st756;
+ case 78: goto st798;
+ case 110: goto st798;
}
- goto tr2129;
-st756:
+ goto tr2198;
+st798:
if ( ++p == pe )
- goto _test_eof756;
-case 756:
+ goto _test_eof798;
+case 798:
switch( (*p) ) {
- case 68: goto st757;
- case 100: goto st757;
+ case 68: goto st799;
+ case 100: goto st799;
}
- goto tr2129;
-st757:
+ goto tr2198;
+st799:
if ( ++p == pe )
- goto _test_eof757;
-case 757:
+ goto _test_eof799;
+case 799:
switch( (*p) ) {
- case 73: goto st758;
- case 105: goto st758;
+ case 73: goto st800;
+ case 105: goto st800;
}
- goto tr2129;
-st758:
+ goto tr2198;
+st800:
if ( ++p == pe )
- goto _test_eof758;
-case 758:
+ goto _test_eof800;
+case 800:
switch( (*p) ) {
- case 82: goto st759;
- case 114: goto st759;
+ case 82: goto st801;
+ case 114: goto st801;
}
- goto tr2129;
-st759:
+ goto tr2198;
+st801:
if ( ++p == pe )
- goto _test_eof759;
-case 759:
+ goto _test_eof801;
+case 801:
switch( (*p) ) {
- case 69: goto st760;
- case 101: goto st760;
+ case 69: goto st802;
+ case 101: goto st802;
}
- goto tr2129;
-st760:
+ goto tr2198;
+st802:
if ( ++p == pe )
- goto _test_eof760;
-case 760:
+ goto _test_eof802;
+case 802:
switch( (*p) ) {
- case 67: goto st761;
- case 99: goto st761;
+ case 67: goto st803;
+ case 99: goto st803;
}
- goto tr2129;
-st761:
+ goto tr2198;
+st803:
if ( ++p == pe )
- goto _test_eof761;
-case 761:
+ goto _test_eof803;
+case 803:
switch( (*p) ) {
- case 84: goto st762;
- case 116: goto st762;
+ case 84: goto st804;
+ case 116: goto st804;
}
- goto tr2129;
-st762:
+ goto tr2198;
+st804:
if ( ++p == pe )
- goto _test_eof762;
-case 762:
+ goto _test_eof804;
+case 804:
switch( (*p) ) {
- case 32: goto tr2205;
- case 59: goto tr2205;
+ case 32: goto tr2274;
+ case 59: goto tr2274;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2205;
+ goto tr2274;
} else if ( (*p) >= 9 )
- goto tr2205;
- goto tr2129;
-st763:
+ goto tr2274;
+ goto tr2198;
+st805:
if ( ++p == pe )
- goto _test_eof763;
-case 763:
+ goto _test_eof805;
+case 805:
switch( (*p) ) {
- case 82: goto st764;
- case 114: goto st764;
+ case 82: goto st806;
+ case 114: goto st806;
}
- goto tr2129;
-st764:
+ goto tr2198;
+st806:
if ( ++p == pe )
- goto _test_eof764;
-case 764:
+ goto _test_eof806;
+case 806:
switch( (*p) ) {
- case 73: goto st765;
- case 105: goto st765;
+ case 73: goto st807;
+ case 105: goto st807;
}
- goto tr2129;
-st765:
+ goto tr2198;
+st807:
if ( ++p == pe )
- goto _test_eof765;
-case 765:
+ goto _test_eof807;
+case 807:
switch( (*p) ) {
- case 86: goto st766;
- case 118: goto st766;
+ case 86: goto st808;
+ case 118: goto st808;
}
- goto tr2129;
-st766:
+ goto tr2198;
+st808:
if ( ++p == pe )
- goto _test_eof766;
-case 766:
+ goto _test_eof808;
+case 808:
switch( (*p) ) {
- case 65: goto st767;
- case 97: goto st767;
+ case 65: goto st809;
+ case 97: goto st809;
}
- goto tr2129;
-st767:
+ goto tr2198;
+st809:
if ( ++p == pe )
- goto _test_eof767;
-case 767:
+ goto _test_eof809;
+case 809:
switch( (*p) ) {
- case 84: goto st768;
- case 116: goto st768;
+ case 84: goto st810;
+ case 116: goto st810;
}
- goto tr2129;
-st768:
+ goto tr2198;
+st810:
if ( ++p == pe )
- goto _test_eof768;
-case 768:
+ goto _test_eof810;
+case 810:
switch( (*p) ) {
- case 69: goto st769;
- case 101: goto st769;
+ case 69: goto st811;
+ case 101: goto st811;
}
- goto tr2129;
-st769:
+ goto tr2198;
+st811:
if ( ++p == pe )
- goto _test_eof769;
-case 769:
+ goto _test_eof811;
+case 811:
switch( (*p) ) {
- case 68: goto st770;
- case 79: goto st773;
- case 100: goto st770;
- case 111: goto st773;
+ case 68: goto st812;
+ case 79: goto st815;
+ case 100: goto st812;
+ case 111: goto st815;
}
- goto tr2129;
-st770:
+ goto tr2198;
+st812:
if ( ++p == pe )
- goto _test_eof770;
-case 770:
+ goto _test_eof812;
+case 812:
switch( (*p) ) {
- case 78: goto st771;
- case 110: goto st771;
+ case 78: goto st813;
+ case 110: goto st813;
}
- goto tr2129;
-st771:
+ goto tr2198;
+st813:
if ( ++p == pe )
- goto _test_eof771;
-case 771:
+ goto _test_eof813;
+case 813:
switch( (*p) ) {
- case 83: goto st772;
- case 115: goto st772;
+ case 83: goto st814;
+ case 115: goto st814;
}
- goto tr2129;
-st772:
+ goto tr2198;
+st814:
if ( ++p == pe )
- goto _test_eof772;
-case 772:
+ goto _test_eof814;
+case 814:
switch( (*p) ) {
- case 32: goto tr2216;
- case 59: goto tr2216;
+ case 32: goto tr2285;
+ case 59: goto tr2285;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2216;
+ goto tr2285;
} else if ( (*p) >= 9 )
- goto tr2216;
- goto tr2129;
-st773:
+ goto tr2285;
+ goto tr2198;
+st815:
if ( ++p == pe )
- goto _test_eof773;
-case 773:
+ goto _test_eof815;
+case 815:
switch( (*p) ) {
- case 73: goto st774;
- case 105: goto st774;
+ case 73: goto st816;
+ case 105: goto st816;
}
- goto tr2129;
-st774:
+ goto tr2198;
+st816:
if ( ++p == pe )
- goto _test_eof774;
-case 774:
+ goto _test_eof816;
+case 816:
switch( (*p) ) {
- case 68: goto st775;
- case 100: goto st775;
+ case 68: goto st817;
+ case 100: goto st817;
}
- goto tr2129;
-st775:
+ goto tr2198;
+st817:
if ( ++p == pe )
- goto _test_eof775;
-case 775:
+ goto _test_eof817;
+case 817:
switch( (*p) ) {
- case 32: goto tr2219;
- case 59: goto tr2219;
+ case 32: goto tr2288;
+ case 59: goto tr2288;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2219;
+ goto tr2288;
} else if ( (*p) >= 9 )
- goto tr2219;
- goto tr2129;
-st776:
+ goto tr2288;
+ goto tr2198;
+st818:
if ( ++p == pe )
- goto _test_eof776;
-case 776:
+ goto _test_eof818;
+case 818:
switch( (*p) ) {
- case 83: goto st777;
- case 115: goto st777;
+ case 83: goto st819;
+ case 115: goto st819;
}
- goto tr2129;
-st777:
+ goto tr2198;
+st819:
if ( ++p == pe )
- goto _test_eof777;
-case 777:
+ goto _test_eof819;
+case 819:
switch( (*p) ) {
- case 65: goto st778;
- case 97: goto st778;
+ case 65: goto st820;
+ case 97: goto st820;
}
- goto tr2129;
-st778:
+ goto tr2198;
+st820:
if ( ++p == pe )
- goto _test_eof778;
-case 778:
+ goto _test_eof820;
+case 820:
switch( (*p) ) {
- case 77: goto st779;
- case 83: goto st782;
- case 109: goto st779;
- case 115: goto st782;
+ case 77: goto st821;
+ case 83: goto st824;
+ case 109: goto st821;
+ case 115: goto st824;
}
- goto tr2129;
-st779:
+ goto tr2198;
+st821:
if ( ++p == pe )
- goto _test_eof779;
-case 779:
+ goto _test_eof821;
+case 821:
switch( (*p) ) {
- case 68: goto st780;
- case 100: goto st780;
+ case 68: goto st822;
+ case 100: goto st822;
}
- goto tr2129;
-st780:
+ goto tr2198;
+st822:
if ( ++p == pe )
- goto _test_eof780;
-case 780:
+ goto _test_eof822;
+case 822:
if ( (*p) == 53 )
- goto st781;
- goto tr2129;
-st781:
+ goto st823;
+ goto tr2198;
+st823:
if ( ++p == pe )
- goto _test_eof781;
-case 781:
+ goto _test_eof823;
+case 823:
switch( (*p) ) {
- case 32: goto tr2226;
- case 59: goto tr2226;
+ case 32: goto tr2295;
+ case 59: goto tr2295;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2226;
+ goto tr2295;
} else if ( (*p) >= 9 )
- goto tr2226;
- goto tr2129;
-st782:
+ goto tr2295;
+ goto tr2198;
+st824:
if ( ++p == pe )
- goto _test_eof782;
-case 782:
+ goto _test_eof824;
+case 824:
switch( (*p) ) {
- case 72: goto st783;
- case 104: goto st783;
+ case 72: goto st825;
+ case 104: goto st825;
}
- goto tr2129;
-st783:
+ goto tr2198;
+st825:
if ( ++p == pe )
- goto _test_eof783;
-case 783:
+ goto _test_eof825;
+case 825:
switch( (*p) ) {
- case 65: goto st784;
- case 97: goto st784;
+ case 65: goto st826;
+ case 97: goto st826;
}
- goto tr2129;
-st784:
+ goto tr2198;
+st826:
if ( ++p == pe )
- goto _test_eof784;
-case 784:
+ goto _test_eof826;
+case 826:
switch( (*p) ) {
- case 49: goto st785;
- case 50: goto st797;
- case 53: goto st800;
+ case 49: goto st827;
+ case 50: goto st839;
+ case 53: goto st842;
}
- goto tr2129;
-st785:
+ goto tr2198;
+st827:
if ( ++p == pe )
- goto _test_eof785;
-case 785:
+ goto _test_eof827;
+case 827:
switch( (*p) ) {
- case 32: goto tr2232;
- case 45: goto st786;
- case 59: goto tr2232;
+ case 32: goto tr2301;
+ case 45: goto st828;
+ case 59: goto tr2301;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2232;
+ goto tr2301;
} else if ( (*p) >= 9 )
- goto tr2232;
- goto tr2129;
-st786:
+ goto tr2301;
+ goto tr2198;
+st828:
if ( ++p == pe )
- goto _test_eof786;
-case 786:
+ goto _test_eof828;
+case 828:
switch( (*p) ) {
- case 78: goto st787;
- case 110: goto st787;
+ case 78: goto st829;
+ case 110: goto st829;
}
- goto tr2129;
-st787:
+ goto tr2198;
+st829:
if ( ++p == pe )
- goto _test_eof787;
-case 787:
+ goto _test_eof829;
+case 829:
switch( (*p) ) {
- case 83: goto st788;
- case 115: goto st788;
+ case 83: goto st830;
+ case 115: goto st830;
}
- goto tr2129;
-st788:
+ goto tr2198;
+st830:
if ( ++p == pe )
- goto _test_eof788;
-case 788:
+ goto _test_eof830;
+case 830:
switch( (*p) ) {
- case 69: goto st789;
- case 101: goto st789;
+ case 69: goto st831;
+ case 101: goto st831;
}
- goto tr2129;
-st789:
+ goto tr2198;
+st831:
if ( ++p == pe )
- goto _test_eof789;
-case 789:
+ goto _test_eof831;
+case 831:
switch( (*p) ) {
- case 67: goto st790;
- case 99: goto st790;
+ case 67: goto st832;
+ case 99: goto st832;
}
- goto tr2129;
-st790:
+ goto tr2198;
+st832:
if ( ++p == pe )
- goto _test_eof790;
-case 790:
+ goto _test_eof832;
+case 832:
if ( (*p) == 51 )
- goto st791;
- goto tr2129;
-st791:
+ goto st833;
+ goto tr2198;
+st833:
if ( ++p == pe )
- goto _test_eof791;
-case 791:
+ goto _test_eof833;
+case 833:
if ( (*p) == 45 )
- goto st792;
- goto tr2129;
-st792:
+ goto st834;
+ goto tr2198;
+st834:
if ( ++p == pe )
- goto _test_eof792;
-case 792:
+ goto _test_eof834;
+case 834:
switch( (*p) ) {
- case 83: goto st793;
- case 115: goto st793;
+ case 83: goto st835;
+ case 115: goto st835;
}
- goto tr2129;
-st793:
+ goto tr2198;
+st835:
if ( ++p == pe )
- goto _test_eof793;
-case 793:
+ goto _test_eof835;
+case 835:
switch( (*p) ) {
- case 72: goto st794;
- case 104: goto st794;
+ case 72: goto st836;
+ case 104: goto st836;
}
- goto tr2129;
-st794:
+ goto tr2198;
+st836:
if ( ++p == pe )
- goto _test_eof794;
-case 794:
+ goto _test_eof836;
+case 836:
switch( (*p) ) {
- case 65: goto st795;
- case 97: goto st795;
+ case 65: goto st837;
+ case 97: goto st837;
}
- goto tr2129;
-st795:
+ goto tr2198;
+st837:
if ( ++p == pe )
- goto _test_eof795;
-case 795:
+ goto _test_eof837;
+case 837:
if ( (*p) == 49 )
- goto st796;
- goto tr2129;
-st796:
+ goto st838;
+ goto tr2198;
+st838:
if ( ++p == pe )
- goto _test_eof796;
-case 796:
+ goto _test_eof838;
+case 838:
switch( (*p) ) {
- case 32: goto tr2244;
- case 59: goto tr2244;
+ case 32: goto tr2313;
+ case 59: goto tr2313;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2244;
+ goto tr2313;
} else if ( (*p) >= 9 )
- goto tr2244;
- goto tr2129;
-st797:
+ goto tr2313;
+ goto tr2198;
+st839:
if ( ++p == pe )
- goto _test_eof797;
-case 797:
+ goto _test_eof839;
+case 839:
if ( (*p) == 53 )
- goto st798;
- goto tr2129;
-st798:
+ goto st840;
+ goto tr2198;
+st840:
if ( ++p == pe )
- goto _test_eof798;
-case 798:
+ goto _test_eof840;
+case 840:
if ( (*p) == 54 )
- goto st799;
- goto tr2129;
-st799:
+ goto st841;
+ goto tr2198;
+st841:
if ( ++p == pe )
- goto _test_eof799;
-case 799:
+ goto _test_eof841;
+case 841:
switch( (*p) ) {
- case 32: goto tr2247;
- case 59: goto tr2247;
+ case 32: goto tr2316;
+ case 59: goto tr2316;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2247;
+ goto tr2316;
} else if ( (*p) >= 9 )
- goto tr2247;
- goto tr2129;
-st800:
+ goto tr2316;
+ goto tr2198;
+st842:
if ( ++p == pe )
- goto _test_eof800;
-case 800:
+ goto _test_eof842;
+case 842:
if ( (*p) == 49 )
- goto st801;
- goto tr2129;
-st801:
+ goto st843;
+ goto tr2198;
+st843:
if ( ++p == pe )
- goto _test_eof801;
-case 801:
+ goto _test_eof843;
+case 843:
if ( (*p) == 50 )
- goto st802;
- goto tr2129;
-st802:
+ goto st844;
+ goto tr2198;
+st844:
if ( ++p == pe )
- goto _test_eof802;
-case 802:
+ goto _test_eof844;
+case 844:
switch( (*p) ) {
- case 32: goto tr2250;
- case 59: goto tr2250;
+ case 32: goto tr2319;
+ case 59: goto tr2319;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2250;
+ goto tr2319;
} else if ( (*p) >= 9 )
- goto tr2250;
- goto tr2129;
-st803:
+ goto tr2319;
+ goto tr2198;
+st845:
if ( ++p == pe )
- goto _test_eof803;
-case 803:
+ goto _test_eof845;
+case 845:
switch( (*p) ) {
- case 65: goto st805;
- case 73: goto st811;
- case 79: goto st828;
- case 80: goto st831;
- case 83: goto st837;
- case 85: goto st841;
- case 97: goto st805;
- case 105: goto st811;
- case 111: goto st828;
- case 112: goto st831;
- case 115: goto st837;
- case 117: goto st841;
+ case 65: goto st847;
+ case 73: goto st853;
+ case 79: goto st870;
+ case 80: goto st873;
+ case 83: goto st879;
+ case 85: goto st883;
+ case 97: goto st847;
+ case 105: goto st853;
+ case 111: goto st870;
+ case 112: goto st873;
+ case 115: goto st879;
+ case 117: goto st883;
}
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2252;
- goto tr2251;
-tr2252:
+ goto tr2321;
+ goto tr2320;
+tr2321:
{
s->number64 = 0;
}
@@ -62941,11 +64783,11 @@ tr2252:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st804;
-tr2260:
+ goto st846;
+tr2329:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -62957,28 +64799,28 @@ tr2260:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st804;
-st804:
+ goto st846;
+st846:
if ( ++p == pe )
- goto _test_eof804;
-case 804:
+ goto _test_eof846;
+case 846:
switch( (*p) ) {
- case 32: goto tr2259;
- case 59: goto tr2259;
+ case 32: goto tr2328;
+ case 59: goto tr2328;
}
if ( (*p) < 40 ) {
if ( 9 <= (*p) && (*p) <= 10 )
- goto tr2259;
+ goto tr2328;
} else if ( (*p) > 41 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2260;
+ goto tr2329;
} else
- goto tr2259;
- goto tr2251;
-tr2296:
+ goto tr2328;
+ goto tr2320;
+tr2365:
{
uint16_t val = htons(1);
memcpy(rdata_tail, &val, 2);
@@ -62987,8 +64829,18 @@ tr2296:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1434;
-tr2286:
+ goto st1482;
+tr2335:
+ {
+ uint16_t val = htons(7);
+ memcpy(rdata_tail, &val, 2);
+ rdata_tail += 2;
+ }
+ {
+ p--; {cs = stack[--top];goto _again;}
+ }
+ goto st1482;
+tr2355:
{
uint16_t val = htons(5);
memcpy(rdata_tail, &val, 2);
@@ -62997,8 +64849,8 @@ tr2286:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1434;
-tr2282:
+ goto st1482;
+tr2351:
{
uint16_t val = htons(4);
memcpy(rdata_tail, &val, 2);
@@ -63007,8 +64859,8 @@ tr2282:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1434;
-tr2279:
+ goto st1482;
+tr2348:
{
uint16_t val = htons(6);
memcpy(rdata_tail, &val, 2);
@@ -63017,8 +64869,8 @@ tr2279:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1434;
-tr2259:
+ goto st1482;
+tr2328:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -63026,14 +64878,14 @@ tr2259:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1434;
-tr2300:
+ goto st1482;
+tr2369:
{
uint16_t val = htons(2);
memcpy(rdata_tail, &val, 2);
@@ -63042,38 +64894,28 @@ tr2300:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1434;
-tr2293:
- {
- uint16_t val = htons(3);
- memcpy(rdata_tail, &val, 2);
- rdata_tail += 2;
- }
- {
- p--; {cs = stack[--top];goto _again;}
- }
- goto st1434;
-tr2266:
+ goto st1482;
+tr2344:
{
- uint16_t val = htons(7);
+ uint16_t val = htons(8);
memcpy(rdata_tail, &val, 2);
rdata_tail += 2;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1434;
-tr2275:
+ goto st1482;
+tr2362:
{
- uint16_t val = htons(8);
+ uint16_t val = htons(3);
memcpy(rdata_tail, &val, 2);
rdata_tail += 2;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1434;
-tr2289:
+ goto st1482;
+tr2358:
{
uint16_t val = htons(254);
memcpy(rdata_tail, &val, 2);
@@ -63082,8 +64924,8 @@ tr2289:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1434;
-tr2303:
+ goto st1482;
+tr2372:
{
uint16_t val = htons(253);
memcpy(rdata_tail, &val, 2);
@@ -63092,441 +64934,441 @@ tr2303:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1434;
-st1434:
+ goto st1482;
+st1482:
if ( ++p == pe )
- goto _test_eof1434;
-case 1434:
+ goto _test_eof1482;
+case 1482:
goto st0;
-st805:
+st847:
if ( ++p == pe )
- goto _test_eof805;
-case 805:
+ goto _test_eof847;
+case 847:
switch( (*p) ) {
- case 67: goto st806;
- case 99: goto st806;
+ case 67: goto st848;
+ case 99: goto st848;
}
- goto tr2251;
-st806:
+ goto tr2320;
+st848:
if ( ++p == pe )
- goto _test_eof806;
-case 806:
+ goto _test_eof848;
+case 848:
switch( (*p) ) {
- case 80: goto st807;
- case 112: goto st807;
+ case 80: goto st849;
+ case 112: goto st849;
}
- goto tr2251;
-st807:
+ goto tr2320;
+st849:
if ( ++p == pe )
- goto _test_eof807;
-case 807:
+ goto _test_eof849;
+case 849:
switch( (*p) ) {
- case 75: goto st808;
- case 107: goto st808;
+ case 75: goto st850;
+ case 107: goto st850;
}
- goto tr2251;
-st808:
+ goto tr2320;
+st850:
if ( ++p == pe )
- goto _test_eof808;
-case 808:
+ goto _test_eof850;
+case 850:
switch( (*p) ) {
- case 73: goto st809;
- case 105: goto st809;
+ case 73: goto st851;
+ case 105: goto st851;
}
- goto tr2251;
-st809:
+ goto tr2320;
+st851:
if ( ++p == pe )
- goto _test_eof809;
-case 809:
+ goto _test_eof851;
+case 851:
switch( (*p) ) {
- case 88: goto st810;
- case 120: goto st810;
+ case 88: goto st852;
+ case 120: goto st852;
}
- goto tr2251;
-st810:
+ goto tr2320;
+st852:
if ( ++p == pe )
- goto _test_eof810;
-case 810:
+ goto _test_eof852;
+case 852:
switch( (*p) ) {
- case 32: goto tr2266;
- case 59: goto tr2266;
+ case 32: goto tr2335;
+ case 59: goto tr2335;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2266;
+ goto tr2335;
} else if ( (*p) >= 9 )
- goto tr2266;
- goto tr2251;
-st811:
+ goto tr2335;
+ goto tr2320;
+st853:
if ( ++p == pe )
- goto _test_eof811;
-case 811:
+ goto _test_eof853;
+case 853:
switch( (*p) ) {
- case 65: goto st812;
- case 80: goto st818;
- case 83: goto st824;
- case 97: goto st812;
- case 112: goto st818;
- case 115: goto st824;
+ case 65: goto st854;
+ case 80: goto st860;
+ case 83: goto st866;
+ case 97: goto st854;
+ case 112: goto st860;
+ case 115: goto st866;
}
- goto tr2251;
-st812:
+ goto tr2320;
+st854:
if ( ++p == pe )
- goto _test_eof812;
-case 812:
+ goto _test_eof854;
+case 854:
switch( (*p) ) {
- case 67: goto st813;
- case 99: goto st813;
+ case 67: goto st855;
+ case 99: goto st855;
}
- goto tr2251;
-st813:
+ goto tr2320;
+st855:
if ( ++p == pe )
- goto _test_eof813;
-case 813:
+ goto _test_eof855;
+case 855:
switch( (*p) ) {
- case 80: goto st814;
- case 112: goto st814;
+ case 80: goto st856;
+ case 112: goto st856;
}
- goto tr2251;
-st814:
+ goto tr2320;
+st856:
if ( ++p == pe )
- goto _test_eof814;
-case 814:
+ goto _test_eof856;
+case 856:
switch( (*p) ) {
- case 75: goto st815;
- case 107: goto st815;
+ case 75: goto st857;
+ case 107: goto st857;
}
- goto tr2251;
-st815:
+ goto tr2320;
+st857:
if ( ++p == pe )
- goto _test_eof815;
-case 815:
+ goto _test_eof857;
+case 857:
switch( (*p) ) {
- case 73: goto st816;
- case 105: goto st816;
+ case 73: goto st858;
+ case 105: goto st858;
}
- goto tr2251;
-st816:
+ goto tr2320;
+st858:
if ( ++p == pe )
- goto _test_eof816;
-case 816:
+ goto _test_eof858;
+case 858:
switch( (*p) ) {
- case 88: goto st817;
- case 120: goto st817;
+ case 88: goto st859;
+ case 120: goto st859;
}
- goto tr2251;
-st817:
+ goto tr2320;
+st859:
if ( ++p == pe )
- goto _test_eof817;
-case 817:
+ goto _test_eof859;
+case 859:
switch( (*p) ) {
- case 32: goto tr2275;
- case 59: goto tr2275;
+ case 32: goto tr2344;
+ case 59: goto tr2344;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2275;
+ goto tr2344;
} else if ( (*p) >= 9 )
- goto tr2275;
- goto tr2251;
-st818:
+ goto tr2344;
+ goto tr2320;
+st860:
if ( ++p == pe )
- goto _test_eof818;
-case 818:
+ goto _test_eof860;
+case 860:
switch( (*p) ) {
- case 71: goto st819;
- case 75: goto st821;
- case 103: goto st819;
- case 107: goto st821;
+ case 71: goto st861;
+ case 75: goto st863;
+ case 103: goto st861;
+ case 107: goto st863;
}
- goto tr2251;
-st819:
+ goto tr2320;
+st861:
if ( ++p == pe )
- goto _test_eof819;
-case 819:
+ goto _test_eof861;
+case 861:
switch( (*p) ) {
- case 80: goto st820;
- case 112: goto st820;
+ case 80: goto st862;
+ case 112: goto st862;
}
- goto tr2251;
-st820:
+ goto tr2320;
+st862:
if ( ++p == pe )
- goto _test_eof820;
-case 820:
+ goto _test_eof862;
+case 862:
switch( (*p) ) {
- case 32: goto tr2279;
- case 59: goto tr2279;
+ case 32: goto tr2348;
+ case 59: goto tr2348;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2279;
+ goto tr2348;
} else if ( (*p) >= 9 )
- goto tr2279;
- goto tr2251;
-st821:
+ goto tr2348;
+ goto tr2320;
+st863:
if ( ++p == pe )
- goto _test_eof821;
-case 821:
+ goto _test_eof863;
+case 863:
switch( (*p) ) {
- case 73: goto st822;
- case 105: goto st822;
+ case 73: goto st864;
+ case 105: goto st864;
}
- goto tr2251;
-st822:
+ goto tr2320;
+st864:
if ( ++p == pe )
- goto _test_eof822;
-case 822:
+ goto _test_eof864;
+case 864:
switch( (*p) ) {
- case 88: goto st823;
- case 120: goto st823;
+ case 88: goto st865;
+ case 120: goto st865;
}
- goto tr2251;
-st823:
+ goto tr2320;
+st865:
if ( ++p == pe )
- goto _test_eof823;
-case 823:
+ goto _test_eof865;
+case 865:
switch( (*p) ) {
- case 32: goto tr2282;
- case 59: goto tr2282;
+ case 32: goto tr2351;
+ case 59: goto tr2351;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2282;
+ goto tr2351;
} else if ( (*p) >= 9 )
- goto tr2282;
- goto tr2251;
-st824:
+ goto tr2351;
+ goto tr2320;
+st866:
if ( ++p == pe )
- goto _test_eof824;
-case 824:
+ goto _test_eof866;
+case 866:
switch( (*p) ) {
- case 80: goto st825;
- case 112: goto st825;
+ case 80: goto st867;
+ case 112: goto st867;
}
- goto tr2251;
-st825:
+ goto tr2320;
+st867:
if ( ++p == pe )
- goto _test_eof825;
-case 825:
+ goto _test_eof867;
+case 867:
switch( (*p) ) {
- case 75: goto st826;
- case 107: goto st826;
+ case 75: goto st868;
+ case 107: goto st868;
}
- goto tr2251;
-st826:
+ goto tr2320;
+st868:
if ( ++p == pe )
- goto _test_eof826;
-case 826:
+ goto _test_eof868;
+case 868:
switch( (*p) ) {
- case 73: goto st827;
- case 105: goto st827;
+ case 73: goto st869;
+ case 105: goto st869;
}
- goto tr2251;
-st827:
+ goto tr2320;
+st869:
if ( ++p == pe )
- goto _test_eof827;
-case 827:
+ goto _test_eof869;
+case 869:
switch( (*p) ) {
- case 32: goto tr2286;
- case 59: goto tr2286;
+ case 32: goto tr2355;
+ case 59: goto tr2355;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2286;
+ goto tr2355;
} else if ( (*p) >= 9 )
- goto tr2286;
- goto tr2251;
-st828:
+ goto tr2355;
+ goto tr2320;
+st870:
if ( ++p == pe )
- goto _test_eof828;
-case 828:
+ goto _test_eof870;
+case 870:
switch( (*p) ) {
- case 73: goto st829;
- case 105: goto st829;
+ case 73: goto st871;
+ case 105: goto st871;
}
- goto tr2251;
-st829:
+ goto tr2320;
+st871:
if ( ++p == pe )
- goto _test_eof829;
-case 829:
+ goto _test_eof871;
+case 871:
switch( (*p) ) {
- case 68: goto st830;
- case 100: goto st830;
+ case 68: goto st872;
+ case 100: goto st872;
}
- goto tr2251;
-st830:
+ goto tr2320;
+st872:
if ( ++p == pe )
- goto _test_eof830;
-case 830:
+ goto _test_eof872;
+case 872:
switch( (*p) ) {
- case 32: goto tr2289;
- case 59: goto tr2289;
+ case 32: goto tr2358;
+ case 59: goto tr2358;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2289;
+ goto tr2358;
} else if ( (*p) >= 9 )
- goto tr2289;
- goto tr2251;
-st831:
+ goto tr2358;
+ goto tr2320;
+st873:
if ( ++p == pe )
- goto _test_eof831;
-case 831:
+ goto _test_eof873;
+case 873:
switch( (*p) ) {
- case 71: goto st832;
- case 75: goto st834;
- case 103: goto st832;
- case 107: goto st834;
+ case 71: goto st874;
+ case 75: goto st876;
+ case 103: goto st874;
+ case 107: goto st876;
}
- goto tr2251;
-st832:
+ goto tr2320;
+st874:
if ( ++p == pe )
- goto _test_eof832;
-case 832:
+ goto _test_eof874;
+case 874:
switch( (*p) ) {
- case 80: goto st833;
- case 112: goto st833;
+ case 80: goto st875;
+ case 112: goto st875;
}
- goto tr2251;
-st833:
+ goto tr2320;
+st875:
if ( ++p == pe )
- goto _test_eof833;
-case 833:
+ goto _test_eof875;
+case 875:
switch( (*p) ) {
- case 32: goto tr2293;
- case 59: goto tr2293;
+ case 32: goto tr2362;
+ case 59: goto tr2362;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2293;
+ goto tr2362;
} else if ( (*p) >= 9 )
- goto tr2293;
- goto tr2251;
-st834:
+ goto tr2362;
+ goto tr2320;
+st876:
if ( ++p == pe )
- goto _test_eof834;
-case 834:
+ goto _test_eof876;
+case 876:
switch( (*p) ) {
- case 73: goto st835;
- case 105: goto st835;
+ case 73: goto st877;
+ case 105: goto st877;
}
- goto tr2251;
-st835:
+ goto tr2320;
+st877:
if ( ++p == pe )
- goto _test_eof835;
-case 835:
+ goto _test_eof877;
+case 877:
switch( (*p) ) {
- case 88: goto st836;
- case 120: goto st836;
+ case 88: goto st878;
+ case 120: goto st878;
}
- goto tr2251;
-st836:
+ goto tr2320;
+st878:
if ( ++p == pe )
- goto _test_eof836;
-case 836:
+ goto _test_eof878;
+case 878:
switch( (*p) ) {
- case 32: goto tr2296;
- case 59: goto tr2296;
+ case 32: goto tr2365;
+ case 59: goto tr2365;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2296;
+ goto tr2365;
} else if ( (*p) >= 9 )
- goto tr2296;
- goto tr2251;
-st837:
+ goto tr2365;
+ goto tr2320;
+st879:
if ( ++p == pe )
- goto _test_eof837;
-case 837:
+ goto _test_eof879;
+case 879:
switch( (*p) ) {
- case 80: goto st838;
- case 112: goto st838;
+ case 80: goto st880;
+ case 112: goto st880;
}
- goto tr2251;
-st838:
+ goto tr2320;
+st880:
if ( ++p == pe )
- goto _test_eof838;
-case 838:
+ goto _test_eof880;
+case 880:
switch( (*p) ) {
- case 75: goto st839;
- case 107: goto st839;
+ case 75: goto st881;
+ case 107: goto st881;
}
- goto tr2251;
-st839:
+ goto tr2320;
+st881:
if ( ++p == pe )
- goto _test_eof839;
-case 839:
+ goto _test_eof881;
+case 881:
switch( (*p) ) {
- case 73: goto st840;
- case 105: goto st840;
+ case 73: goto st882;
+ case 105: goto st882;
}
- goto tr2251;
-st840:
+ goto tr2320;
+st882:
if ( ++p == pe )
- goto _test_eof840;
-case 840:
+ goto _test_eof882;
+case 882:
switch( (*p) ) {
- case 32: goto tr2300;
- case 59: goto tr2300;
+ case 32: goto tr2369;
+ case 59: goto tr2369;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2300;
+ goto tr2369;
} else if ( (*p) >= 9 )
- goto tr2300;
- goto tr2251;
-st841:
+ goto tr2369;
+ goto tr2320;
+st883:
if ( ++p == pe )
- goto _test_eof841;
-case 841:
+ goto _test_eof883;
+case 883:
switch( (*p) ) {
- case 82: goto st842;
- case 114: goto st842;
+ case 82: goto st884;
+ case 114: goto st884;
}
- goto tr2251;
-st842:
+ goto tr2320;
+st884:
if ( ++p == pe )
- goto _test_eof842;
-case 842:
+ goto _test_eof884;
+case 884:
switch( (*p) ) {
- case 73: goto st843;
- case 105: goto st843;
+ case 73: goto st885;
+ case 105: goto st885;
}
- goto tr2251;
-st843:
+ goto tr2320;
+st885:
if ( ++p == pe )
- goto _test_eof843;
-case 843:
+ goto _test_eof885;
+case 885:
switch( (*p) ) {
- case 32: goto tr2303;
- case 59: goto tr2303;
+ case 32: goto tr2372;
+ case 59: goto tr2372;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2303;
+ goto tr2372;
} else if ( (*p) >= 9 )
- goto tr2303;
- goto tr2251;
-st844:
+ goto tr2372;
+ goto tr2320;
+st886:
if ( ++p == pe )
- goto _test_eof844;
-case 844:
+ goto _test_eof886;
+case 886:
if ( (*p) == 46 )
- goto tr2305;
+ goto tr2374;
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2305;
- goto tr2304;
-tr2307:
+ goto tr2374;
+ goto tr2373;
+tr2376:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st845;
-tr2305:
+ goto st887;
+tr2374:
{
s->buffer_length = 0;
}
@@ -63535,41 +65377,41 @@ tr2305:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st845;
-st845:
+ goto st887;
+st887:
if ( ++p == pe )
- goto _test_eof845;
-case 845:
+ goto _test_eof887;
+case 887:
switch( (*p) ) {
- case 32: goto tr2306;
- case 46: goto tr2307;
- case 59: goto tr2306;
+ case 32: goto tr2375;
+ case 46: goto tr2376;
+ case 59: goto tr2375;
}
if ( (*p) < 40 ) {
if ( 9 <= (*p) && (*p) <= 10 )
- goto tr2306;
+ goto tr2375;
} else if ( (*p) > 41 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2307;
+ goto tr2376;
} else
- goto tr2306;
- goto tr2304;
-tr2306:
+ goto tr2375;
+ goto tr2373;
+tr2375:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -63577,91 +65419,91 @@ tr2306:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1435;
-st1435:
+ goto st1483;
+st1483:
if ( ++p == pe )
- goto _test_eof1435;
-case 1435:
+ goto _test_eof1483;
+case 1483:
goto st0;
-st846:
+st888:
if ( ++p == pe )
- goto _test_eof846;
-case 846:
+ goto _test_eof888;
+case 888:
switch( (*p) ) {
- case 42: goto tr2308;
- case 92: goto tr2308;
- case 95: goto tr2308;
+ case 42: goto tr2377;
+ case 92: goto tr2377;
+ case 95: goto tr2377;
}
if ( (*p) < 64 ) {
if ( 45 <= (*p) && (*p) <= 57 )
- goto tr2308;
+ goto tr2377;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr2308;
+ goto tr2377;
} else
- goto tr2308;
- goto tr75;
-tr2308:
+ goto tr2377;
+ goto tr77;
+tr2377:
{
s->dname = rdata_tail;
}
- { p--; {stack[top++] = 847;goto st309;} }
- goto st847;
-st847:
+ { p--; {stack[top++] = 889;goto st318;} }
+ goto st889;
+st889:
if ( ++p == pe )
- goto _test_eof847;
-case 847:
+ goto _test_eof889;
+case 889:
switch( (*p) ) {
- case 32: goto tr2309;
- case 59: goto tr2309;
+ case 32: goto tr2378;
+ case 59: goto tr2378;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2309;
+ goto tr2378;
} else if ( (*p) >= 9 )
- goto tr2309;
- goto tr75;
-tr2309:
+ goto tr2378;
+ goto tr77;
+tr2378:
{
rdata_tail += s->dname_tmp_length;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1436;
-st1436:
+ goto st1484;
+st1484:
if ( ++p == pe )
- goto _test_eof1436;
-case 1436:
+ goto _test_eof1484;
+case 1484:
goto st0;
-st848:
+st890:
if ( ++p == pe )
- goto _test_eof848;
-case 848:
+ goto _test_eof890;
+case 890:
switch( (*p) ) {
- case 42: goto tr2310;
- case 92: goto tr2310;
- case 95: goto tr2310;
+ case 42: goto tr2379;
+ case 92: goto tr2379;
+ case 95: goto tr2379;
}
if ( (*p) < 64 ) {
if ( 45 <= (*p) && (*p) <= 57 )
- goto tr2310;
+ goto tr2379;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr2310;
+ goto tr2379;
} else
- goto tr2310;
- goto tr75;
-tr2310:
+ goto tr2379;
+ goto tr77;
+tr2379:
{
s->dname = rdata_tail;
}
- { p--; {stack[top++] = 849;goto st309;} }
- goto st849;
-st849:
+ { p--; {stack[top++] = 891;goto st318;} }
+ goto st891;
+st891:
if ( ++p == pe )
- goto _test_eof849;
-case 849:
+ goto _test_eof891;
+case 891:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -63675,38 +65517,38 @@ case 849:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2311;
- case 32: goto tr2311;
- case 40: goto tr2312;
- case 41: goto tr2313;
- case 2058: goto tr2314;
- case 2107: goto tr2315;
+ case 9: goto tr2380;
+ case 32: goto tr2380;
+ case 40: goto tr2381;
+ case 41: goto tr2382;
+ case 2058: goto tr2383;
+ case 2107: goto tr2384;
}
- goto tr75;
-tr2317:
+ goto tr77;
+tr2386:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st850;
-tr2318:
+ goto st892;
+tr2387:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st850;
-tr2320:
+ goto st892;
+tr2389:
{
s->line_counter++;
}
- goto st850;
-tr2464:
+ goto st892;
+tr2533:
{
s->buffer[s->buffer_length++] = 0;
@@ -63716,55 +65558,55 @@ tr2464:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 850; goto _out;}
+ {p++; cs = 892; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st850;
-tr2311:
+ goto st892;
+tr2380:
{
rdata_tail += s->dname_tmp_length;
}
- goto st850;
-tr2312:
+ goto st892;
+tr2381:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st850;
-tr2313:
+ goto st892;
+tr2382:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st850;
-tr2314:
+ goto st892;
+tr2383:
{
rdata_tail += s->dname_tmp_length;
}
{
s->line_counter++;
}
- goto st850;
-st850:
+ goto st892;
+st892:
if ( ++p == pe )
- goto _test_eof850;
-case 850:
+ goto _test_eof892;
+case 892:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -63778,35 +65620,35 @@ case 850:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st850;
- case 32: goto st850;
- case 40: goto tr2317;
- case 41: goto tr2318;
- case 42: goto tr2319;
- case 92: goto tr2319;
- case 95: goto tr2319;
- case 2058: goto tr2320;
- case 2107: goto tr2321;
+ case 9: goto st892;
+ case 32: goto st892;
+ case 40: goto tr2386;
+ case 41: goto tr2387;
+ case 42: goto tr2388;
+ case 92: goto tr2388;
+ case 95: goto tr2388;
+ case 2058: goto tr2389;
+ case 2107: goto tr2390;
}
if ( _widec < 64 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr2319;
+ goto tr2388;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr2319;
+ goto tr2388;
} else
- goto tr2319;
- goto tr75;
-tr2319:
+ goto tr2388;
+ goto tr77;
+tr2388:
{
s->dname = rdata_tail;
}
- { p--; {stack[top++] = 851;goto st309;} }
- goto st851;
-st851:
+ { p--; {stack[top++] = 893;goto st318;} }
+ goto st893;
+st893:
if ( ++p == pe )
- goto _test_eof851;
-case 851:
+ goto _test_eof893;
+case 893:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -63820,38 +65662,38 @@ case 851:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2322;
- case 32: goto tr2322;
- case 40: goto tr2323;
- case 41: goto tr2324;
- case 2058: goto tr2325;
- case 2107: goto tr2326;
+ case 9: goto tr2391;
+ case 32: goto tr2391;
+ case 40: goto tr2392;
+ case 41: goto tr2393;
+ case 2058: goto tr2394;
+ case 2107: goto tr2395;
}
- goto tr75;
-tr2329:
+ goto tr77;
+tr2398:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st852;
-tr2330:
+ goto st894;
+tr2399:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st852;
-tr2332:
+ goto st894;
+tr2401:
{
s->line_counter++;
}
- goto st852;
-tr2462:
+ goto st894;
+tr2531:
{
s->buffer[s->buffer_length++] = 0;
@@ -63861,55 +65703,55 @@ tr2462:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 852; goto _out;}
+ {p++; cs = 894; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st852;
-tr2322:
+ goto st894;
+tr2391:
{
rdata_tail += s->dname_tmp_length;
}
- goto st852;
-tr2323:
+ goto st894;
+tr2392:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st852;
-tr2324:
+ goto st894;
+tr2393:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st852;
-tr2325:
+ goto st894;
+tr2394:
{
rdata_tail += s->dname_tmp_length;
}
{
s->line_counter++;
}
- goto st852;
-st852:
+ goto st894;
+st894:
if ( ++p == pe )
- goto _test_eof852;
-case 852:
+ goto _test_eof894;
+case 894:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -63923,17 +65765,17 @@ case 852:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st852;
- case 32: goto st852;
- case 40: goto tr2329;
- case 41: goto tr2330;
- case 2058: goto tr2332;
- case 2107: goto tr2333;
+ case 9: goto st894;
+ case 32: goto st894;
+ case 40: goto tr2398;
+ case 41: goto tr2399;
+ case 2058: goto tr2401;
+ case 2107: goto tr2402;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2331;
- goto tr2327;
-tr2331:
+ goto tr2400;
+ goto tr2396;
+tr2400:
{
s->number64 = 0;
}
@@ -63948,11 +65790,11 @@ tr2331:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st853;
-tr2337:
+ goto st895;
+tr2406:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -63964,14 +65806,14 @@ tr2337:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st853;
-st853:
+ goto st895;
+st895:
if ( ++p == pe )
- goto _test_eof853;
-case 853:
+ goto _test_eof895;
+case 895:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -63985,40 +65827,40 @@ case 853:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2334;
- case 32: goto tr2334;
- case 40: goto tr2335;
- case 41: goto tr2336;
- case 2058: goto tr2338;
- case 2107: goto tr2339;
+ case 9: goto tr2403;
+ case 32: goto tr2403;
+ case 40: goto tr2404;
+ case 41: goto tr2405;
+ case 2058: goto tr2407;
+ case 2107: goto tr2408;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2337;
- goto tr2327;
-tr2341:
+ goto tr2406;
+ goto tr2396;
+tr2410:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st854;
-tr2342:
+ goto st896;
+tr2411:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st854;
-tr2344:
+ goto st896;
+tr2413:
{
s->line_counter++;
}
- goto st854;
-tr2460:
+ goto st896;
+tr2529:
{
s->buffer[s->buffer_length++] = 0;
@@ -64028,15 +65870,15 @@ tr2460:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 854; goto _out;}
+ {p++; cs = 896; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st854;
-tr2334:
+ goto st896;
+tr2403:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64044,11 +65886,11 @@ tr2334:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st854;
-tr2335:
+ goto st896;
+tr2404:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64056,18 +65898,18 @@ tr2335:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st854;
-tr2336:
+ goto st896;
+tr2405:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64075,18 +65917,18 @@ tr2336:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st854;
-tr2338:
+ goto st896;
+tr2407:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64094,17 +65936,17 @@ tr2338:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st854;
-st854:
+ goto st896;
+st896:
if ( ++p == pe )
- goto _test_eof854;
-case 854:
+ goto _test_eof896;
+case 896:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -64118,17 +65960,17 @@ case 854:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st854;
- case 32: goto st854;
- case 40: goto tr2341;
- case 41: goto tr2342;
- case 2058: goto tr2344;
- case 2107: goto tr2345;
+ case 9: goto st896;
+ case 32: goto st896;
+ case 40: goto tr2410;
+ case 41: goto tr2411;
+ case 2058: goto tr2413;
+ case 2107: goto tr2414;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2343;
- goto tr2327;
-tr2343:
+ goto tr2412;
+ goto tr2396;
+tr2412:
{
s->number64 = 0;
}
@@ -64143,11 +65985,11 @@ tr2343:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st855;
-tr2350:
+ goto st897;
+tr2419:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -64159,14 +66001,14 @@ tr2350:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st855;
-st855:
+ goto st897;
+st897:
if ( ++p == pe )
- goto _test_eof855;
-case 855:
+ goto _test_eof897;
+case 897:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -64180,50 +66022,50 @@ case 855:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2347;
- case 32: goto tr2347;
- case 40: goto tr2348;
- case 41: goto tr2349;
- case 68: goto tr2351;
- case 72: goto tr2352;
- case 77: goto tr2353;
- case 83: goto st874;
- case 87: goto tr2355;
- case 100: goto tr2351;
- case 104: goto tr2352;
- case 109: goto tr2353;
- case 115: goto st874;
- case 119: goto tr2355;
- case 2058: goto tr2356;
- case 2107: goto tr2357;
+ case 9: goto tr2416;
+ case 32: goto tr2416;
+ case 40: goto tr2417;
+ case 41: goto tr2418;
+ case 68: goto tr2420;
+ case 72: goto tr2421;
+ case 77: goto tr2422;
+ case 83: goto st916;
+ case 87: goto tr2424;
+ case 100: goto tr2420;
+ case 104: goto tr2421;
+ case 109: goto tr2422;
+ case 115: goto st916;
+ case 119: goto tr2424;
+ case 2058: goto tr2425;
+ case 2107: goto tr2426;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2350;
- goto tr2346;
-tr2359:
+ goto tr2419;
+ goto tr2415;
+tr2428:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st856;
-tr2360:
+ goto st898;
+tr2429:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st856;
-tr2362:
+ goto st898;
+tr2431:
{
s->line_counter++;
}
- goto st856;
-tr2445:
+ goto st898;
+tr2514:
{
s->buffer[s->buffer_length++] = 0;
@@ -64233,15 +66075,15 @@ tr2445:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 856; goto _out;}
+ {p++; cs = 898; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st856;
-tr2347:
+ goto st898;
+tr2416:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64249,11 +66091,11 @@ tr2347:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st856;
-tr2348:
+ goto st898;
+tr2417:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64261,18 +66103,18 @@ tr2348:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st856;
-tr2349:
+ goto st898;
+tr2418:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64280,18 +66122,18 @@ tr2349:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st856;
-tr2356:
+ goto st898;
+tr2425:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64299,20 +66141,20 @@ tr2356:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st856;
-tr2453:
+ goto st898;
+tr2522:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -64322,17 +66164,17 @@ tr2453:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st856;
-tr2454:
+ goto st898;
+tr2523:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -64342,24 +66184,24 @@ tr2454:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st856;
-tr2455:
+ goto st898;
+tr2524:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -64369,24 +66211,24 @@ tr2455:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st856;
-tr2457:
+ goto st898;
+tr2526:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -64396,17 +66238,17 @@ tr2457:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st856;
-st856:
+ goto st898;
+st898:
if ( ++p == pe )
- goto _test_eof856;
-case 856:
+ goto _test_eof898;
+case 898:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -64420,17 +66262,17 @@ case 856:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st856;
- case 32: goto st856;
- case 40: goto tr2359;
- case 41: goto tr2360;
- case 2058: goto tr2362;
- case 2107: goto tr2363;
+ case 9: goto st898;
+ case 32: goto st898;
+ case 40: goto tr2428;
+ case 41: goto tr2429;
+ case 2058: goto tr2431;
+ case 2107: goto tr2432;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2361;
- goto tr2327;
-tr2361:
+ goto tr2430;
+ goto tr2396;
+tr2430:
{
s->number64 = 0;
}
@@ -64445,11 +66287,11 @@ tr2361:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st857;
-tr2367:
+ goto st899;
+tr2436:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -64461,14 +66303,14 @@ tr2367:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st857;
-st857:
+ goto st899;
+st899:
if ( ++p == pe )
- goto _test_eof857;
-case 857:
+ goto _test_eof899;
+case 899:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -64482,50 +66324,50 @@ case 857:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2364;
- case 32: goto tr2364;
- case 40: goto tr2365;
- case 41: goto tr2366;
- case 68: goto tr2368;
- case 72: goto tr2369;
- case 77: goto tr2370;
- case 83: goto st870;
- case 87: goto tr2372;
- case 100: goto tr2368;
- case 104: goto tr2369;
- case 109: goto tr2370;
- case 115: goto st870;
- case 119: goto tr2372;
- case 2058: goto tr2373;
- case 2107: goto tr2374;
+ case 9: goto tr2433;
+ case 32: goto tr2433;
+ case 40: goto tr2434;
+ case 41: goto tr2435;
+ case 68: goto tr2437;
+ case 72: goto tr2438;
+ case 77: goto tr2439;
+ case 83: goto st912;
+ case 87: goto tr2441;
+ case 100: goto tr2437;
+ case 104: goto tr2438;
+ case 109: goto tr2439;
+ case 115: goto st912;
+ case 119: goto tr2441;
+ case 2058: goto tr2442;
+ case 2107: goto tr2443;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2367;
- goto tr2346;
-tr2376:
+ goto tr2436;
+ goto tr2415;
+tr2445:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st858;
-tr2377:
+ goto st900;
+tr2446:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st858;
-tr2379:
+ goto st900;
+tr2448:
{
s->line_counter++;
}
- goto st858;
-tr2430:
+ goto st900;
+tr2499:
{
s->buffer[s->buffer_length++] = 0;
@@ -64535,15 +66377,15 @@ tr2430:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 858; goto _out;}
+ {p++; cs = 900; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st858;
-tr2364:
+ goto st900;
+tr2433:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64551,11 +66393,11 @@ tr2364:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st858;
-tr2365:
+ goto st900;
+tr2434:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64563,18 +66405,18 @@ tr2365:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st858;
-tr2366:
+ goto st900;
+tr2435:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64582,18 +66424,18 @@ tr2366:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st858;
-tr2373:
+ goto st900;
+tr2442:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64601,20 +66443,20 @@ tr2373:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st858;
-tr2438:
+ goto st900;
+tr2507:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -64624,17 +66466,17 @@ tr2438:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st858;
-tr2439:
+ goto st900;
+tr2508:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -64644,24 +66486,24 @@ tr2439:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st858;
-tr2440:
+ goto st900;
+tr2509:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -64671,24 +66513,24 @@ tr2440:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st858;
-tr2442:
+ goto st900;
+tr2511:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -64698,17 +66540,17 @@ tr2442:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st858;
-st858:
+ goto st900;
+st900:
if ( ++p == pe )
- goto _test_eof858;
-case 858:
+ goto _test_eof900;
+case 900:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -64722,17 +66564,17 @@ case 858:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st858;
- case 32: goto st858;
- case 40: goto tr2376;
- case 41: goto tr2377;
- case 2058: goto tr2379;
- case 2107: goto tr2380;
+ case 9: goto st900;
+ case 32: goto st900;
+ case 40: goto tr2445;
+ case 41: goto tr2446;
+ case 2058: goto tr2448;
+ case 2107: goto tr2449;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2378;
- goto tr2327;
-tr2378:
+ goto tr2447;
+ goto tr2396;
+tr2447:
{
s->number64 = 0;
}
@@ -64747,11 +66589,11 @@ tr2378:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st859;
-tr2384:
+ goto st901;
+tr2453:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -64763,14 +66605,14 @@ tr2384:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st859;
-st859:
+ goto st901;
+st901:
if ( ++p == pe )
- goto _test_eof859;
-case 859:
+ goto _test_eof901;
+case 901:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -64784,50 +66626,50 @@ case 859:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2381;
- case 32: goto tr2381;
- case 40: goto tr2382;
- case 41: goto tr2383;
- case 68: goto tr2385;
- case 72: goto tr2386;
- case 77: goto tr2387;
- case 83: goto st866;
- case 87: goto tr2389;
- case 100: goto tr2385;
- case 104: goto tr2386;
- case 109: goto tr2387;
- case 115: goto st866;
- case 119: goto tr2389;
- case 2058: goto tr2390;
- case 2107: goto tr2391;
+ case 9: goto tr2450;
+ case 32: goto tr2450;
+ case 40: goto tr2451;
+ case 41: goto tr2452;
+ case 68: goto tr2454;
+ case 72: goto tr2455;
+ case 77: goto tr2456;
+ case 83: goto st908;
+ case 87: goto tr2458;
+ case 100: goto tr2454;
+ case 104: goto tr2455;
+ case 109: goto tr2456;
+ case 115: goto st908;
+ case 119: goto tr2458;
+ case 2058: goto tr2459;
+ case 2107: goto tr2460;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2384;
- goto tr2346;
-tr2393:
+ goto tr2453;
+ goto tr2415;
+tr2462:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st860;
-tr2394:
+ goto st902;
+tr2463:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st860;
-tr2396:
+ goto st902;
+tr2465:
{
s->line_counter++;
}
- goto st860;
-tr2415:
+ goto st902;
+tr2484:
{
s->buffer[s->buffer_length++] = 0;
@@ -64837,15 +66679,15 @@ tr2415:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 860; goto _out;}
+ {p++; cs = 902; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st860;
-tr2381:
+ goto st902;
+tr2450:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64853,11 +66695,11 @@ tr2381:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st860;
-tr2382:
+ goto st902;
+tr2451:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64865,18 +66707,18 @@ tr2382:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st860;
-tr2383:
+ goto st902;
+tr2452:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64884,18 +66726,18 @@ tr2383:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st860;
-tr2390:
+ goto st902;
+tr2459:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -64903,20 +66745,20 @@ tr2390:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st860;
-tr2423:
+ goto st902;
+tr2492:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -64926,17 +66768,17 @@ tr2423:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st860;
-tr2424:
+ goto st902;
+tr2493:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -64946,24 +66788,24 @@ tr2424:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st860;
-tr2425:
+ goto st902;
+tr2494:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -64973,24 +66815,24 @@ tr2425:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st860;
-tr2427:
+ goto st902;
+tr2496:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -65000,17 +66842,17 @@ tr2427:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st860;
-st860:
+ goto st902;
+st902:
if ( ++p == pe )
- goto _test_eof860;
-case 860:
+ goto _test_eof902;
+case 902:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -65024,17 +66866,17 @@ case 860:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st860;
- case 32: goto st860;
- case 40: goto tr2393;
- case 41: goto tr2394;
- case 2058: goto tr2396;
- case 2107: goto tr2397;
+ case 9: goto st902;
+ case 32: goto st902;
+ case 40: goto tr2462;
+ case 41: goto tr2463;
+ case 2058: goto tr2465;
+ case 2107: goto tr2466;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2395;
- goto tr2327;
-tr2395:
+ goto tr2464;
+ goto tr2396;
+tr2464:
{
s->number64 = 0;
}
@@ -65049,11 +66891,11 @@ tr2395:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st861;
-tr2399:
+ goto st903;
+tr2468:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -65065,38 +66907,38 @@ tr2399:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st861;
-st861:
+ goto st903;
+st903:
if ( ++p == pe )
- goto _test_eof861;
-case 861:
+ goto _test_eof903;
+case 903:
switch( (*p) ) {
- case 32: goto tr2398;
- case 59: goto tr2398;
- case 68: goto tr2400;
- case 72: goto tr2401;
- case 77: goto tr2402;
- case 83: goto st862;
- case 87: goto tr2404;
- case 100: goto tr2400;
- case 104: goto tr2401;
- case 109: goto tr2402;
- case 115: goto st862;
- case 119: goto tr2404;
+ case 32: goto tr2467;
+ case 59: goto tr2467;
+ case 68: goto tr2469;
+ case 72: goto tr2470;
+ case 77: goto tr2471;
+ case 83: goto st904;
+ case 87: goto tr2473;
+ case 100: goto tr2469;
+ case 104: goto tr2470;
+ case 109: goto tr2471;
+ case 115: goto st904;
+ case 119: goto tr2473;
}
if ( (*p) < 40 ) {
if ( 9 <= (*p) && (*p) <= 10 )
- goto tr2398;
+ goto tr2467;
} else if ( (*p) > 41 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2399;
+ goto tr2468;
} else
- goto tr2398;
- goto tr2346;
-tr2398:
+ goto tr2467;
+ goto tr2415;
+tr2467:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -65104,20 +66946,20 @@ tr2398:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1437;
-tr2412:
+ goto st1485;
+tr2481:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -65127,72 +66969,72 @@ tr2412:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1437;
-st1437:
+ goto st1485;
+st1485:
if ( ++p == pe )
- goto _test_eof1437;
-case 1437:
+ goto _test_eof1485;
+case 1485:
goto st0;
-tr2400:
+tr2469:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st862;
-tr2401:
+ goto st904;
+tr2470:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st862;
-tr2402:
+ goto st904;
+tr2471:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st862;
-tr2404:
+ goto st904;
+tr2473:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st862;
-st862:
+ goto st904;
+st904:
if ( ++p == pe )
- goto _test_eof862;
-case 862:
+ goto _test_eof904;
+case 904:
switch( (*p) ) {
- case 32: goto tr2398;
- case 59: goto tr2398;
+ case 32: goto tr2467;
+ case 59: goto tr2467;
}
if ( (*p) < 40 ) {
if ( 9 <= (*p) && (*p) <= 10 )
- goto tr2398;
+ goto tr2467;
} else if ( (*p) > 41 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2405;
+ goto tr2474;
} else
- goto tr2398;
- goto tr2346;
-tr2406:
+ goto tr2467;
+ goto tr2415;
+tr2475:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -65204,11 +67046,11 @@ tr2406:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st863;
-tr2405:
+ goto st905;
+tr2474:
{
s->number64_tmp = s->number64;
}
@@ -65226,17 +67068,17 @@ tr2405:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st863;
-tr2413:
+ goto st905;
+tr2482:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -65256,95 +67098,95 @@ tr2413:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st863;
-st863:
+ goto st905;
+st905:
if ( ++p == pe )
- goto _test_eof863;
-case 863:
+ goto _test_eof905;
+case 905:
switch( (*p) ) {
- case 68: goto tr2407;
- case 72: goto tr2408;
- case 77: goto tr2409;
- case 83: goto st864;
- case 87: goto tr2411;
- case 100: goto tr2407;
- case 104: goto tr2408;
- case 109: goto tr2409;
- case 115: goto st864;
- case 119: goto tr2411;
+ case 68: goto tr2476;
+ case 72: goto tr2477;
+ case 77: goto tr2478;
+ case 83: goto st906;
+ case 87: goto tr2480;
+ case 100: goto tr2476;
+ case 104: goto tr2477;
+ case 109: goto tr2478;
+ case 115: goto st906;
+ case 119: goto tr2480;
}
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2406;
- goto tr2346;
-tr2407:
+ goto tr2475;
+ goto tr2415;
+tr2476:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st864;
-tr2408:
+ goto st906;
+tr2477:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st864;
-tr2409:
+ goto st906;
+tr2478:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st864;
-tr2411:
+ goto st906;
+tr2480:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st864;
-st864:
+ goto st906;
+st906:
if ( ++p == pe )
- goto _test_eof864;
-case 864:
+ goto _test_eof906;
+case 906:
switch( (*p) ) {
- case 32: goto tr2412;
- case 59: goto tr2412;
+ case 32: goto tr2481;
+ case 59: goto tr2481;
}
if ( (*p) < 40 ) {
if ( 9 <= (*p) && (*p) <= 10 )
- goto tr2412;
+ goto tr2481;
} else if ( (*p) > 41 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2413;
+ goto tr2482;
} else
- goto tr2412;
- goto tr2346;
-tr2397:
+ goto tr2481;
+ goto tr2415;
+tr2466:
{
s->buffer_length = 0;
}
- goto st865;
-tr2414:
+ goto st907;
+tr2483:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st865;
-tr2391:
+ goto st907;
+tr2460:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -65352,20 +67194,20 @@ tr2391:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st865;
-tr2428:
+ goto st907;
+tr2497:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -65375,17 +67217,17 @@ tr2428:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st865;
-st865:
+ goto st907;
+st907:
if ( ++p == pe )
- goto _test_eof865;
-case 865:
+ goto _test_eof907;
+case 907:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -65405,50 +67247,50 @@ case 865:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2415;
+ goto tr2484;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2414;
- goto tr75;
-tr2385:
+ goto tr2483;
+ goto tr77;
+tr2454:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st866;
-tr2386:
+ goto st908;
+tr2455:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st866;
-tr2387:
+ goto st908;
+tr2456:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st866;
-tr2389:
+ goto st908;
+tr2458:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st866;
-st866:
+ goto st908;
+st908:
if ( ++p == pe )
- goto _test_eof866;
-case 866:
+ goto _test_eof908;
+case 908:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -65462,17 +67304,17 @@ case 866:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2381;
- case 32: goto tr2381;
- case 40: goto tr2382;
- case 41: goto tr2383;
- case 2058: goto tr2390;
- case 2107: goto tr2391;
+ case 9: goto tr2450;
+ case 32: goto tr2450;
+ case 40: goto tr2451;
+ case 41: goto tr2452;
+ case 2058: goto tr2459;
+ case 2107: goto tr2460;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2416;
- goto tr2346;
-tr2417:
+ goto tr2485;
+ goto tr2415;
+tr2486:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -65484,11 +67326,11 @@ tr2417:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st867;
-tr2416:
+ goto st909;
+tr2485:
{
s->number64_tmp = s->number64;
}
@@ -65506,17 +67348,17 @@ tr2416:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st867;
-tr2426:
+ goto st909;
+tr2495:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -65536,69 +67378,69 @@ tr2426:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st867;
-st867:
+ goto st909;
+st909:
if ( ++p == pe )
- goto _test_eof867;
-case 867:
+ goto _test_eof909;
+case 909:
switch( (*p) ) {
- case 68: goto tr2418;
- case 72: goto tr2419;
- case 77: goto tr2420;
- case 83: goto st868;
- case 87: goto tr2422;
- case 100: goto tr2418;
- case 104: goto tr2419;
- case 109: goto tr2420;
- case 115: goto st868;
- case 119: goto tr2422;
+ case 68: goto tr2487;
+ case 72: goto tr2488;
+ case 77: goto tr2489;
+ case 83: goto st910;
+ case 87: goto tr2491;
+ case 100: goto tr2487;
+ case 104: goto tr2488;
+ case 109: goto tr2489;
+ case 115: goto st910;
+ case 119: goto tr2491;
}
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2417;
- goto tr2346;
-tr2418:
+ goto tr2486;
+ goto tr2415;
+tr2487:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st868;
-tr2419:
+ goto st910;
+tr2488:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st868;
-tr2420:
+ goto st910;
+tr2489:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st868;
-tr2422:
+ goto st910;
+tr2491:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st868;
-st868:
+ goto st910;
+st910:
if ( ++p == pe )
- goto _test_eof868;
-case 868:
+ goto _test_eof910;
+case 910:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -65612,29 +67454,29 @@ case 868:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2423;
- case 32: goto tr2423;
- case 40: goto tr2424;
- case 41: goto tr2425;
- case 2058: goto tr2427;
- case 2107: goto tr2428;
+ case 9: goto tr2492;
+ case 32: goto tr2492;
+ case 40: goto tr2493;
+ case 41: goto tr2494;
+ case 2058: goto tr2496;
+ case 2107: goto tr2497;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2426;
- goto tr2346;
-tr2380:
+ goto tr2495;
+ goto tr2415;
+tr2449:
{
s->buffer_length = 0;
}
- goto st869;
-tr2429:
+ goto st911;
+tr2498:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st869;
-tr2374:
+ goto st911;
+tr2443:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -65642,20 +67484,20 @@ tr2374:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st869;
-tr2443:
+ goto st911;
+tr2512:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -65665,17 +67507,17 @@ tr2443:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st869;
-st869:
+ goto st911;
+st911:
if ( ++p == pe )
- goto _test_eof869;
-case 869:
+ goto _test_eof911;
+case 911:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -65695,50 +67537,50 @@ case 869:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2430;
+ goto tr2499;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2429;
- goto tr75;
-tr2368:
+ goto tr2498;
+ goto tr77;
+tr2437:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st870;
-tr2369:
+ goto st912;
+tr2438:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st870;
-tr2370:
+ goto st912;
+tr2439:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st870;
-tr2372:
+ goto st912;
+tr2441:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st870;
-st870:
+ goto st912;
+st912:
if ( ++p == pe )
- goto _test_eof870;
-case 870:
+ goto _test_eof912;
+case 912:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -65752,17 +67594,17 @@ case 870:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2364;
- case 32: goto tr2364;
- case 40: goto tr2365;
- case 41: goto tr2366;
- case 2058: goto tr2373;
- case 2107: goto tr2374;
+ case 9: goto tr2433;
+ case 32: goto tr2433;
+ case 40: goto tr2434;
+ case 41: goto tr2435;
+ case 2058: goto tr2442;
+ case 2107: goto tr2443;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2431;
- goto tr2346;
-tr2432:
+ goto tr2500;
+ goto tr2415;
+tr2501:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -65774,11 +67616,11 @@ tr2432:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st871;
-tr2431:
+ goto st913;
+tr2500:
{
s->number64_tmp = s->number64;
}
@@ -65796,17 +67638,17 @@ tr2431:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st871;
-tr2441:
+ goto st913;
+tr2510:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -65826,69 +67668,69 @@ tr2441:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st871;
-st871:
+ goto st913;
+st913:
if ( ++p == pe )
- goto _test_eof871;
-case 871:
+ goto _test_eof913;
+case 913:
switch( (*p) ) {
- case 68: goto tr2433;
- case 72: goto tr2434;
- case 77: goto tr2435;
- case 83: goto st872;
- case 87: goto tr2437;
- case 100: goto tr2433;
- case 104: goto tr2434;
- case 109: goto tr2435;
- case 115: goto st872;
- case 119: goto tr2437;
+ case 68: goto tr2502;
+ case 72: goto tr2503;
+ case 77: goto tr2504;
+ case 83: goto st914;
+ case 87: goto tr2506;
+ case 100: goto tr2502;
+ case 104: goto tr2503;
+ case 109: goto tr2504;
+ case 115: goto st914;
+ case 119: goto tr2506;
}
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2432;
- goto tr2346;
-tr2433:
+ goto tr2501;
+ goto tr2415;
+tr2502:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st872;
-tr2434:
+ goto st914;
+tr2503:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st872;
-tr2435:
+ goto st914;
+tr2504:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st872;
-tr2437:
+ goto st914;
+tr2506:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st872;
-st872:
+ goto st914;
+st914:
if ( ++p == pe )
- goto _test_eof872;
-case 872:
+ goto _test_eof914;
+case 914:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -65902,29 +67744,29 @@ case 872:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2438;
- case 32: goto tr2438;
- case 40: goto tr2439;
- case 41: goto tr2440;
- case 2058: goto tr2442;
- case 2107: goto tr2443;
+ case 9: goto tr2507;
+ case 32: goto tr2507;
+ case 40: goto tr2508;
+ case 41: goto tr2509;
+ case 2058: goto tr2511;
+ case 2107: goto tr2512;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2441;
- goto tr2346;
-tr2363:
+ goto tr2510;
+ goto tr2415;
+tr2432:
{
s->buffer_length = 0;
}
- goto st873;
-tr2444:
+ goto st915;
+tr2513:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st873;
-tr2357:
+ goto st915;
+tr2426:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -65932,20 +67774,20 @@ tr2357:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st873;
-tr2458:
+ goto st915;
+tr2527:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -65955,17 +67797,17 @@ tr2458:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st873;
-st873:
+ goto st915;
+st915:
if ( ++p == pe )
- goto _test_eof873;
-case 873:
+ goto _test_eof915;
+case 915:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -65985,50 +67827,50 @@ case 873:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2445;
+ goto tr2514;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2444;
- goto tr75;
-tr2351:
+ goto tr2513;
+ goto tr77;
+tr2420:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st874;
-tr2352:
+ goto st916;
+tr2421:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st874;
-tr2353:
+ goto st916;
+tr2422:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st874;
-tr2355:
+ goto st916;
+tr2424:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st874;
-st874:
+ goto st916;
+st916:
if ( ++p == pe )
- goto _test_eof874;
-case 874:
+ goto _test_eof916;
+case 916:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -66042,17 +67884,17 @@ case 874:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2347;
- case 32: goto tr2347;
- case 40: goto tr2348;
- case 41: goto tr2349;
- case 2058: goto tr2356;
- case 2107: goto tr2357;
+ case 9: goto tr2416;
+ case 32: goto tr2416;
+ case 40: goto tr2417;
+ case 41: goto tr2418;
+ case 2058: goto tr2425;
+ case 2107: goto tr2426;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2446;
- goto tr2346;
-tr2447:
+ goto tr2515;
+ goto tr2415;
+tr2516:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -66064,11 +67906,11 @@ tr2447:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st875;
-tr2446:
+ goto st917;
+tr2515:
{
s->number64_tmp = s->number64;
}
@@ -66086,17 +67928,17 @@ tr2446:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st875;
-tr2456:
+ goto st917;
+tr2525:
{
if (s->number64 + s->number64_tmp < UINT32_MAX) {
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -66116,69 +67958,69 @@ tr2456:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st875;
-st875:
+ goto st917;
+st917:
if ( ++p == pe )
- goto _test_eof875;
-case 875:
+ goto _test_eof917;
+case 917:
switch( (*p) ) {
- case 68: goto tr2448;
- case 72: goto tr2449;
- case 77: goto tr2450;
- case 83: goto st876;
- case 87: goto tr2452;
- case 100: goto tr2448;
- case 104: goto tr2449;
- case 109: goto tr2450;
- case 115: goto st876;
- case 119: goto tr2452;
+ case 68: goto tr2517;
+ case 72: goto tr2518;
+ case 77: goto tr2519;
+ case 83: goto st918;
+ case 87: goto tr2521;
+ case 100: goto tr2517;
+ case 104: goto tr2518;
+ case 109: goto tr2519;
+ case 115: goto st918;
+ case 119: goto tr2521;
}
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2447;
- goto tr2346;
-tr2448:
+ goto tr2516;
+ goto tr2415;
+tr2517:
{ if (s->number64 <= (UINT32_MAX / 86400)) {
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st876;
-tr2449:
+ goto st918;
+tr2518:
{ if (s->number64 <= (UINT32_MAX / 3600)) {
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st876;
-tr2450:
+ goto st918;
+tr2519:
{ if (s->number64 <= (UINT32_MAX / 60)) {
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st876;
-tr2452:
+ goto st918;
+tr2521:
{ if (s->number64 <= (UINT32_MAX / 604800)) {
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st876;
-st876:
+ goto st918;
+st918:
if ( ++p == pe )
- goto _test_eof876;
-case 876:
+ goto _test_eof918;
+case 918:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -66192,29 +68034,29 @@ case 876:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2453;
- case 32: goto tr2453;
- case 40: goto tr2454;
- case 41: goto tr2455;
- case 2058: goto tr2457;
- case 2107: goto tr2458;
+ case 9: goto tr2522;
+ case 32: goto tr2522;
+ case 40: goto tr2523;
+ case 41: goto tr2524;
+ case 2058: goto tr2526;
+ case 2107: goto tr2527;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2456;
- goto tr2346;
-tr2345:
+ goto tr2525;
+ goto tr2415;
+tr2414:
{
s->buffer_length = 0;
}
- goto st877;
-tr2459:
+ goto st919;
+tr2528:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st877;
-tr2339:
+ goto st919;
+tr2408:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -66222,17 +68064,17 @@ tr2339:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st877;
-st877:
+ goto st919;
+st919:
if ( ++p == pe )
- goto _test_eof877;
-case 877:
+ goto _test_eof919;
+case 919:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -66252,34 +68094,34 @@ case 877:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2460;
+ goto tr2529;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2459;
- goto tr75;
-tr2333:
+ goto tr2528;
+ goto tr77;
+tr2402:
{
s->buffer_length = 0;
}
- goto st878;
-tr2461:
+ goto st920;
+tr2530:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st878;
-tr2326:
+ goto st920;
+tr2395:
{
rdata_tail += s->dname_tmp_length;
}
{
s->buffer_length = 0;
}
- goto st878;
-st878:
+ goto st920;
+st920:
if ( ++p == pe )
- goto _test_eof878;
-case 878:
+ goto _test_eof920;
+case 920:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -66299,34 +68141,34 @@ case 878:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2462;
+ goto tr2531;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2461;
- goto tr75;
-tr2321:
+ goto tr2530;
+ goto tr77;
+tr2390:
{
s->buffer_length = 0;
}
- goto st879;
-tr2463:
+ goto st921;
+tr2532:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st879;
-tr2315:
+ goto st921;
+tr2384:
{
rdata_tail += s->dname_tmp_length;
}
{
s->buffer_length = 0;
}
- goto st879;
-st879:
+ goto st921;
+st921:
if ( ++p == pe )
- goto _test_eof879;
-case 879:
+ goto _test_eof921;
+case 921:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -66346,39 +68188,39 @@ case 879:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2464;
+ goto tr2533;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2463;
- goto tr75;
-st880:
+ goto tr2532;
+ goto tr77;
+st922:
if ( ++p == pe )
- goto _test_eof880;
-case 880:
+ goto _test_eof922;
+case 922:
switch( (*p) ) {
- case 32: goto tr75;
- case 59: goto tr75;
+ case 32: goto tr77;
+ case 59: goto tr77;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr75;
+ goto tr77;
} else if ( (*p) >= 9 )
- goto tr75;
- goto tr2465;
-tr2465:
+ goto tr77;
+ goto tr2534;
+tr2534:
{
if (rdata_tail <= rdata_stop) {
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 881;goto st318;} }
- goto st881;
-st881:
+ { p--; {stack[top++] = 923;goto st327;} }
+ goto st923;
+st923:
if ( ++p == pe )
- goto _test_eof881;
-case 881:
+ goto _test_eof923;
+case 923:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -66392,38 +68234,38 @@ case 881:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2466;
- case 32: goto tr2466;
- case 40: goto tr2467;
- case 41: goto tr2468;
- case 2058: goto tr2469;
- case 2107: goto tr2470;
+ case 9: goto tr2535;
+ case 32: goto tr2535;
+ case 40: goto tr2536;
+ case 41: goto tr2537;
+ case 2058: goto tr2538;
+ case 2107: goto tr2539;
}
- goto tr75;
-tr2473:
+ goto tr77;
+tr2542:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st882;
-tr2474:
+ goto st924;
+tr2543:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st882;
-tr2475:
+ goto st924;
+tr2544:
{
s->line_counter++;
}
- goto st882;
-tr2479:
+ goto st924;
+tr2548:
{
s->buffer[s->buffer_length++] = 0;
@@ -66433,95 +68275,95 @@ tr2479:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 882; goto _out;}
+ {p++; cs = 924; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st882;
-tr2466:
+ goto st924;
+tr2535:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st882;
-tr2467:
+ goto st924;
+tr2536:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st882;
-tr2468:
+ goto st924;
+tr2537:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st882;
-tr2469:
+ goto st924;
+tr2538:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st882;
-st882:
+ goto st924;
+st924:
if ( ++p == pe )
- goto _test_eof882;
-case 882:
+ goto _test_eof924;
+case 924:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -66535,104 +68377,104 @@ case 882:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st882;
- case 32: goto st882;
- case 40: goto tr2473;
- case 41: goto tr2474;
- case 2058: goto tr2475;
- case 2107: goto tr2476;
+ case 9: goto st924;
+ case 32: goto st924;
+ case 40: goto tr2542;
+ case 41: goto tr2543;
+ case 2058: goto tr2544;
+ case 2107: goto tr2545;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr2471;
+ goto tr2540;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr2471;
+ goto tr2540;
} else
- goto tr2471;
- goto tr75;
-tr2471:
+ goto tr2540;
+ goto tr77;
+tr2540:
{
if (rdata_tail <= rdata_stop) {
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 883;goto st318;} }
- goto st883;
-st883:
+ { p--; {stack[top++] = 925;goto st327;} }
+ goto st925;
+st925:
if ( ++p == pe )
- goto _test_eof883;
-case 883:
+ goto _test_eof925;
+case 925:
switch( (*p) ) {
- case 32: goto tr2477;
- case 59: goto tr2477;
+ case 32: goto tr2546;
+ case 59: goto tr2546;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2477;
+ goto tr2546;
} else if ( (*p) >= 9 )
- goto tr2477;
- goto tr75;
-tr2477:
+ goto tr2546;
+ goto tr77;
+tr2546:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1438;
-st1438:
+ goto st1486;
+st1486:
if ( ++p == pe )
- goto _test_eof1438;
-case 1438:
+ goto _test_eof1486;
+case 1486:
goto st0;
-tr2476:
+tr2545:
{
s->buffer_length = 0;
}
- goto st884;
-tr2478:
+ goto st926;
+tr2547:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st884;
-tr2470:
+ goto st926;
+tr2539:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st884;
-st884:
+ goto st926;
+st926:
if ( ++p == pe )
- goto _test_eof884;
-case 884:
+ goto _test_eof926;
+case 926:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -66652,38 +68494,38 @@ case 884:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2479;
+ goto tr2548;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2478;
- goto tr75;
-st885:
+ goto tr2547;
+ goto tr77;
+st927:
if ( ++p == pe )
- goto _test_eof885;
-case 885:
+ goto _test_eof927;
+case 927:
switch( (*p) ) {
- case 42: goto tr2480;
- case 92: goto tr2480;
- case 95: goto tr2480;
+ case 42: goto tr2549;
+ case 92: goto tr2549;
+ case 95: goto tr2549;
}
if ( (*p) < 64 ) {
if ( 45 <= (*p) && (*p) <= 57 )
- goto tr2480;
+ goto tr2549;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr2480;
+ goto tr2549;
} else
- goto tr2480;
- goto tr75;
-tr2480:
+ goto tr2549;
+ goto tr77;
+tr2549:
{
s->dname = rdata_tail;
}
- { p--; {stack[top++] = 886;goto st309;} }
- goto st886;
-st886:
+ { p--; {stack[top++] = 928;goto st318;} }
+ goto st928;
+st928:
if ( ++p == pe )
- goto _test_eof886;
-case 886:
+ goto _test_eof928;
+case 928:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -66697,38 +68539,38 @@ case 886:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2481;
- case 32: goto tr2481;
- case 40: goto tr2482;
- case 41: goto tr2483;
- case 2058: goto tr2484;
- case 2107: goto tr2485;
+ case 9: goto tr2550;
+ case 32: goto tr2550;
+ case 40: goto tr2551;
+ case 41: goto tr2552;
+ case 2058: goto tr2553;
+ case 2107: goto tr2554;
}
- goto tr75;
-tr2487:
+ goto tr77;
+tr2556:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st887;
-tr2488:
+ goto st929;
+tr2557:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st887;
-tr2490:
+ goto st929;
+tr2559:
{
s->line_counter++;
}
- goto st887;
-tr2494:
+ goto st929;
+tr2563:
{
s->buffer[s->buffer_length++] = 0;
@@ -66738,55 +68580,55 @@ tr2494:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 887; goto _out;}
+ {p++; cs = 929; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st887;
-tr2481:
+ goto st929;
+tr2550:
{
rdata_tail += s->dname_tmp_length;
}
- goto st887;
-tr2482:
+ goto st929;
+tr2551:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st887;
-tr2483:
+ goto st929;
+tr2552:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st887;
-tr2484:
+ goto st929;
+tr2553:
{
rdata_tail += s->dname_tmp_length;
}
{
s->line_counter++;
}
- goto st887;
-st887:
+ goto st929;
+st929:
if ( ++p == pe )
- goto _test_eof887;
-case 887:
+ goto _test_eof929;
+case 929:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -66800,82 +68642,82 @@ case 887:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st887;
- case 32: goto st887;
- case 40: goto tr2487;
- case 41: goto tr2488;
- case 42: goto tr2489;
- case 92: goto tr2489;
- case 95: goto tr2489;
- case 2058: goto tr2490;
- case 2107: goto tr2491;
+ case 9: goto st929;
+ case 32: goto st929;
+ case 40: goto tr2556;
+ case 41: goto tr2557;
+ case 42: goto tr2558;
+ case 92: goto tr2558;
+ case 95: goto tr2558;
+ case 2058: goto tr2559;
+ case 2107: goto tr2560;
}
if ( _widec < 64 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr2489;
+ goto tr2558;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr2489;
+ goto tr2558;
} else
- goto tr2489;
- goto tr75;
-tr2489:
+ goto tr2558;
+ goto tr77;
+tr2558:
{
s->dname = rdata_tail;
}
- { p--; {stack[top++] = 888;goto st309;} }
- goto st888;
-st888:
+ { p--; {stack[top++] = 930;goto st318;} }
+ goto st930;
+st930:
if ( ++p == pe )
- goto _test_eof888;
-case 888:
+ goto _test_eof930;
+case 930:
switch( (*p) ) {
- case 32: goto tr2492;
- case 59: goto tr2492;
+ case 32: goto tr2561;
+ case 59: goto tr2561;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2492;
+ goto tr2561;
} else if ( (*p) >= 9 )
- goto tr2492;
- goto tr75;
-tr2492:
+ goto tr2561;
+ goto tr77;
+tr2561:
{
rdata_tail += s->dname_tmp_length;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1439;
-st1439:
+ goto st1487;
+st1487:
if ( ++p == pe )
- goto _test_eof1439;
-case 1439:
+ goto _test_eof1487;
+case 1487:
goto st0;
-tr2491:
+tr2560:
{
s->buffer_length = 0;
}
- goto st889;
-tr2493:
+ goto st931;
+tr2562:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st889;
-tr2485:
+ goto st931;
+tr2554:
{
rdata_tail += s->dname_tmp_length;
}
{
s->buffer_length = 0;
}
- goto st889;
-st889:
+ goto st931;
+st931:
if ( ++p == pe )
- goto _test_eof889;
-case 889:
+ goto _test_eof931;
+case 931:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -66895,18 +68737,18 @@ case 889:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2494;
+ goto tr2563;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2493;
- goto tr75;
-st890:
+ goto tr2562;
+ goto tr77;
+st932:
if ( ++p == pe )
- goto _test_eof890;
-case 890:
+ goto _test_eof932;
+case 932:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2495;
- goto tr2327;
-tr2495:
+ goto tr2564;
+ goto tr2396;
+tr2564:
{
s->number64 = 0;
}
@@ -66921,11 +68763,11 @@ tr2495:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st891;
-tr2499:
+ goto st933;
+tr2568:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -66937,14 +68779,14 @@ tr2499:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st891;
-st891:
+ goto st933;
+st933:
if ( ++p == pe )
- goto _test_eof891;
-case 891:
+ goto _test_eof933;
+case 933:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -66958,40 +68800,40 @@ case 891:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2496;
- case 32: goto tr2496;
- case 40: goto tr2497;
- case 41: goto tr2498;
- case 2058: goto tr2500;
- case 2107: goto tr2501;
+ case 9: goto tr2565;
+ case 32: goto tr2565;
+ case 40: goto tr2566;
+ case 41: goto tr2567;
+ case 2058: goto tr2569;
+ case 2107: goto tr2570;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2499;
- goto tr2327;
-tr2503:
+ goto tr2568;
+ goto tr2396;
+tr2572:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st892;
-tr2504:
+ goto st934;
+tr2573:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st892;
-tr2506:
+ goto st934;
+tr2575:
{
s->line_counter++;
}
- goto st892;
-tr2510:
+ goto st934;
+tr2579:
{
s->buffer[s->buffer_length++] = 0;
@@ -67001,15 +68843,15 @@ tr2510:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 892; goto _out;}
+ {p++; cs = 934; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st892;
-tr2496:
+ goto st934;
+tr2565:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -67017,11 +68859,11 @@ tr2496:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st892;
-tr2497:
+ goto st934;
+tr2566:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -67029,18 +68871,18 @@ tr2497:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st892;
-tr2498:
+ goto st934;
+tr2567:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -67048,18 +68890,18 @@ tr2498:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st892;
-tr2500:
+ goto st934;
+tr2569:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -67067,17 +68909,17 @@ tr2500:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st892;
-st892:
+ goto st934;
+st934:
if ( ++p == pe )
- goto _test_eof892;
-case 892:
+ goto _test_eof934;
+case 934:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -67091,71 +68933,71 @@ case 892:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st892;
- case 32: goto st892;
- case 40: goto tr2503;
- case 41: goto tr2504;
- case 42: goto tr2505;
- case 92: goto tr2505;
- case 95: goto tr2505;
- case 2058: goto tr2506;
- case 2107: goto tr2507;
+ case 9: goto st934;
+ case 32: goto st934;
+ case 40: goto tr2572;
+ case 41: goto tr2573;
+ case 42: goto tr2574;
+ case 92: goto tr2574;
+ case 95: goto tr2574;
+ case 2058: goto tr2575;
+ case 2107: goto tr2576;
}
if ( _widec < 64 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr2505;
+ goto tr2574;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr2505;
+ goto tr2574;
} else
- goto tr2505;
- goto tr75;
-tr2505:
+ goto tr2574;
+ goto tr77;
+tr2574:
{
s->dname = rdata_tail;
}
- { p--; {stack[top++] = 893;goto st309;} }
- goto st893;
-st893:
+ { p--; {stack[top++] = 935;goto st318;} }
+ goto st935;
+st935:
if ( ++p == pe )
- goto _test_eof893;
-case 893:
+ goto _test_eof935;
+case 935:
switch( (*p) ) {
- case 32: goto tr2508;
- case 59: goto tr2508;
+ case 32: goto tr2577;
+ case 59: goto tr2577;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2508;
+ goto tr2577;
} else if ( (*p) >= 9 )
- goto tr2508;
- goto tr75;
-tr2508:
+ goto tr2577;
+ goto tr77;
+tr2577:
{
rdata_tail += s->dname_tmp_length;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1440;
-st1440:
+ goto st1488;
+st1488:
if ( ++p == pe )
- goto _test_eof1440;
-case 1440:
+ goto _test_eof1488;
+case 1488:
goto st0;
-tr2507:
+tr2576:
{
s->buffer_length = 0;
}
- goto st894;
-tr2509:
+ goto st936;
+tr2578:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st894;
-tr2501:
+ goto st936;
+tr2570:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -67163,17 +69005,17 @@ tr2501:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st894;
-st894:
+ goto st936;
+st936:
if ( ++p == pe )
- goto _test_eof894;
-case 894:
+ goto _test_eof936;
+case 936:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -67193,36 +69035,36 @@ case 894:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2510;
+ goto tr2579;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2509;
- goto tr75;
-st895:
+ goto tr2578;
+ goto tr77;
+st937:
if ( ++p == pe )
- goto _test_eof895;
-case 895:
+ goto _test_eof937;
+case 937:
switch( (*p) ) {
- case 32: goto tr2512;
- case 59: goto tr2512;
+ case 32: goto tr2581;
+ case 59: goto tr2581;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2512;
+ goto tr2581;
} else if ( (*p) >= 9 )
- goto tr2512;
- goto tr2511;
-tr2521:
+ goto tr2581;
+ goto tr2580;
+tr2590:
{
if (rdata_tail <= rdata_stop) {
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 896;goto st318;} }
- goto st896;
-tr2511:
+ { p--; {stack[top++] = 938;goto st327;} }
+ goto st938;
+tr2580:
{
s->long_string = true;
}
@@ -67231,15 +69073,15 @@ tr2511:
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 896;goto st318;} }
- goto st896;
-st896:
+ { p--; {stack[top++] = 938;goto st327;} }
+ goto st938;
+st938:
if ( ++p == pe )
- goto _test_eof896;
-case 896:
+ goto _test_eof938;
+case 938:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -67257,42 +69099,42 @@ case 896:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2513;
- case 32: goto tr2513;
- case 40: goto tr2514;
- case 41: goto tr2515;
- case 3082: goto tr2516;
- case 3131: goto tr2517;
- case 3338: goto tr2518;
- case 3387: goto tr2518;
- case 3594: goto tr2519;
- case 3643: goto tr2520;
+ case 9: goto tr2582;
+ case 32: goto tr2582;
+ case 40: goto tr2583;
+ case 41: goto tr2584;
+ case 3082: goto tr2585;
+ case 3131: goto tr2586;
+ case 3338: goto tr2587;
+ case 3387: goto tr2587;
+ case 3594: goto tr2588;
+ case 3643: goto tr2589;
}
- goto tr2512;
-tr2523:
+ goto tr2581;
+tr2592:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st897;
-tr2524:
+ goto st939;
+tr2593:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st897;
-tr2525:
+ goto st939;
+tr2594:
{
s->line_counter++;
}
- goto st897;
-tr2531:
+ goto st939;
+tr2600:
{
s->buffer[s->buffer_length++] = 0;
@@ -67302,95 +69144,95 @@ tr2531:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 897; goto _out;}
+ {p++; cs = 939; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st897;
-tr2513:
+ goto st939;
+tr2582:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st897;
-tr2514:
+ goto st939;
+tr2583:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st897;
-tr2515:
+ goto st939;
+tr2584:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st897;
-tr2516:
+ goto st939;
+tr2585:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st897;
-st897:
+ goto st939;
+st939:
if ( ++p == pe )
- goto _test_eof897;
-case 897:
+ goto _test_eof939;
+case 939:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -67408,60 +69250,60 @@ case 897:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st897;
- case 32: goto st897;
- case 40: goto tr2523;
- case 41: goto tr2524;
- case 3082: goto tr2525;
- case 3131: goto tr2526;
- case 3338: goto tr2527;
- case 3387: goto tr2527;
- case 3594: goto tr2528;
- case 3643: goto tr2529;
+ case 9: goto st939;
+ case 32: goto st939;
+ case 40: goto tr2592;
+ case 41: goto tr2593;
+ case 3082: goto tr2594;
+ case 3131: goto tr2595;
+ case 3338: goto tr2596;
+ case 3387: goto tr2596;
+ case 3594: goto tr2597;
+ case 3643: goto tr2598;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr2521;
+ goto tr2590;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr2521;
+ goto tr2590;
} else
- goto tr2521;
- goto tr2512;
-tr2526:
+ goto tr2590;
+ goto tr2581;
+tr2595:
{
s->buffer_length = 0;
}
- goto st898;
-tr2530:
+ goto st940;
+tr2599:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st898;
-tr2517:
+ goto st940;
+tr2586:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st898;
-st898:
+ goto st940;
+st940:
if ( ++p == pe )
- goto _test_eof898;
-case 898:
+ goto _test_eof940;
+case 940:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -67481,22 +69323,22 @@ case 898:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2531;
+ goto tr2600;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2530;
- goto tr2512;
-tr2518:
+ goto tr2599;
+ goto tr2581;
+tr2587:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -67505,32 +69347,32 @@ tr2518:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1441;
-tr2527:
+ goto st1489;
+tr2596:
{
s->long_string = false;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1441;
-st1441:
+ goto st1489;
+st1489:
if ( ++p == pe )
- goto _test_eof1441;
-case 1441:
+ goto _test_eof1489;
+case 1489:
goto st0;
-tr2519:
+tr2588:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -67542,8 +69384,8 @@ tr2519:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1442;
-tr2528:
+ goto st1490;
+tr2597:
{
s->line_counter++;
}
@@ -67553,11 +69395,11 @@ tr2528:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1442;
-st1442:
+ goto st1490;
+st1490:
if ( ++p == pe )
- goto _test_eof1442;
-case 1442:
+ goto _test_eof1490;
+case 1490:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -67575,38 +69417,38 @@ case 1442:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st897;
- case 32: goto st897;
- case 40: goto tr2523;
- case 41: goto tr2524;
- case 3082: goto tr2525;
- case 3131: goto tr2526;
- case 3338: goto tr2527;
- case 3387: goto tr2527;
- case 3594: goto tr2528;
- case 3643: goto tr2529;
+ case 9: goto st939;
+ case 32: goto st939;
+ case 40: goto tr2592;
+ case 41: goto tr2593;
+ case 3082: goto tr2594;
+ case 3131: goto tr2595;
+ case 3338: goto tr2596;
+ case 3387: goto tr2596;
+ case 3594: goto tr2597;
+ case 3643: goto tr2598;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr2521;
+ goto tr2590;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr2521;
+ goto tr2590;
} else
- goto tr2521;
- goto tr2512;
-tr2520:
+ goto tr2590;
+ goto tr2581;
+tr2589:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -67618,8 +69460,8 @@ tr2520:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1443;
-tr2529:
+ goto st1491;
+tr2598:
{
s->buffer_length = 0;
}
@@ -67629,11 +69471,11 @@ tr2529:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1443;
-st1443:
+ goto st1491;
+st1491:
if ( ++p == pe )
- goto _test_eof1443;
-case 1443:
+ goto _test_eof1491;
+case 1491:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -67653,36 +69495,36 @@ case 1443:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2531;
+ goto tr2600;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2530;
- goto tr2512;
-st899:
+ goto tr2599;
+ goto tr2581;
+st941:
if ( ++p == pe )
- goto _test_eof899;
-case 899:
+ goto _test_eof941;
+case 941:
if ( (*p) == 46 )
- goto tr2532;
+ goto tr2601;
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 58 )
- goto tr2532;
+ goto tr2601;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr2532;
+ goto tr2601;
} else
- goto tr2532;
- goto tr2304;
-tr2534:
+ goto tr2601;
+ goto tr2373;
+tr2603:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st900;
-tr2532:
+ goto st942;
+tr2601:
{
s->buffer_length = 0;
}
@@ -67691,47 +69533,47 @@ tr2532:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st900;
-st900:
+ goto st942;
+st942:
if ( ++p == pe )
- goto _test_eof900;
-case 900:
+ goto _test_eof942;
+case 942:
switch( (*p) ) {
- case 32: goto tr2533;
- case 46: goto tr2534;
- case 59: goto tr2533;
+ case 32: goto tr2602;
+ case 46: goto tr2603;
+ case 59: goto tr2602;
}
if ( (*p) < 48 ) {
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2533;
+ goto tr2602;
} else if ( (*p) >= 9 )
- goto tr2533;
+ goto tr2602;
} else if ( (*p) > 58 ) {
if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr2534;
+ goto tr2603;
} else if ( (*p) >= 65 )
- goto tr2534;
+ goto tr2603;
} else
- goto tr2534;
- goto tr2304;
-tr2533:
+ goto tr2603;
+ goto tr2373;
+tr2602:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -67739,20 +69581,20 @@ tr2533:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1444;
-st1444:
+ goto st1492;
+st1492:
if ( ++p == pe )
- goto _test_eof1444;
-case 1444:
+ goto _test_eof1492;
+case 1492:
goto st0;
-st901:
+st943:
if ( ++p == pe )
- goto _test_eof901;
-case 901:
+ goto _test_eof943;
+case 943:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2536;
- goto tr2535;
-tr2540:
+ goto tr2605;
+ goto tr2604;
+tr2609:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -67764,11 +69606,11 @@ tr2540:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st902;
-tr2536:
+ goto st944;
+tr2605:
{
memset(&(s->loc), 0, sizeof(s->loc));
// Defaults.
@@ -67793,14 +69635,14 @@ tr2536:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st902;
-st902:
+ goto st944;
+st944:
if ( ++p == pe )
- goto _test_eof902;
-case 902:
+ goto _test_eof944;
+case 944:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -67814,40 +69656,40 @@ case 902:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2537;
- case 32: goto tr2537;
- case 40: goto tr2538;
- case 41: goto tr2539;
- case 2058: goto tr2541;
- case 2107: goto tr2542;
+ case 9: goto tr2606;
+ case 32: goto tr2606;
+ case 40: goto tr2607;
+ case 41: goto tr2608;
+ case 2058: goto tr2610;
+ case 2107: goto tr2611;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2540;
- goto tr2535;
-tr2544:
+ goto tr2609;
+ goto tr2604;
+tr2613:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st903;
-tr2545:
+ goto st945;
+tr2614:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st903;
-tr2549:
+ goto st945;
+tr2618:
{
s->line_counter++;
}
- goto st903;
-tr2792:
+ goto st945;
+tr2861:
{
s->buffer[s->buffer_length++] = 0;
@@ -67857,75 +69699,75 @@ tr2792:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 903; goto _out;}
+ {p++; cs = 945; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st903;
-tr2537:
+ goto st945;
+tr2606:
{
if (s->number64 <= 90) {
s->loc.d1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st903;
-tr2538:
+ goto st945;
+tr2607:
{
if (s->number64 <= 90) {
s->loc.d1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st903;
-tr2539:
+ goto st945;
+tr2608:
{
if (s->number64 <= 90) {
s->loc.d1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st903;
-tr2541:
+ goto st945;
+tr2610:
{
if (s->number64 <= 90) {
s->loc.d1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st903;
-st903:
+ goto st945;
+st945:
if ( ++p == pe )
- goto _test_eof903;
-case 903:
+ goto _test_eof945;
+case 945:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -67939,19 +69781,19 @@ case 903:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st903;
- case 32: goto st903;
- case 40: goto tr2544;
- case 41: goto tr2545;
- case 78: goto st908;
- case 83: goto st950;
- case 2058: goto tr2549;
- case 2107: goto tr2550;
+ case 9: goto st945;
+ case 32: goto st945;
+ case 40: goto tr2613;
+ case 41: goto tr2614;
+ case 78: goto st950;
+ case 83: goto st992;
+ case 2058: goto tr2618;
+ case 2107: goto tr2619;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2546;
- goto tr2535;
-tr2546:
+ goto tr2615;
+ goto tr2604;
+tr2615:
{
s->number64 = 0;
}
@@ -67966,11 +69808,11 @@ tr2546:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st904;
-tr2554:
+ goto st946;
+tr2623:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -67982,14 +69824,14 @@ tr2554:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st904;
-st904:
+ goto st946;
+st946:
if ( ++p == pe )
- goto _test_eof904;
-case 904:
+ goto _test_eof946;
+case 946:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -68003,40 +69845,40 @@ case 904:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2551;
- case 32: goto tr2551;
- case 40: goto tr2552;
- case 41: goto tr2553;
- case 2058: goto tr2555;
- case 2107: goto tr2556;
+ case 9: goto tr2620;
+ case 32: goto tr2620;
+ case 40: goto tr2621;
+ case 41: goto tr2622;
+ case 2058: goto tr2624;
+ case 2107: goto tr2625;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2554;
- goto tr2535;
-tr2558:
+ goto tr2623;
+ goto tr2604;
+tr2627:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st905;
-tr2559:
+ goto st947;
+tr2628:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st905;
-tr2561:
+ goto st947;
+tr2630:
{
s->line_counter++;
}
- goto st905;
-tr2790:
+ goto st947;
+tr2859:
{
s->buffer[s->buffer_length++] = 0;
@@ -68046,75 +69888,75 @@ tr2790:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 905; goto _out;}
+ {p++; cs = 947; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st905;
-tr2551:
+ goto st947;
+tr2620:
{
if (s->number64 <= 59) {
s->loc.m1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st905;
-tr2552:
+ goto st947;
+tr2621:
{
if (s->number64 <= 59) {
s->loc.m1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st905;
-tr2553:
+ goto st947;
+tr2622:
{
if (s->number64 <= 59) {
s->loc.m1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st905;
-tr2555:
+ goto st947;
+tr2624:
{
if (s->number64 <= 59) {
s->loc.m1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st905;
-st905:
+ goto st947;
+st947:
if ( ++p == pe )
- goto _test_eof905;
-case 905:
+ goto _test_eof947;
+case 947:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -68128,19 +69970,19 @@ case 905:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st905;
- case 32: goto st905;
- case 40: goto tr2558;
- case 41: goto tr2559;
- case 78: goto st908;
- case 83: goto st950;
- case 2058: goto tr2561;
- case 2107: goto tr2562;
+ case 9: goto st947;
+ case 32: goto st947;
+ case 40: goto tr2627;
+ case 41: goto tr2628;
+ case 78: goto st950;
+ case 83: goto st992;
+ case 2058: goto tr2630;
+ case 2107: goto tr2631;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2560;
- goto tr2535;
-tr2567:
+ goto tr2629;
+ goto tr2604;
+tr2636:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -68152,11 +69994,11 @@ tr2567:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st906;
-tr2560:
+ goto st948;
+tr2629:
{
s->decimals = 3;
}
@@ -68177,14 +70019,14 @@ tr2560:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st906;
-st906:
+ goto st948;
+st948:
if ( ++p == pe )
- goto _test_eof906;
-case 906:
+ goto _test_eof948;
+case 948:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -68198,41 +70040,41 @@ case 906:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2563;
- case 32: goto tr2563;
- case 40: goto tr2564;
- case 41: goto tr2565;
- case 46: goto st952;
- case 2058: goto tr2568;
- case 2107: goto tr2569;
+ case 9: goto tr2632;
+ case 32: goto tr2632;
+ case 40: goto tr2633;
+ case 41: goto tr2634;
+ case 46: goto st994;
+ case 2058: goto tr2637;
+ case 2107: goto tr2638;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2567;
- goto tr2535;
-tr2571:
+ goto tr2636;
+ goto tr2604;
+tr2640:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st907;
-tr2572:
+ goto st949;
+tr2641:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st907;
-tr2573:
+ goto st949;
+tr2642:
{
s->line_counter++;
}
- goto st907;
-tr2781:
+ goto st949;
+tr2850:
{
s->buffer[s->buffer_length++] = 0;
@@ -68242,15 +70084,15 @@ tr2781:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 907; goto _out;}
+ {p++; cs = 949; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st907;
-tr2563:
+ goto st949;
+tr2632:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -68260,7 +70102,7 @@ tr2563:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -68268,11 +70110,11 @@ tr2563:
s->loc.s1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st907;
-tr2564:
+ goto st949;
+tr2633:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -68282,7 +70124,7 @@ tr2564:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -68290,18 +70132,18 @@ tr2564:
s->loc.s1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st907;
-tr2565:
+ goto st949;
+tr2634:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -68311,7 +70153,7 @@ tr2565:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -68319,18 +70161,18 @@ tr2565:
s->loc.s1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st907;
-tr2568:
+ goto st949;
+tr2637:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -68340,7 +70182,7 @@ tr2568:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -68348,14 +70190,14 @@ tr2568:
s->loc.s1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st907;
-tr2782:
+ goto st949;
+tr2851:
{
s->number64_tmp = s->number64;
}
@@ -68368,7 +70210,7 @@ tr2782:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -68376,11 +70218,11 @@ tr2782:
s->loc.s1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st907;
-tr2783:
+ goto st949;
+tr2852:
{
s->number64_tmp = s->number64;
}
@@ -68393,7 +70235,7 @@ tr2783:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -68401,18 +70243,18 @@ tr2783:
s->loc.s1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st907;
-tr2784:
+ goto st949;
+tr2853:
{
s->number64_tmp = s->number64;
}
@@ -68425,7 +70267,7 @@ tr2784:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -68433,18 +70275,18 @@ tr2784:
s->loc.s1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st907;
-tr2786:
+ goto st949;
+tr2855:
{
s->number64_tmp = s->number64;
}
@@ -68457,7 +70299,7 @@ tr2786:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -68465,17 +70307,17 @@ tr2786:
s->loc.s1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st907;
-st907:
+ goto st949;
+st949:
if ( ++p == pe )
- goto _test_eof907;
-case 907:
+ goto _test_eof949;
+case 949:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -68489,20 +70331,20 @@ case 907:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st907;
- case 32: goto st907;
- case 40: goto tr2571;
- case 41: goto tr2572;
- case 78: goto st908;
- case 83: goto st950;
- case 2058: goto tr2573;
- case 2107: goto tr2574;
+ case 9: goto st949;
+ case 32: goto st949;
+ case 40: goto tr2640;
+ case 41: goto tr2641;
+ case 78: goto st950;
+ case 83: goto st992;
+ case 2058: goto tr2642;
+ case 2107: goto tr2643;
}
- goto tr2535;
-st908:
+ goto tr2604;
+st950:
if ( ++p == pe )
- goto _test_eof908;
-case 908:
+ goto _test_eof950;
+case 950:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -68516,38 +70358,38 @@ case 908:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st909;
- case 32: goto st909;
- case 40: goto tr2576;
- case 41: goto tr2577;
- case 2058: goto tr2578;
- case 2107: goto tr2579;
+ case 9: goto st951;
+ case 32: goto st951;
+ case 40: goto tr2645;
+ case 41: goto tr2646;
+ case 2058: goto tr2647;
+ case 2107: goto tr2648;
}
- goto tr2535;
-tr2576:
+ goto tr2604;
+tr2645:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st909;
-tr2577:
+ goto st951;
+tr2646:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st909;
-tr2578:
+ goto st951;
+tr2647:
{
s->line_counter++;
}
- goto st909;
-tr2774:
+ goto st951;
+tr2843:
{
s->buffer[s->buffer_length++] = 0;
@@ -68557,55 +70399,55 @@ tr2774:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 909; goto _out;}
+ {p++; cs = 951; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st909;
-tr2775:
+ goto st951;
+tr2844:
{
s->loc.lat_sign = -1;
}
- goto st909;
-tr2776:
+ goto st951;
+tr2845:
{
s->loc.lat_sign = -1;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st909;
-tr2777:
+ goto st951;
+tr2846:
{
s->loc.lat_sign = -1;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st909;
-tr2778:
+ goto st951;
+tr2847:
{
s->loc.lat_sign = -1;
}
{
s->line_counter++;
}
- goto st909;
-st909:
+ goto st951;
+st951:
if ( ++p == pe )
- goto _test_eof909;
-case 909:
+ goto _test_eof951;
+case 951:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -68619,17 +70461,17 @@ case 909:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st909;
- case 32: goto st909;
- case 40: goto tr2576;
- case 41: goto tr2577;
- case 2058: goto tr2578;
- case 2107: goto tr2579;
+ case 9: goto st951;
+ case 32: goto st951;
+ case 40: goto tr2645;
+ case 41: goto tr2646;
+ case 2058: goto tr2647;
+ case 2107: goto tr2648;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2580;
- goto tr2535;
-tr2580:
+ goto tr2649;
+ goto tr2604;
+tr2649:
{
s->number64 = 0;
}
@@ -68644,11 +70486,11 @@ tr2580:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st910;
-tr2584:
+ goto st952;
+tr2653:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -68660,14 +70502,14 @@ tr2584:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st910;
-st910:
+ goto st952;
+st952:
if ( ++p == pe )
- goto _test_eof910;
-case 910:
+ goto _test_eof952;
+case 952:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -68681,40 +70523,40 @@ case 910:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2581;
- case 32: goto tr2581;
- case 40: goto tr2582;
- case 41: goto tr2583;
- case 2058: goto tr2585;
- case 2107: goto tr2586;
+ case 9: goto tr2650;
+ case 32: goto tr2650;
+ case 40: goto tr2651;
+ case 41: goto tr2652;
+ case 2058: goto tr2654;
+ case 2107: goto tr2655;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2584;
- goto tr2535;
-tr2588:
+ goto tr2653;
+ goto tr2604;
+tr2657:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st911;
-tr2589:
+ goto st953;
+tr2658:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st911;
-tr2593:
+ goto st953;
+tr2662:
{
s->line_counter++;
}
- goto st911;
-tr2772:
+ goto st953;
+tr2841:
{
s->buffer[s->buffer_length++] = 0;
@@ -68724,75 +70566,75 @@ tr2772:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 911; goto _out;}
+ {p++; cs = 953; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st911;
-tr2581:
+ goto st953;
+tr2650:
{
if (s->number64 <= 180) {
s->loc.d2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st911;
-tr2582:
+ goto st953;
+tr2651:
{
if (s->number64 <= 180) {
s->loc.d2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st911;
-tr2583:
+ goto st953;
+tr2652:
{
if (s->number64 <= 180) {
s->loc.d2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st911;
-tr2585:
+ goto st953;
+tr2654:
{
if (s->number64 <= 180) {
s->loc.d2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st911;
-st911:
+ goto st953;
+st953:
if ( ++p == pe )
- goto _test_eof911;
-case 911:
+ goto _test_eof953;
+case 953:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -68806,19 +70648,19 @@ case 911:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st911;
- case 32: goto st911;
- case 40: goto tr2588;
- case 41: goto tr2589;
- case 69: goto st916;
- case 87: goto st943;
- case 2058: goto tr2593;
- case 2107: goto tr2594;
+ case 9: goto st953;
+ case 32: goto st953;
+ case 40: goto tr2657;
+ case 41: goto tr2658;
+ case 69: goto st958;
+ case 87: goto st985;
+ case 2058: goto tr2662;
+ case 2107: goto tr2663;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2590;
- goto tr2535;
-tr2590:
+ goto tr2659;
+ goto tr2604;
+tr2659:
{
s->number64 = 0;
}
@@ -68833,11 +70675,11 @@ tr2590:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st912;
-tr2598:
+ goto st954;
+tr2667:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -68849,14 +70691,14 @@ tr2598:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st912;
-st912:
+ goto st954;
+st954:
if ( ++p == pe )
- goto _test_eof912;
-case 912:
+ goto _test_eof954;
+case 954:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -68870,40 +70712,40 @@ case 912:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2595;
- case 32: goto tr2595;
- case 40: goto tr2596;
- case 41: goto tr2597;
- case 2058: goto tr2599;
- case 2107: goto tr2600;
+ case 9: goto tr2664;
+ case 32: goto tr2664;
+ case 40: goto tr2665;
+ case 41: goto tr2666;
+ case 2058: goto tr2668;
+ case 2107: goto tr2669;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2598;
- goto tr2535;
-tr2602:
+ goto tr2667;
+ goto tr2604;
+tr2671:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st913;
-tr2603:
+ goto st955;
+tr2672:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st913;
-tr2605:
+ goto st955;
+tr2674:
{
s->line_counter++;
}
- goto st913;
-tr2770:
+ goto st955;
+tr2839:
{
s->buffer[s->buffer_length++] = 0;
@@ -68913,75 +70755,75 @@ tr2770:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 913; goto _out;}
+ {p++; cs = 955; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st913;
-tr2595:
+ goto st955;
+tr2664:
{
if (s->number64 <= 59) {
s->loc.m2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st913;
-tr2596:
+ goto st955;
+tr2665:
{
if (s->number64 <= 59) {
s->loc.m2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st913;
-tr2597:
+ goto st955;
+tr2666:
{
if (s->number64 <= 59) {
s->loc.m2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st913;
-tr2599:
+ goto st955;
+tr2668:
{
if (s->number64 <= 59) {
s->loc.m2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st913;
-st913:
+ goto st955;
+st955:
if ( ++p == pe )
- goto _test_eof913;
-case 913:
+ goto _test_eof955;
+case 955:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -68995,19 +70837,19 @@ case 913:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st913;
- case 32: goto st913;
- case 40: goto tr2602;
- case 41: goto tr2603;
- case 69: goto st916;
- case 87: goto st943;
- case 2058: goto tr2605;
- case 2107: goto tr2606;
+ case 9: goto st955;
+ case 32: goto st955;
+ case 40: goto tr2671;
+ case 41: goto tr2672;
+ case 69: goto st958;
+ case 87: goto st985;
+ case 2058: goto tr2674;
+ case 2107: goto tr2675;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2604;
- goto tr2535;
-tr2611:
+ goto tr2673;
+ goto tr2604;
+tr2680:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -69019,11 +70861,11 @@ tr2611:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st914;
-tr2604:
+ goto st956;
+tr2673:
{
s->decimals = 3;
}
@@ -69044,14 +70886,14 @@ tr2604:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st914;
-st914:
+ goto st956;
+st956:
if ( ++p == pe )
- goto _test_eof914;
-case 914:
+ goto _test_eof956;
+case 956:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -69065,41 +70907,41 @@ case 914:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2607;
- case 32: goto tr2607;
- case 40: goto tr2608;
- case 41: goto tr2609;
- case 46: goto st945;
- case 2058: goto tr2612;
- case 2107: goto tr2613;
+ case 9: goto tr2676;
+ case 32: goto tr2676;
+ case 40: goto tr2677;
+ case 41: goto tr2678;
+ case 46: goto st987;
+ case 2058: goto tr2681;
+ case 2107: goto tr2682;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2611;
- goto tr2535;
-tr2615:
+ goto tr2680;
+ goto tr2604;
+tr2684:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st915;
-tr2616:
+ goto st957;
+tr2685:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st915;
-tr2617:
+ goto st957;
+tr2686:
{
s->line_counter++;
}
- goto st915;
-tr2761:
+ goto st957;
+tr2830:
{
s->buffer[s->buffer_length++] = 0;
@@ -69109,15 +70951,15 @@ tr2761:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 915; goto _out;}
+ {p++; cs = 957; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st915;
-tr2607:
+ goto st957;
+tr2676:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -69127,7 +70969,7 @@ tr2607:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69135,11 +70977,11 @@ tr2607:
s->loc.s2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st915;
-tr2608:
+ goto st957;
+tr2677:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -69149,7 +70991,7 @@ tr2608:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69157,18 +70999,18 @@ tr2608:
s->loc.s2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st915;
-tr2609:
+ goto st957;
+tr2678:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -69178,7 +71020,7 @@ tr2609:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69186,18 +71028,18 @@ tr2609:
s->loc.s2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st915;
-tr2612:
+ goto st957;
+tr2681:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -69207,7 +71049,7 @@ tr2612:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69215,14 +71057,14 @@ tr2612:
s->loc.s2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st915;
-tr2762:
+ goto st957;
+tr2831:
{
s->number64_tmp = s->number64;
}
@@ -69235,7 +71077,7 @@ tr2762:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69243,11 +71085,11 @@ tr2762:
s->loc.s2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st915;
-tr2763:
+ goto st957;
+tr2832:
{
s->number64_tmp = s->number64;
}
@@ -69260,7 +71102,7 @@ tr2763:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69268,18 +71110,18 @@ tr2763:
s->loc.s2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st915;
-tr2764:
+ goto st957;
+tr2833:
{
s->number64_tmp = s->number64;
}
@@ -69292,7 +71134,7 @@ tr2764:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69300,18 +71142,18 @@ tr2764:
s->loc.s2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st915;
-tr2766:
+ goto st957;
+tr2835:
{
s->number64_tmp = s->number64;
}
@@ -69324,7 +71166,7 @@ tr2766:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69332,17 +71174,17 @@ tr2766:
s->loc.s2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st915;
-st915:
+ goto st957;
+st957:
if ( ++p == pe )
- goto _test_eof915;
-case 915:
+ goto _test_eof957;
+case 957:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -69356,20 +71198,20 @@ case 915:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st915;
- case 32: goto st915;
- case 40: goto tr2615;
- case 41: goto tr2616;
- case 69: goto st916;
- case 87: goto st943;
- case 2058: goto tr2617;
- case 2107: goto tr2618;
+ case 9: goto st957;
+ case 32: goto st957;
+ case 40: goto tr2684;
+ case 41: goto tr2685;
+ case 69: goto st958;
+ case 87: goto st985;
+ case 2058: goto tr2686;
+ case 2107: goto tr2687;
}
- goto tr2535;
-st916:
+ goto tr2604;
+st958:
if ( ++p == pe )
- goto _test_eof916;
-case 916:
+ goto _test_eof958;
+case 958:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -69383,38 +71225,38 @@ case 916:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st917;
- case 32: goto st917;
- case 40: goto tr2620;
- case 41: goto tr2621;
- case 2058: goto tr2622;
- case 2107: goto tr2623;
+ case 9: goto st959;
+ case 32: goto st959;
+ case 40: goto tr2689;
+ case 41: goto tr2690;
+ case 2058: goto tr2691;
+ case 2107: goto tr2692;
}
- goto tr2535;
-tr2620:
+ goto tr2604;
+tr2689:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st917;
-tr2621:
+ goto st959;
+tr2690:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st917;
-tr2622:
+ goto st959;
+tr2691:
{
s->line_counter++;
}
- goto st917;
-tr2754:
+ goto st959;
+tr2823:
{
s->buffer[s->buffer_length++] = 0;
@@ -69424,55 +71266,55 @@ tr2754:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 917; goto _out;}
+ {p++; cs = 959; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st917;
-tr2755:
+ goto st959;
+tr2824:
{
s->loc.long_sign = -1;
}
- goto st917;
-tr2756:
+ goto st959;
+tr2825:
{
s->loc.long_sign = -1;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st917;
-tr2757:
+ goto st959;
+tr2826:
{
s->loc.long_sign = -1;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st917;
-tr2758:
+ goto st959;
+tr2827:
{
s->loc.long_sign = -1;
}
{
s->line_counter++;
}
- goto st917;
-st917:
+ goto st959;
+st959:
if ( ++p == pe )
- goto _test_eof917;
-case 917:
+ goto _test_eof959;
+case 959:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -69486,25 +71328,25 @@ case 917:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st917;
- case 32: goto st917;
- case 40: goto tr2620;
- case 41: goto tr2621;
- case 45: goto st918;
- case 2058: goto tr2622;
- case 2107: goto tr2623;
+ case 9: goto st959;
+ case 32: goto st959;
+ case 40: goto tr2689;
+ case 41: goto tr2690;
+ case 45: goto st960;
+ case 2058: goto tr2691;
+ case 2107: goto tr2692;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2625;
- goto tr2535;
-st918:
+ goto tr2694;
+ goto tr2604;
+st960:
if ( ++p == pe )
- goto _test_eof918;
-case 918:
+ goto _test_eof960;
+case 960:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2626;
- goto tr2535;
-tr2631:
+ goto tr2695;
+ goto tr2604;
+tr2700:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -69516,11 +71358,11 @@ tr2631:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st919;
-tr2625:
+ goto st961;
+tr2694:
{
s->decimals = 2;
}
@@ -69541,11 +71383,11 @@ tr2625:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st919;
-tr2626:
+ goto st961;
+tr2695:
{
s->loc.alt_sign = -1;
}
@@ -69569,14 +71411,14 @@ tr2626:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st919;
-st919:
+ goto st961;
+st961:
if ( ++p == pe )
- goto _test_eof919;
-case 919:
+ goto _test_eof961;
+case 961:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -69594,46 +71436,46 @@ case 919:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2627;
- case 32: goto tr2627;
- case 40: goto tr2628;
- case 41: goto tr2629;
- case 46: goto st939;
- case 109: goto tr2632;
- case 3082: goto tr2633;
- case 3131: goto tr2634;
- case 3338: goto tr2635;
- case 3387: goto tr2635;
- case 3594: goto tr2636;
- case 3643: goto tr2637;
+ case 9: goto tr2696;
+ case 32: goto tr2696;
+ case 40: goto tr2697;
+ case 41: goto tr2698;
+ case 46: goto st981;
+ case 109: goto tr2701;
+ case 3082: goto tr2702;
+ case 3131: goto tr2703;
+ case 3338: goto tr2704;
+ case 3387: goto tr2704;
+ case 3594: goto tr2705;
+ case 3643: goto tr2706;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2631;
- goto tr2535;
-tr2639:
+ goto tr2700;
+ goto tr2604;
+tr2708:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st920;
-tr2640:
+ goto st962;
+tr2709:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st920;
-tr2642:
+ goto st962;
+tr2711:
{
s->line_counter++;
}
- goto st920;
-tr2741:
+ goto st962;
+tr2810:
{
s->buffer[s->buffer_length++] = 0;
@@ -69643,15 +71485,15 @@ tr2741:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 920; goto _out;}
+ {p++; cs = 962; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st920;
-tr2627:
+ goto st962;
+tr2696:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -69661,7 +71503,7 @@ tr2627:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69671,11 +71513,11 @@ tr2627:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st920;
-tr2628:
+ goto st962;
+tr2697:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -69685,7 +71527,7 @@ tr2628:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69695,18 +71537,18 @@ tr2628:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st920;
-tr2629:
+ goto st962;
+tr2698:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -69716,7 +71558,7 @@ tr2629:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69726,18 +71568,18 @@ tr2629:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st920;
-tr2633:
+ goto st962;
+tr2702:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -69747,7 +71589,7 @@ tr2633:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69757,14 +71599,14 @@ tr2633:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st920;
-tr2742:
+ goto st962;
+tr2811:
{
s->number64_tmp = s->number64;
}
@@ -69777,7 +71619,7 @@ tr2742:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69787,11 +71629,11 @@ tr2742:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st920;
-tr2743:
+ goto st962;
+tr2812:
{
s->number64_tmp = s->number64;
}
@@ -69804,7 +71646,7 @@ tr2743:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69814,18 +71656,18 @@ tr2743:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st920;
-tr2744:
+ goto st962;
+tr2813:
{
s->number64_tmp = s->number64;
}
@@ -69838,7 +71680,7 @@ tr2744:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69848,18 +71690,18 @@ tr2744:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st920;
-tr2747:
+ goto st962;
+tr2816:
{
s->number64_tmp = s->number64;
}
@@ -69872,7 +71714,7 @@ tr2747:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -69882,17 +71724,17 @@ tr2747:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st920;
-st920:
+ goto st962;
+st962:
if ( ++p == pe )
- goto _test_eof920;
-case 920:
+ goto _test_eof962;
+case 962:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -69910,21 +71752,21 @@ case 920:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st920;
- case 32: goto st920;
- case 40: goto tr2639;
- case 41: goto tr2640;
- case 3082: goto tr2642;
- case 3131: goto tr2643;
- case 3338: goto tr2644;
- case 3387: goto tr2644;
- case 3594: goto tr2645;
- case 3643: goto tr2646;
+ case 9: goto st962;
+ case 32: goto st962;
+ case 40: goto tr2708;
+ case 41: goto tr2709;
+ case 3082: goto tr2711;
+ case 3131: goto tr2712;
+ case 3338: goto tr2713;
+ case 3387: goto tr2713;
+ case 3594: goto tr2714;
+ case 3643: goto tr2715;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2641;
- goto tr2535;
-tr2651:
+ goto tr2710;
+ goto tr2604;
+tr2720:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -69936,11 +71778,11 @@ tr2651:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st921;
-tr2641:
+ goto st963;
+tr2710:
{
s->decimals = 2;
}
@@ -69961,14 +71803,14 @@ tr2641:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st921;
-st921:
+ goto st963;
+st963:
if ( ++p == pe )
- goto _test_eof921;
-case 921:
+ goto _test_eof963;
+case 963:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -69986,46 +71828,46 @@ case 921:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2647;
- case 32: goto tr2647;
- case 40: goto tr2648;
- case 41: goto tr2649;
- case 46: goto st935;
- case 109: goto tr2652;
- case 3082: goto tr2653;
- case 3131: goto tr2654;
- case 3338: goto tr2655;
- case 3387: goto tr2655;
- case 3594: goto tr2656;
- case 3643: goto tr2657;
+ case 9: goto tr2716;
+ case 32: goto tr2716;
+ case 40: goto tr2717;
+ case 41: goto tr2718;
+ case 46: goto st977;
+ case 109: goto tr2721;
+ case 3082: goto tr2722;
+ case 3131: goto tr2723;
+ case 3338: goto tr2724;
+ case 3387: goto tr2724;
+ case 3594: goto tr2725;
+ case 3643: goto tr2726;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2651;
- goto tr2535;
-tr2659:
+ goto tr2720;
+ goto tr2604;
+tr2728:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st922;
-tr2660:
+ goto st964;
+tr2729:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st922;
-tr2662:
+ goto st964;
+tr2731:
{
s->line_counter++;
}
- goto st922;
-tr2728:
+ goto st964;
+tr2797:
{
s->buffer[s->buffer_length++] = 0;
@@ -70035,15 +71877,15 @@ tr2728:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 922; goto _out;}
+ {p++; cs = 964; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st922;
-tr2647:
+ goto st964;
+tr2716:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -70053,7 +71895,7 @@ tr2647:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70061,11 +71903,11 @@ tr2647:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st922;
-tr2648:
+ goto st964;
+tr2717:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -70075,7 +71917,7 @@ tr2648:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70083,18 +71925,18 @@ tr2648:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st922;
-tr2649:
+ goto st964;
+tr2718:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -70104,7 +71946,7 @@ tr2649:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70112,18 +71954,18 @@ tr2649:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st922;
-tr2653:
+ goto st964;
+tr2722:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -70133,7 +71975,7 @@ tr2653:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70141,14 +71983,14 @@ tr2653:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st922;
-tr2729:
+ goto st964;
+tr2798:
{
s->number64_tmp = s->number64;
}
@@ -70161,7 +72003,7 @@ tr2729:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70169,11 +72011,11 @@ tr2729:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st922;
-tr2730:
+ goto st964;
+tr2799:
{
s->number64_tmp = s->number64;
}
@@ -70186,7 +72028,7 @@ tr2730:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70194,18 +72036,18 @@ tr2730:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st922;
-tr2731:
+ goto st964;
+tr2800:
{
s->number64_tmp = s->number64;
}
@@ -70218,7 +72060,7 @@ tr2731:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70226,18 +72068,18 @@ tr2731:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st922;
-tr2734:
+ goto st964;
+tr2803:
{
s->number64_tmp = s->number64;
}
@@ -70250,7 +72092,7 @@ tr2734:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70258,17 +72100,17 @@ tr2734:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st922;
-st922:
+ goto st964;
+st964:
if ( ++p == pe )
- goto _test_eof922;
-case 922:
+ goto _test_eof964;
+case 964:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -70286,21 +72128,21 @@ case 922:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st922;
- case 32: goto st922;
- case 40: goto tr2659;
- case 41: goto tr2660;
- case 3082: goto tr2662;
- case 3131: goto tr2663;
- case 3338: goto tr2644;
- case 3387: goto tr2644;
- case 3594: goto tr2664;
- case 3643: goto tr2665;
+ case 9: goto st964;
+ case 32: goto st964;
+ case 40: goto tr2728;
+ case 41: goto tr2729;
+ case 3082: goto tr2731;
+ case 3131: goto tr2732;
+ case 3338: goto tr2713;
+ case 3387: goto tr2713;
+ case 3594: goto tr2733;
+ case 3643: goto tr2734;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2661;
- goto tr2535;
-tr2670:
+ goto tr2730;
+ goto tr2604;
+tr2739:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -70312,11 +72154,11 @@ tr2670:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st923;
-tr2661:
+ goto st965;
+tr2730:
{
s->decimals = 2;
}
@@ -70337,14 +72179,14 @@ tr2661:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st923;
-st923:
+ goto st965;
+st965:
if ( ++p == pe )
- goto _test_eof923;
-case 923:
+ goto _test_eof965;
+case 965:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -70362,46 +72204,46 @@ case 923:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2666;
- case 32: goto tr2666;
- case 40: goto tr2667;
- case 41: goto tr2668;
- case 46: goto st931;
- case 109: goto tr2671;
- case 3082: goto tr2672;
- case 3131: goto tr2673;
- case 3338: goto tr2674;
- case 3387: goto tr2674;
- case 3594: goto tr2675;
- case 3643: goto tr2676;
+ case 9: goto tr2735;
+ case 32: goto tr2735;
+ case 40: goto tr2736;
+ case 41: goto tr2737;
+ case 46: goto st973;
+ case 109: goto tr2740;
+ case 3082: goto tr2741;
+ case 3131: goto tr2742;
+ case 3338: goto tr2743;
+ case 3387: goto tr2743;
+ case 3594: goto tr2744;
+ case 3643: goto tr2745;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2670;
- goto tr2535;
-tr2678:
+ goto tr2739;
+ goto tr2604;
+tr2747:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st924;
-tr2679:
+ goto st966;
+tr2748:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st924;
-tr2681:
+ goto st966;
+tr2750:
{
s->line_counter++;
}
- goto st924;
-tr2715:
+ goto st966;
+tr2784:
{
s->buffer[s->buffer_length++] = 0;
@@ -70411,15 +72253,15 @@ tr2715:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 924; goto _out;}
+ {p++; cs = 966; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st924;
-tr2666:
+ goto st966;
+tr2735:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -70429,7 +72271,7 @@ tr2666:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70437,11 +72279,11 @@ tr2666:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st924;
-tr2667:
+ goto st966;
+tr2736:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -70451,7 +72293,7 @@ tr2667:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70459,18 +72301,18 @@ tr2667:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st924;
-tr2668:
+ goto st966;
+tr2737:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -70480,7 +72322,7 @@ tr2668:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70488,18 +72330,18 @@ tr2668:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st924;
-tr2672:
+ goto st966;
+tr2741:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -70509,7 +72351,7 @@ tr2672:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70517,14 +72359,14 @@ tr2672:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st924;
-tr2716:
+ goto st966;
+tr2785:
{
s->number64_tmp = s->number64;
}
@@ -70537,7 +72379,7 @@ tr2716:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70545,11 +72387,11 @@ tr2716:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st924;
-tr2717:
+ goto st966;
+tr2786:
{
s->number64_tmp = s->number64;
}
@@ -70562,7 +72404,7 @@ tr2717:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70570,18 +72412,18 @@ tr2717:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st924;
-tr2718:
+ goto st966;
+tr2787:
{
s->number64_tmp = s->number64;
}
@@ -70594,7 +72436,7 @@ tr2718:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70602,18 +72444,18 @@ tr2718:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st924;
-tr2721:
+ goto st966;
+tr2790:
{
s->number64_tmp = s->number64;
}
@@ -70626,7 +72468,7 @@ tr2721:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70634,17 +72476,17 @@ tr2721:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st924;
-st924:
+ goto st966;
+st966:
if ( ++p == pe )
- goto _test_eof924;
-case 924:
+ goto _test_eof966;
+case 966:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -70662,21 +72504,21 @@ case 924:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st924;
- case 32: goto st924;
- case 40: goto tr2678;
- case 41: goto tr2679;
- case 3082: goto tr2681;
- case 3131: goto tr2682;
- case 3338: goto tr2644;
- case 3387: goto tr2644;
- case 3594: goto tr2683;
- case 3643: goto tr2684;
+ case 9: goto st966;
+ case 32: goto st966;
+ case 40: goto tr2747;
+ case 41: goto tr2748;
+ case 3082: goto tr2750;
+ case 3131: goto tr2751;
+ case 3338: goto tr2713;
+ case 3387: goto tr2713;
+ case 3594: goto tr2752;
+ case 3643: goto tr2753;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2680;
- goto tr2535;
-tr2689:
+ goto tr2749;
+ goto tr2604;
+tr2758:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -70688,11 +72530,11 @@ tr2689:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st925;
-tr2680:
+ goto st967;
+tr2749:
{
s->decimals = 2;
}
@@ -70713,14 +72555,14 @@ tr2680:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st925;
-st925:
+ goto st967;
+st967:
if ( ++p == pe )
- goto _test_eof925;
-case 925:
+ goto _test_eof967;
+case 967:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -70738,46 +72580,46 @@ case 925:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2685;
- case 32: goto tr2685;
- case 40: goto tr2686;
- case 41: goto tr2687;
- case 46: goto st928;
- case 109: goto tr2685;
- case 3082: goto tr2690;
- case 3131: goto tr2691;
- case 3338: goto tr2692;
- case 3387: goto tr2692;
- case 3594: goto tr2693;
- case 3643: goto tr2694;
+ case 9: goto tr2754;
+ case 32: goto tr2754;
+ case 40: goto tr2755;
+ case 41: goto tr2756;
+ case 46: goto st970;
+ case 109: goto tr2754;
+ case 3082: goto tr2759;
+ case 3131: goto tr2760;
+ case 3338: goto tr2761;
+ case 3387: goto tr2761;
+ case 3594: goto tr2762;
+ case 3643: goto tr2763;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2689;
- goto tr2535;
-tr2696:
+ goto tr2758;
+ goto tr2604;
+tr2765:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st926;
-tr2697:
+ goto st968;
+tr2766:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st926;
-tr2698:
+ goto st968;
+tr2767:
{
s->line_counter++;
}
- goto st926;
-tr2703:
+ goto st968;
+tr2772:
{
s->buffer[s->buffer_length++] = 0;
@@ -70787,15 +72629,15 @@ tr2703:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 926; goto _out;}
+ {p++; cs = 968; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st926;
-tr2685:
+ goto st968;
+tr2754:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -70805,7 +72647,7 @@ tr2685:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70813,11 +72655,11 @@ tr2685:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st926;
-tr2686:
+ goto st968;
+tr2755:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -70827,7 +72669,7 @@ tr2686:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70835,18 +72677,18 @@ tr2686:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st926;
-tr2687:
+ goto st968;
+tr2756:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -70856,7 +72698,7 @@ tr2687:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70864,18 +72706,18 @@ tr2687:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st926;
-tr2690:
+ goto st968;
+tr2759:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -70885,7 +72727,7 @@ tr2690:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70893,14 +72735,14 @@ tr2690:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st926;
-tr2704:
+ goto st968;
+tr2773:
{
s->number64_tmp = s->number64;
}
@@ -70913,7 +72755,7 @@ tr2704:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70921,11 +72763,11 @@ tr2704:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st926;
-tr2705:
+ goto st968;
+tr2774:
{
s->number64_tmp = s->number64;
}
@@ -70938,7 +72780,7 @@ tr2705:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70946,18 +72788,18 @@ tr2705:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st926;
-tr2706:
+ goto st968;
+tr2775:
{
s->number64_tmp = s->number64;
}
@@ -70970,7 +72812,7 @@ tr2706:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -70978,18 +72820,18 @@ tr2706:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st926;
-tr2708:
+ goto st968;
+tr2777:
{
s->number64_tmp = s->number64;
}
@@ -71002,7 +72844,7 @@ tr2708:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71010,17 +72852,17 @@ tr2708:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st926;
-st926:
+ goto st968;
+st968:
if ( ++p == pe )
- goto _test_eof926;
-case 926:
+ goto _test_eof968;
+case 968:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -71038,31 +72880,31 @@ case 926:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st926;
- case 32: goto st926;
- case 40: goto tr2696;
- case 41: goto tr2697;
- case 3082: goto tr2698;
- case 3131: goto tr2699;
- case 3338: goto tr2644;
- case 3387: goto tr2644;
- case 3594: goto tr2700;
- case 3643: goto tr2701;
+ case 9: goto st968;
+ case 32: goto st968;
+ case 40: goto tr2765;
+ case 41: goto tr2766;
+ case 3082: goto tr2767;
+ case 3131: goto tr2768;
+ case 3338: goto tr2713;
+ case 3387: goto tr2713;
+ case 3594: goto tr2769;
+ case 3643: goto tr2770;
}
- goto tr2535;
-tr2699:
+ goto tr2604;
+tr2768:
{
s->buffer_length = 0;
}
- goto st927;
-tr2702:
+ goto st969;
+tr2771:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st927;
-tr2691:
+ goto st969;
+tr2760:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -71072,7 +72914,7 @@ tr2691:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71080,14 +72922,14 @@ tr2691:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st927;
-tr2709:
+ goto st969;
+tr2778:
{
s->number64_tmp = s->number64;
}
@@ -71100,7 +72942,7 @@ tr2709:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71108,17 +72950,17 @@ tr2709:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st927;
-st927:
+ goto st969;
+st969:
if ( ++p == pe )
- goto _test_eof927;
-case 927:
+ goto _test_eof969;
+case 969:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -71138,11 +72980,11 @@ case 927:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2703;
+ goto tr2772;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2702;
- goto tr2535;
-tr2635:
+ goto tr2771;
+ goto tr2604;
+tr2704:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -71152,7 +72994,7 @@ tr2635:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71162,7 +73004,7 @@ tr2635:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71194,8 +73036,8 @@ tr2635:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1445;
-tr2644:
+ goto st1493;
+tr2713:
{
// Write version.
*(rdata_tail) = 0;
@@ -71225,8 +73067,8 @@ tr2644:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1445;
-tr2655:
+ goto st1493;
+tr2724:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -71236,7 +73078,7 @@ tr2655:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71244,7 +73086,7 @@ tr2655:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71276,8 +73118,8 @@ tr2655:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1445;
-tr2674:
+ goto st1493;
+tr2743:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -71287,7 +73129,7 @@ tr2674:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71295,7 +73137,7 @@ tr2674:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71327,8 +73169,8 @@ tr2674:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1445;
-tr2692:
+ goto st1493;
+tr2761:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -71338,7 +73180,7 @@ tr2692:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71346,7 +73188,7 @@ tr2692:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71378,8 +73220,8 @@ tr2692:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1445;
-tr2710:
+ goto st1493;
+tr2779:
{
s->number64_tmp = s->number64;
}
@@ -71392,7 +73234,7 @@ tr2710:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71400,7 +73242,7 @@ tr2710:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71432,8 +73274,8 @@ tr2710:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1445;
-tr2723:
+ goto st1493;
+tr2792:
{
s->number64_tmp = s->number64;
}
@@ -71446,7 +73288,7 @@ tr2723:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71454,7 +73296,7 @@ tr2723:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71486,8 +73328,8 @@ tr2723:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1445;
-tr2736:
+ goto st1493;
+tr2805:
{
s->number64_tmp = s->number64;
}
@@ -71500,7 +73342,7 @@ tr2736:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71508,7 +73350,7 @@ tr2736:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71540,8 +73382,8 @@ tr2736:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1445;
-tr2749:
+ goto st1493;
+tr2818:
{
s->number64_tmp = s->number64;
}
@@ -71554,7 +73396,7 @@ tr2749:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71564,7 +73406,7 @@ tr2749:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71596,13 +73438,13 @@ tr2749:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1445;
-st1445:
+ goto st1493;
+st1493:
if ( ++p == pe )
- goto _test_eof1445;
-case 1445:
+ goto _test_eof1493;
+case 1493:
goto st0;
-tr2700:
+tr2769:
{
s->line_counter++;
}
@@ -71635,8 +73477,8 @@ tr2700:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1446;
-tr2693:
+ goto st1494;
+tr2762:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -71646,7 +73488,7 @@ tr2693:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71654,7 +73496,7 @@ tr2693:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71689,8 +73531,8 @@ tr2693:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1446;
-tr2711:
+ goto st1494;
+tr2780:
{
s->number64_tmp = s->number64;
}
@@ -71703,7 +73545,7 @@ tr2711:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71711,7 +73553,7 @@ tr2711:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71746,11 +73588,11 @@ tr2711:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1446;
-st1446:
+ goto st1494;
+st1494:
if ( ++p == pe )
- goto _test_eof1446;
-case 1446:
+ goto _test_eof1494;
+case 1494:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -71768,19 +73610,19 @@ case 1446:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st926;
- case 32: goto st926;
- case 40: goto tr2696;
- case 41: goto tr2697;
- case 3082: goto tr2698;
- case 3131: goto tr2699;
- case 3338: goto tr2644;
- case 3387: goto tr2644;
- case 3594: goto tr2700;
- case 3643: goto tr2701;
+ case 9: goto st968;
+ case 32: goto st968;
+ case 40: goto tr2765;
+ case 41: goto tr2766;
+ case 3082: goto tr2767;
+ case 3131: goto tr2768;
+ case 3338: goto tr2713;
+ case 3387: goto tr2713;
+ case 3594: goto tr2769;
+ case 3643: goto tr2770;
}
- goto tr2535;
-tr2701:
+ goto tr2604;
+tr2770:
{
s->buffer_length = 0;
}
@@ -71813,8 +73655,8 @@ tr2701:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1447;
-tr2694:
+ goto st1495;
+tr2763:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -71824,7 +73666,7 @@ tr2694:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71832,7 +73674,7 @@ tr2694:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71867,8 +73709,8 @@ tr2694:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1447;
-tr2712:
+ goto st1495;
+tr2781:
{
s->number64_tmp = s->number64;
}
@@ -71881,7 +73723,7 @@ tr2712:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71889,7 +73731,7 @@ tr2712:
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -71924,11 +73766,11 @@ tr2712:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1447;
-st1447:
+ goto st1495;
+st1495:
if ( ++p == pe )
- goto _test_eof1447;
-case 1447:
+ goto _test_eof1495;
+case 1495:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -71948,14 +73790,14 @@ case 1447:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2703;
+ goto tr2772;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2702;
- goto tr2535;
-st928:
+ goto tr2771;
+ goto tr2604;
+st970:
if ( ++p == pe )
- goto _test_eof928;
-case 928:
+ goto _test_eof970;
+case 970:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -71973,22 +73815,22 @@ case 928:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2704;
- case 32: goto tr2704;
- case 40: goto tr2705;
- case 41: goto tr2706;
- case 109: goto tr2704;
- case 3082: goto tr2708;
- case 3131: goto tr2709;
- case 3338: goto tr2710;
- case 3387: goto tr2710;
- case 3594: goto tr2711;
- case 3643: goto tr2712;
+ case 9: goto tr2773;
+ case 32: goto tr2773;
+ case 40: goto tr2774;
+ case 41: goto tr2775;
+ case 109: goto tr2773;
+ case 3082: goto tr2777;
+ case 3131: goto tr2778;
+ case 3338: goto tr2779;
+ case 3387: goto tr2779;
+ case 3594: goto tr2780;
+ case 3643: goto tr2781;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2707;
- goto tr2535;
-tr2707:
+ goto tr2776;
+ goto tr2604;
+tr2776:
{
s->number64_tmp = s->number64;
}
@@ -72006,14 +73848,14 @@ tr2707:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->decimal_counter++;
}
- goto st929;
-tr2713:
+ goto st971;
+tr2782:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -72025,17 +73867,17 @@ tr2713:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->decimal_counter++;
}
- goto st929;
-st929:
+ goto st971;
+st971:
if ( ++p == pe )
- goto _test_eof929;
-case 929:
+ goto _test_eof971;
+case 971:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -72053,34 +73895,34 @@ case 929:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2685;
- case 32: goto tr2685;
- case 40: goto tr2686;
- case 41: goto tr2687;
- case 109: goto tr2685;
- case 3082: goto tr2690;
- case 3131: goto tr2691;
- case 3338: goto tr2692;
- case 3387: goto tr2692;
- case 3594: goto tr2693;
- case 3643: goto tr2694;
+ case 9: goto tr2754;
+ case 32: goto tr2754;
+ case 40: goto tr2755;
+ case 41: goto tr2756;
+ case 109: goto tr2754;
+ case 3082: goto tr2759;
+ case 3131: goto tr2760;
+ case 3338: goto tr2761;
+ case 3387: goto tr2761;
+ case 3594: goto tr2762;
+ case 3643: goto tr2763;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2713;
- goto tr2535;
-tr2682:
+ goto tr2782;
+ goto tr2604;
+tr2751:
{
s->buffer_length = 0;
}
- goto st930;
-tr2714:
+ goto st972;
+tr2783:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st930;
-tr2673:
+ goto st972;
+tr2742:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -72090,7 +73932,7 @@ tr2673:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72098,14 +73940,14 @@ tr2673:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st930;
-tr2722:
+ goto st972;
+tr2791:
{
s->number64_tmp = s->number64;
}
@@ -72118,7 +73960,7 @@ tr2722:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72126,17 +73968,17 @@ tr2722:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st930;
-st930:
+ goto st972;
+st972:
if ( ++p == pe )
- goto _test_eof930;
-case 930:
+ goto _test_eof972;
+case 972:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -72156,11 +73998,11 @@ case 930:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2715;
+ goto tr2784;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2714;
- goto tr2535;
-tr2683:
+ goto tr2783;
+ goto tr2604;
+tr2752:
{
s->line_counter++;
}
@@ -72193,8 +74035,8 @@ tr2683:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1448;
-tr2675:
+ goto st1496;
+tr2744:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -72204,7 +74046,7 @@ tr2675:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72212,7 +74054,7 @@ tr2675:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72247,8 +74089,8 @@ tr2675:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1448;
-tr2724:
+ goto st1496;
+tr2793:
{
s->number64_tmp = s->number64;
}
@@ -72261,7 +74103,7 @@ tr2724:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72269,7 +74111,7 @@ tr2724:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72304,11 +74146,11 @@ tr2724:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1448;
-st1448:
+ goto st1496;
+st1496:
if ( ++p == pe )
- goto _test_eof1448;
-case 1448:
+ goto _test_eof1496;
+case 1496:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -72326,21 +74168,21 @@ case 1448:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st924;
- case 32: goto st924;
- case 40: goto tr2678;
- case 41: goto tr2679;
- case 3082: goto tr2681;
- case 3131: goto tr2682;
- case 3338: goto tr2644;
- case 3387: goto tr2644;
- case 3594: goto tr2683;
- case 3643: goto tr2684;
+ case 9: goto st966;
+ case 32: goto st966;
+ case 40: goto tr2747;
+ case 41: goto tr2748;
+ case 3082: goto tr2750;
+ case 3131: goto tr2751;
+ case 3338: goto tr2713;
+ case 3387: goto tr2713;
+ case 3594: goto tr2752;
+ case 3643: goto tr2753;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2680;
- goto tr2535;
-tr2684:
+ goto tr2749;
+ goto tr2604;
+tr2753:
{
s->buffer_length = 0;
}
@@ -72373,8 +74215,8 @@ tr2684:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1449;
-tr2676:
+ goto st1497;
+tr2745:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -72384,7 +74226,7 @@ tr2676:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72392,7 +74234,7 @@ tr2676:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72427,8 +74269,8 @@ tr2676:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1449;
-tr2725:
+ goto st1497;
+tr2794:
{
s->number64_tmp = s->number64;
}
@@ -72441,7 +74283,7 @@ tr2725:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72449,7 +74291,7 @@ tr2725:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72484,11 +74326,11 @@ tr2725:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1449;
-st1449:
+ goto st1497;
+st1497:
if ( ++p == pe )
- goto _test_eof1449;
-case 1449:
+ goto _test_eof1497;
+case 1497:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -72508,14 +74350,14 @@ case 1449:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2715;
+ goto tr2784;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2714;
- goto tr2535;
-st931:
+ goto tr2783;
+ goto tr2604;
+st973:
if ( ++p == pe )
- goto _test_eof931;
-case 931:
+ goto _test_eof973;
+case 973:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -72533,22 +74375,22 @@ case 931:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2716;
- case 32: goto tr2716;
- case 40: goto tr2717;
- case 41: goto tr2718;
- case 109: goto tr2720;
- case 3082: goto tr2721;
- case 3131: goto tr2722;
- case 3338: goto tr2723;
- case 3387: goto tr2723;
- case 3594: goto tr2724;
- case 3643: goto tr2725;
+ case 9: goto tr2785;
+ case 32: goto tr2785;
+ case 40: goto tr2786;
+ case 41: goto tr2787;
+ case 109: goto tr2789;
+ case 3082: goto tr2790;
+ case 3131: goto tr2791;
+ case 3338: goto tr2792;
+ case 3387: goto tr2792;
+ case 3594: goto tr2793;
+ case 3643: goto tr2794;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2719;
- goto tr2535;
-tr2719:
+ goto tr2788;
+ goto tr2604;
+tr2788:
{
s->number64_tmp = s->number64;
}
@@ -72566,14 +74408,14 @@ tr2719:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->decimal_counter++;
}
- goto st932;
-tr2726:
+ goto st974;
+tr2795:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -72585,17 +74427,17 @@ tr2726:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->decimal_counter++;
}
- goto st932;
-st932:
+ goto st974;
+st974:
if ( ++p == pe )
- goto _test_eof932;
-case 932:
+ goto _test_eof974;
+case 974:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -72613,22 +74455,22 @@ case 932:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2666;
- case 32: goto tr2666;
- case 40: goto tr2667;
- case 41: goto tr2668;
- case 109: goto tr2671;
- case 3082: goto tr2672;
- case 3131: goto tr2673;
- case 3338: goto tr2674;
- case 3387: goto tr2674;
- case 3594: goto tr2675;
- case 3643: goto tr2676;
+ case 9: goto tr2735;
+ case 32: goto tr2735;
+ case 40: goto tr2736;
+ case 41: goto tr2737;
+ case 109: goto tr2740;
+ case 3082: goto tr2741;
+ case 3131: goto tr2742;
+ case 3338: goto tr2743;
+ case 3387: goto tr2743;
+ case 3594: goto tr2744;
+ case 3643: goto tr2745;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2726;
- goto tr2535;
-tr2671:
+ goto tr2795;
+ goto tr2604;
+tr2740:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -72638,7 +74480,7 @@ tr2671:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72646,11 +74488,11 @@ tr2671:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st933;
-tr2720:
+ goto st975;
+tr2789:
{
s->number64_tmp = s->number64;
}
@@ -72663,7 +74505,7 @@ tr2720:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72671,14 +74513,14 @@ tr2720:
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st933;
-st933:
+ goto st975;
+st975:
if ( ++p == pe )
- goto _test_eof933;
-case 933:
+ goto _test_eof975;
+case 975:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -72696,31 +74538,31 @@ case 933:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st924;
- case 32: goto st924;
- case 40: goto tr2678;
- case 41: goto tr2679;
- case 3082: goto tr2681;
- case 3131: goto tr2682;
- case 3338: goto tr2644;
- case 3387: goto tr2644;
- case 3594: goto tr2683;
- case 3643: goto tr2684;
- }
- goto tr2535;
-tr2663:
+ case 9: goto st966;
+ case 32: goto st966;
+ case 40: goto tr2747;
+ case 41: goto tr2748;
+ case 3082: goto tr2750;
+ case 3131: goto tr2751;
+ case 3338: goto tr2713;
+ case 3387: goto tr2713;
+ case 3594: goto tr2752;
+ case 3643: goto tr2753;
+ }
+ goto tr2604;
+tr2732:
{
s->buffer_length = 0;
}
- goto st934;
-tr2727:
+ goto st976;
+tr2796:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st934;
-tr2654:
+ goto st976;
+tr2723:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -72730,7 +74572,7 @@ tr2654:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72738,14 +74580,14 @@ tr2654:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st934;
-tr2735:
+ goto st976;
+tr2804:
{
s->number64_tmp = s->number64;
}
@@ -72758,7 +74600,7 @@ tr2735:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72766,17 +74608,17 @@ tr2735:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st934;
-st934:
+ goto st976;
+st976:
if ( ++p == pe )
- goto _test_eof934;
-case 934:
+ goto _test_eof976;
+case 976:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -72796,11 +74638,11 @@ case 934:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2728;
+ goto tr2797;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2727;
- goto tr2535;
-tr2664:
+ goto tr2796;
+ goto tr2604;
+tr2733:
{
s->line_counter++;
}
@@ -72833,8 +74675,8 @@ tr2664:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1450;
-tr2656:
+ goto st1498;
+tr2725:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -72844,7 +74686,7 @@ tr2656:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72852,7 +74694,7 @@ tr2656:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72887,8 +74729,8 @@ tr2656:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1450;
-tr2737:
+ goto st1498;
+tr2806:
{
s->number64_tmp = s->number64;
}
@@ -72901,7 +74743,7 @@ tr2737:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72909,7 +74751,7 @@ tr2737:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -72944,11 +74786,11 @@ tr2737:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1450;
-st1450:
+ goto st1498;
+st1498:
if ( ++p == pe )
- goto _test_eof1450;
-case 1450:
+ goto _test_eof1498;
+case 1498:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -72966,21 +74808,21 @@ case 1450:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st922;
- case 32: goto st922;
- case 40: goto tr2659;
- case 41: goto tr2660;
- case 3082: goto tr2662;
- case 3131: goto tr2663;
- case 3338: goto tr2644;
- case 3387: goto tr2644;
- case 3594: goto tr2664;
- case 3643: goto tr2665;
+ case 9: goto st964;
+ case 32: goto st964;
+ case 40: goto tr2728;
+ case 41: goto tr2729;
+ case 3082: goto tr2731;
+ case 3131: goto tr2732;
+ case 3338: goto tr2713;
+ case 3387: goto tr2713;
+ case 3594: goto tr2733;
+ case 3643: goto tr2734;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2661;
- goto tr2535;
-tr2665:
+ goto tr2730;
+ goto tr2604;
+tr2734:
{
s->buffer_length = 0;
}
@@ -73013,8 +74855,8 @@ tr2665:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1451;
-tr2657:
+ goto st1499;
+tr2726:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -73024,7 +74866,7 @@ tr2657:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73032,7 +74874,7 @@ tr2657:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73067,8 +74909,8 @@ tr2657:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1451;
-tr2738:
+ goto st1499;
+tr2807:
{
s->number64_tmp = s->number64;
}
@@ -73081,7 +74923,7 @@ tr2738:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73089,7 +74931,7 @@ tr2738:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73124,11 +74966,11 @@ tr2738:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1451;
-st1451:
+ goto st1499;
+st1499:
if ( ++p == pe )
- goto _test_eof1451;
-case 1451:
+ goto _test_eof1499;
+case 1499:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -73148,14 +74990,14 @@ case 1451:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2728;
+ goto tr2797;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2727;
- goto tr2535;
-st935:
+ goto tr2796;
+ goto tr2604;
+st977:
if ( ++p == pe )
- goto _test_eof935;
-case 935:
+ goto _test_eof977;
+case 977:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -73173,22 +75015,22 @@ case 935:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2729;
- case 32: goto tr2729;
- case 40: goto tr2730;
- case 41: goto tr2731;
- case 109: goto tr2733;
- case 3082: goto tr2734;
- case 3131: goto tr2735;
- case 3338: goto tr2736;
- case 3387: goto tr2736;
- case 3594: goto tr2737;
- case 3643: goto tr2738;
+ case 9: goto tr2798;
+ case 32: goto tr2798;
+ case 40: goto tr2799;
+ case 41: goto tr2800;
+ case 109: goto tr2802;
+ case 3082: goto tr2803;
+ case 3131: goto tr2804;
+ case 3338: goto tr2805;
+ case 3387: goto tr2805;
+ case 3594: goto tr2806;
+ case 3643: goto tr2807;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2732;
- goto tr2535;
-tr2732:
+ goto tr2801;
+ goto tr2604;
+tr2801:
{
s->number64_tmp = s->number64;
}
@@ -73206,14 +75048,14 @@ tr2732:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->decimal_counter++;
}
- goto st936;
-tr2739:
+ goto st978;
+tr2808:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -73225,17 +75067,17 @@ tr2739:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->decimal_counter++;
}
- goto st936;
-st936:
+ goto st978;
+st978:
if ( ++p == pe )
- goto _test_eof936;
-case 936:
+ goto _test_eof978;
+case 978:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -73253,22 +75095,22 @@ case 936:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2647;
- case 32: goto tr2647;
- case 40: goto tr2648;
- case 41: goto tr2649;
- case 109: goto tr2652;
- case 3082: goto tr2653;
- case 3131: goto tr2654;
- case 3338: goto tr2655;
- case 3387: goto tr2655;
- case 3594: goto tr2656;
- case 3643: goto tr2657;
+ case 9: goto tr2716;
+ case 32: goto tr2716;
+ case 40: goto tr2717;
+ case 41: goto tr2718;
+ case 109: goto tr2721;
+ case 3082: goto tr2722;
+ case 3131: goto tr2723;
+ case 3338: goto tr2724;
+ case 3387: goto tr2724;
+ case 3594: goto tr2725;
+ case 3643: goto tr2726;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2739;
- goto tr2535;
-tr2652:
+ goto tr2808;
+ goto tr2604;
+tr2721:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -73278,7 +75120,7 @@ tr2652:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73286,11 +75128,11 @@ tr2652:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st937;
-tr2733:
+ goto st979;
+tr2802:
{
s->number64_tmp = s->number64;
}
@@ -73303,7 +75145,7 @@ tr2733:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73311,14 +75153,14 @@ tr2733:
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st937;
-st937:
+ goto st979;
+st979:
if ( ++p == pe )
- goto _test_eof937;
-case 937:
+ goto _test_eof979;
+case 979:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -73336,31 +75178,31 @@ case 937:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st922;
- case 32: goto st922;
- case 40: goto tr2659;
- case 41: goto tr2660;
- case 3082: goto tr2662;
- case 3131: goto tr2663;
- case 3338: goto tr2644;
- case 3387: goto tr2644;
- case 3594: goto tr2664;
- case 3643: goto tr2665;
+ case 9: goto st964;
+ case 32: goto st964;
+ case 40: goto tr2728;
+ case 41: goto tr2729;
+ case 3082: goto tr2731;
+ case 3131: goto tr2732;
+ case 3338: goto tr2713;
+ case 3387: goto tr2713;
+ case 3594: goto tr2733;
+ case 3643: goto tr2734;
}
- goto tr2535;
-tr2643:
+ goto tr2604;
+tr2712:
{
s->buffer_length = 0;
}
- goto st938;
-tr2740:
+ goto st980;
+tr2809:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st938;
-tr2634:
+ goto st980;
+tr2703:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -73370,7 +75212,7 @@ tr2634:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73380,14 +75222,14 @@ tr2634:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st938;
-tr2748:
+ goto st980;
+tr2817:
{
s->number64_tmp = s->number64;
}
@@ -73400,7 +75242,7 @@ tr2748:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73410,17 +75252,17 @@ tr2748:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st938;
-st938:
+ goto st980;
+st980:
if ( ++p == pe )
- goto _test_eof938;
-case 938:
+ goto _test_eof980;
+case 980:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -73440,11 +75282,11 @@ case 938:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2741;
+ goto tr2810;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2740;
- goto tr2535;
-tr2636:
+ goto tr2809;
+ goto tr2604;
+tr2705:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -73454,7 +75296,7 @@ tr2636:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73464,7 +75306,7 @@ tr2636:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73499,8 +75341,8 @@ tr2636:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1452;
-tr2645:
+ goto st1500;
+tr2714:
{
s->line_counter++;
}
@@ -73533,8 +75375,8 @@ tr2645:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1452;
-tr2750:
+ goto st1500;
+tr2819:
{
s->number64_tmp = s->number64;
}
@@ -73547,7 +75389,7 @@ tr2750:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73557,7 +75399,7 @@ tr2750:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73592,11 +75434,11 @@ tr2750:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1452;
-st1452:
+ goto st1500;
+st1500:
if ( ++p == pe )
- goto _test_eof1452;
-case 1452:
+ goto _test_eof1500;
+case 1500:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -73614,21 +75456,21 @@ case 1452:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st920;
- case 32: goto st920;
- case 40: goto tr2639;
- case 41: goto tr2640;
- case 3082: goto tr2642;
- case 3131: goto tr2643;
- case 3338: goto tr2644;
- case 3387: goto tr2644;
- case 3594: goto tr2645;
- case 3643: goto tr2646;
+ case 9: goto st962;
+ case 32: goto st962;
+ case 40: goto tr2708;
+ case 41: goto tr2709;
+ case 3082: goto tr2711;
+ case 3131: goto tr2712;
+ case 3338: goto tr2713;
+ case 3387: goto tr2713;
+ case 3594: goto tr2714;
+ case 3643: goto tr2715;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2641;
- goto tr2535;
-tr2637:
+ goto tr2710;
+ goto tr2604;
+tr2706:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -73638,7 +75480,7 @@ tr2637:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73648,7 +75490,7 @@ tr2637:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73683,8 +75525,8 @@ tr2637:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1453;
-tr2646:
+ goto st1501;
+tr2715:
{
s->buffer_length = 0;
}
@@ -73717,8 +75559,8 @@ tr2646:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1453;
-tr2751:
+ goto st1501;
+tr2820:
{
s->number64_tmp = s->number64;
}
@@ -73731,7 +75573,7 @@ tr2751:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73741,7 +75583,7 @@ tr2751:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73776,11 +75618,11 @@ tr2751:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1453;
-st1453:
+ goto st1501;
+st1501:
if ( ++p == pe )
- goto _test_eof1453;
-case 1453:
+ goto _test_eof1501;
+case 1501:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -73800,14 +75642,14 @@ case 1453:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2741;
+ goto tr2810;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2740;
- goto tr2535;
-st939:
+ goto tr2809;
+ goto tr2604;
+st981:
if ( ++p == pe )
- goto _test_eof939;
-case 939:
+ goto _test_eof981;
+case 981:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -73825,22 +75667,22 @@ case 939:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2742;
- case 32: goto tr2742;
- case 40: goto tr2743;
- case 41: goto tr2744;
- case 109: goto tr2746;
- case 3082: goto tr2747;
- case 3131: goto tr2748;
- case 3338: goto tr2749;
- case 3387: goto tr2749;
- case 3594: goto tr2750;
- case 3643: goto tr2751;
+ case 9: goto tr2811;
+ case 32: goto tr2811;
+ case 40: goto tr2812;
+ case 41: goto tr2813;
+ case 109: goto tr2815;
+ case 3082: goto tr2816;
+ case 3131: goto tr2817;
+ case 3338: goto tr2818;
+ case 3387: goto tr2818;
+ case 3594: goto tr2819;
+ case 3643: goto tr2820;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2745;
- goto tr2535;
-tr2745:
+ goto tr2814;
+ goto tr2604;
+tr2814:
{
s->number64_tmp = s->number64;
}
@@ -73858,14 +75700,14 @@ tr2745:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->decimal_counter++;
}
- goto st940;
-tr2752:
+ goto st982;
+tr2821:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -73877,17 +75719,17 @@ tr2752:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->decimal_counter++;
}
- goto st940;
-st940:
+ goto st982;
+st982:
if ( ++p == pe )
- goto _test_eof940;
-case 940:
+ goto _test_eof982;
+case 982:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -73905,22 +75747,22 @@ case 940:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2627;
- case 32: goto tr2627;
- case 40: goto tr2628;
- case 41: goto tr2629;
- case 109: goto tr2632;
- case 3082: goto tr2633;
- case 3131: goto tr2634;
- case 3338: goto tr2635;
- case 3387: goto tr2635;
- case 3594: goto tr2636;
- case 3643: goto tr2637;
+ case 9: goto tr2696;
+ case 32: goto tr2696;
+ case 40: goto tr2697;
+ case 41: goto tr2698;
+ case 109: goto tr2701;
+ case 3082: goto tr2702;
+ case 3131: goto tr2703;
+ case 3338: goto tr2704;
+ case 3387: goto tr2704;
+ case 3594: goto tr2705;
+ case 3643: goto tr2706;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2752;
- goto tr2535;
-tr2632:
+ goto tr2821;
+ goto tr2604;
+tr2701:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -73930,7 +75772,7 @@ tr2632:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73940,11 +75782,11 @@ tr2632:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st941;
-tr2746:
+ goto st983;
+tr2815:
{
s->number64_tmp = s->number64;
}
@@ -73957,7 +75799,7 @@ tr2746:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -73967,14 +75809,14 @@ tr2746:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st941;
-st941:
+ goto st983;
+st983:
if ( ++p == pe )
- goto _test_eof941;
-case 941:
+ goto _test_eof983;
+case 983:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -73992,42 +75834,42 @@ case 941:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st920;
- case 32: goto st920;
- case 40: goto tr2639;
- case 41: goto tr2640;
- case 3082: goto tr2642;
- case 3131: goto tr2643;
- case 3338: goto tr2644;
- case 3387: goto tr2644;
- case 3594: goto tr2645;
- case 3643: goto tr2646;
- }
- goto tr2535;
-tr2623:
+ case 9: goto st962;
+ case 32: goto st962;
+ case 40: goto tr2708;
+ case 41: goto tr2709;
+ case 3082: goto tr2711;
+ case 3131: goto tr2712;
+ case 3338: goto tr2713;
+ case 3387: goto tr2713;
+ case 3594: goto tr2714;
+ case 3643: goto tr2715;
+ }
+ goto tr2604;
+tr2692:
{
s->buffer_length = 0;
}
- goto st942;
-tr2753:
+ goto st984;
+tr2822:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st942;
-tr2759:
+ goto st984;
+tr2828:
{
s->loc.long_sign = -1;
}
{
s->buffer_length = 0;
}
- goto st942;
-st942:
+ goto st984;
+st984:
if ( ++p == pe )
- goto _test_eof942;
-case 942:
+ goto _test_eof984;
+case 984:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -74047,14 +75889,14 @@ case 942:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2754;
+ goto tr2823;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2753;
- goto tr2535;
-st943:
+ goto tr2822;
+ goto tr2604;
+st985:
if ( ++p == pe )
- goto _test_eof943;
-case 943:
+ goto _test_eof985;
+case 985:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -74068,27 +75910,27 @@ case 943:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2755;
- case 32: goto tr2755;
- case 40: goto tr2756;
- case 41: goto tr2757;
- case 2058: goto tr2758;
- case 2107: goto tr2759;
+ case 9: goto tr2824;
+ case 32: goto tr2824;
+ case 40: goto tr2825;
+ case 41: goto tr2826;
+ case 2058: goto tr2827;
+ case 2107: goto tr2828;
}
- goto tr2535;
-tr2618:
+ goto tr2604;
+tr2687:
{
s->buffer_length = 0;
}
- goto st944;
-tr2760:
+ goto st986;
+tr2829:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st944;
-tr2613:
+ goto st986;
+tr2682:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -74098,7 +75940,7 @@ tr2613:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -74106,14 +75948,14 @@ tr2613:
s->loc.s2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st944;
-tr2767:
+ goto st986;
+tr2836:
{
s->number64_tmp = s->number64;
}
@@ -74126,7 +75968,7 @@ tr2767:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -74134,17 +75976,17 @@ tr2767:
s->loc.s2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st944;
-st944:
+ goto st986;
+st986:
if ( ++p == pe )
- goto _test_eof944;
-case 944:
+ goto _test_eof986;
+case 986:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -74164,14 +76006,14 @@ case 944:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2761;
+ goto tr2830;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2760;
- goto tr2535;
-st945:
+ goto tr2829;
+ goto tr2604;
+st987:
if ( ++p == pe )
- goto _test_eof945;
-case 945:
+ goto _test_eof987;
+case 987:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -74185,17 +76027,17 @@ case 945:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2762;
- case 32: goto tr2762;
- case 40: goto tr2763;
- case 41: goto tr2764;
- case 2058: goto tr2766;
- case 2107: goto tr2767;
+ case 9: goto tr2831;
+ case 32: goto tr2831;
+ case 40: goto tr2832;
+ case 41: goto tr2833;
+ case 2058: goto tr2835;
+ case 2107: goto tr2836;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2765;
- goto tr2535;
-tr2765:
+ goto tr2834;
+ goto tr2604;
+tr2834:
{
s->number64_tmp = s->number64;
}
@@ -74213,14 +76055,14 @@ tr2765:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->decimal_counter++;
}
- goto st946;
-tr2768:
+ goto st988;
+tr2837:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -74232,17 +76074,17 @@ tr2768:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->decimal_counter++;
}
- goto st946;
-st946:
+ goto st988;
+st988:
if ( ++p == pe )
- goto _test_eof946;
-case 946:
+ goto _test_eof988;
+case 988:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -74256,45 +76098,45 @@ case 946:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2607;
- case 32: goto tr2607;
- case 40: goto tr2608;
- case 41: goto tr2609;
- case 2058: goto tr2612;
- case 2107: goto tr2613;
+ case 9: goto tr2676;
+ case 32: goto tr2676;
+ case 40: goto tr2677;
+ case 41: goto tr2678;
+ case 2058: goto tr2681;
+ case 2107: goto tr2682;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2768;
- goto tr2535;
-tr2606:
+ goto tr2837;
+ goto tr2604;
+tr2675:
{
s->buffer_length = 0;
}
- goto st947;
-tr2769:
+ goto st989;
+tr2838:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st947;
-tr2600:
+ goto st989;
+tr2669:
{
if (s->number64 <= 59) {
s->loc.m2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st947;
-st947:
+ goto st989;
+st989:
if ( ++p == pe )
- goto _test_eof947;
-case 947:
+ goto _test_eof989;
+case 989:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -74314,39 +76156,39 @@ case 947:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2770;
+ goto tr2839;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2769;
- goto tr2535;
-tr2594:
+ goto tr2838;
+ goto tr2604;
+tr2663:
{
s->buffer_length = 0;
}
- goto st948;
-tr2771:
+ goto st990;
+tr2840:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st948;
-tr2586:
+ goto st990;
+tr2655:
{
if (s->number64 <= 180) {
s->loc.d2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st948;
-st948:
+ goto st990;
+st990:
if ( ++p == pe )
- goto _test_eof948;
-case 948:
+ goto _test_eof990;
+case 990:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -74366,34 +76208,34 @@ case 948:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2772;
+ goto tr2841;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2771;
- goto tr2535;
-tr2579:
+ goto tr2840;
+ goto tr2604;
+tr2648:
{
s->buffer_length = 0;
}
- goto st949;
-tr2773:
+ goto st991;
+tr2842:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st949;
-tr2779:
+ goto st991;
+tr2848:
{
s->loc.lat_sign = -1;
}
{
s->buffer_length = 0;
}
- goto st949;
-st949:
+ goto st991;
+st991:
if ( ++p == pe )
- goto _test_eof949;
-case 949:
+ goto _test_eof991;
+case 991:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -74413,14 +76255,14 @@ case 949:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2774;
+ goto tr2843;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2773;
- goto tr2535;
-st950:
+ goto tr2842;
+ goto tr2604;
+st992:
if ( ++p == pe )
- goto _test_eof950;
-case 950:
+ goto _test_eof992;
+case 992:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -74434,27 +76276,27 @@ case 950:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2775;
- case 32: goto tr2775;
- case 40: goto tr2776;
- case 41: goto tr2777;
- case 2058: goto tr2778;
- case 2107: goto tr2779;
+ case 9: goto tr2844;
+ case 32: goto tr2844;
+ case 40: goto tr2845;
+ case 41: goto tr2846;
+ case 2058: goto tr2847;
+ case 2107: goto tr2848;
}
- goto tr2535;
-tr2574:
+ goto tr2604;
+tr2643:
{
s->buffer_length = 0;
}
- goto st951;
-tr2780:
+ goto st993;
+tr2849:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st951;
-tr2569:
+ goto st993;
+tr2638:
{
if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) {
s->number64 *= pow(10, s->decimals);
@@ -74464,7 +76306,7 @@ tr2569:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -74472,14 +76314,14 @@ tr2569:
s->loc.s1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st951;
-tr2787:
+ goto st993;
+tr2856:
{
s->number64_tmp = s->number64;
}
@@ -74492,7 +76334,7 @@ tr2787:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -74500,17 +76342,17 @@ tr2787:
s->loc.s1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st951;
-st951:
+ goto st993;
+st993:
if ( ++p == pe )
- goto _test_eof951;
-case 951:
+ goto _test_eof993;
+case 993:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -74530,14 +76372,14 @@ case 951:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2781;
+ goto tr2850;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2780;
- goto tr2535;
-st952:
+ goto tr2849;
+ goto tr2604;
+st994:
if ( ++p == pe )
- goto _test_eof952;
-case 952:
+ goto _test_eof994;
+case 994:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -74551,17 +76393,17 @@ case 952:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2782;
- case 32: goto tr2782;
- case 40: goto tr2783;
- case 41: goto tr2784;
- case 2058: goto tr2786;
- case 2107: goto tr2787;
+ case 9: goto tr2851;
+ case 32: goto tr2851;
+ case 40: goto tr2852;
+ case 41: goto tr2853;
+ case 2058: goto tr2855;
+ case 2107: goto tr2856;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2785;
- goto tr2535;
-tr2785:
+ goto tr2854;
+ goto tr2604;
+tr2854:
{
s->number64_tmp = s->number64;
}
@@ -74579,14 +76421,14 @@ tr2785:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->decimal_counter++;
}
- goto st953;
-tr2788:
+ goto st995;
+tr2857:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -74598,17 +76440,17 @@ tr2788:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->decimal_counter++;
}
- goto st953;
-st953:
+ goto st995;
+st995:
if ( ++p == pe )
- goto _test_eof953;
-case 953:
+ goto _test_eof995;
+case 995:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -74622,45 +76464,45 @@ case 953:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2563;
- case 32: goto tr2563;
- case 40: goto tr2564;
- case 41: goto tr2565;
- case 2058: goto tr2568;
- case 2107: goto tr2569;
+ case 9: goto tr2632;
+ case 32: goto tr2632;
+ case 40: goto tr2633;
+ case 41: goto tr2634;
+ case 2058: goto tr2637;
+ case 2107: goto tr2638;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2788;
- goto tr2535;
-tr2562:
+ goto tr2857;
+ goto tr2604;
+tr2631:
{
s->buffer_length = 0;
}
- goto st954;
-tr2789:
+ goto st996;
+tr2858:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st954;
-tr2556:
+ goto st996;
+tr2625:
{
if (s->number64 <= 59) {
s->loc.m1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st954;
-st954:
+ goto st996;
+st996:
if ( ++p == pe )
- goto _test_eof954;
-case 954:
+ goto _test_eof996;
+case 996:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -74680,39 +76522,39 @@ case 954:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2790;
+ goto tr2859;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2789;
- goto tr2535;
-tr2550:
+ goto tr2858;
+ goto tr2604;
+tr2619:
{
s->buffer_length = 0;
}
- goto st955;
-tr2791:
+ goto st997;
+tr2860:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st955;
-tr2542:
+ goto st997;
+tr2611:
{
if (s->number64 <= 90) {
s->loc.d1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st955;
-st955:
+ goto st997;
+st997:
if ( ++p == pe )
- goto _test_eof955;
-case 955:
+ goto _test_eof997;
+case 997:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -74732,18 +76574,18 @@ case 955:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2792;
+ goto tr2861;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2791;
- goto tr2535;
-st956:
+ goto tr2860;
+ goto tr2604;
+st998:
if ( ++p == pe )
- goto _test_eof956;
-case 956:
+ goto _test_eof998;
+case 998:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2793;
- goto tr2327;
-tr2793:
+ goto tr2862;
+ goto tr2396;
+tr2862:
{
s->number64 = 0;
}
@@ -74758,11 +76600,11 @@ tr2793:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st957;
-tr2797:
+ goto st999;
+tr2866:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -74774,14 +76616,14 @@ tr2797:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st957;
-st957:
+ goto st999;
+st999:
if ( ++p == pe )
- goto _test_eof957;
-case 957:
+ goto _test_eof999;
+case 999:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -74795,40 +76637,40 @@ case 957:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2794;
- case 32: goto tr2794;
- case 40: goto tr2795;
- case 41: goto tr2796;
- case 2058: goto tr2798;
- case 2107: goto tr2799;
+ case 9: goto tr2863;
+ case 32: goto tr2863;
+ case 40: goto tr2864;
+ case 41: goto tr2865;
+ case 2058: goto tr2867;
+ case 2107: goto tr2868;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2797;
- goto tr2327;
-tr2801:
+ goto tr2866;
+ goto tr2396;
+tr2870:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st958;
-tr2802:
+ goto st1000;
+tr2871:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st958;
-tr2804:
+ goto st1000;
+tr2873:
{
s->line_counter++;
}
- goto st958;
-tr2836:
+ goto st1000;
+tr2905:
{
s->buffer[s->buffer_length++] = 0;
@@ -74838,15 +76680,15 @@ tr2836:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 958; goto _out;}
+ {p++; cs = 1000; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st958;
-tr2794:
+ goto st1000;
+tr2863:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -74854,11 +76696,11 @@ tr2794:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st958;
-tr2795:
+ goto st1000;
+tr2864:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -74866,18 +76708,18 @@ tr2795:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st958;
-tr2796:
+ goto st1000;
+tr2865:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -74885,18 +76727,18 @@ tr2796:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st958;
-tr2798:
+ goto st1000;
+tr2867:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -74904,17 +76746,17 @@ tr2798:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st958;
-st958:
+ goto st1000;
+st1000:
if ( ++p == pe )
- goto _test_eof958;
-case 958:
+ goto _test_eof1000;
+case 1000:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -74928,17 +76770,17 @@ case 958:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st958;
- case 32: goto st958;
- case 40: goto tr2801;
- case 41: goto tr2802;
- case 2058: goto tr2804;
- case 2107: goto tr2805;
+ case 9: goto st1000;
+ case 32: goto st1000;
+ case 40: goto tr2870;
+ case 41: goto tr2871;
+ case 2058: goto tr2873;
+ case 2107: goto tr2874;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2803;
- goto tr2327;
-tr2803:
+ goto tr2872;
+ goto tr2396;
+tr2872:
{
s->number64 = 0;
}
@@ -74953,11 +76795,11 @@ tr2803:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st959;
-tr2809:
+ goto st1001;
+tr2878:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -74969,14 +76811,14 @@ tr2809:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st959;
-st959:
+ goto st1001;
+st1001:
if ( ++p == pe )
- goto _test_eof959;
-case 959:
+ goto _test_eof1001;
+case 1001:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -74990,40 +76832,40 @@ case 959:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2806;
- case 32: goto tr2806;
- case 40: goto tr2807;
- case 41: goto tr2808;
- case 2058: goto tr2810;
- case 2107: goto tr2811;
+ case 9: goto tr2875;
+ case 32: goto tr2875;
+ case 40: goto tr2876;
+ case 41: goto tr2877;
+ case 2058: goto tr2879;
+ case 2107: goto tr2880;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2809;
- goto tr2327;
-tr2813:
+ goto tr2878;
+ goto tr2396;
+tr2882:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st960;
-tr2814:
+ goto st1002;
+tr2883:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st960;
-tr2816:
+ goto st1002;
+tr2885:
{
s->line_counter++;
}
- goto st960;
-tr2834:
+ goto st1002;
+tr2903:
{
s->buffer[s->buffer_length++] = 0;
@@ -75033,15 +76875,15 @@ tr2834:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 960; goto _out;}
+ {p++; cs = 1002; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st960;
-tr2806:
+ goto st1002;
+tr2875:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75049,11 +76891,11 @@ tr2806:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st960;
-tr2807:
+ goto st1002;
+tr2876:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75061,18 +76903,18 @@ tr2807:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st960;
-tr2808:
+ goto st1002;
+tr2877:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75080,18 +76922,18 @@ tr2808:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st960;
-tr2810:
+ goto st1002;
+tr2879:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75099,17 +76941,17 @@ tr2810:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st960;
-st960:
+ goto st1002;
+st1002:
if ( ++p == pe )
- goto _test_eof960;
-case 960:
+ goto _test_eof1002;
+case 1002:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -75123,17 +76965,17 @@ case 960:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st960;
- case 32: goto st960;
- case 40: goto tr2813;
- case 41: goto tr2814;
- case 2058: goto tr2816;
- case 2107: goto tr2817;
+ case 9: goto st1002;
+ case 32: goto st1002;
+ case 40: goto tr2882;
+ case 41: goto tr2883;
+ case 2058: goto tr2885;
+ case 2107: goto tr2886;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2815;
- goto tr2327;
-tr2815:
+ goto tr2884;
+ goto tr2396;
+tr2884:
{
s->number64 = 0;
}
@@ -75148,11 +76990,11 @@ tr2815:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st961;
-tr2821:
+ goto st1003;
+tr2890:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -75164,14 +77006,14 @@ tr2821:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st961;
-st961:
+ goto st1003;
+st1003:
if ( ++p == pe )
- goto _test_eof961;
-case 961:
+ goto _test_eof1003;
+case 1003:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -75185,40 +77027,40 @@ case 961:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2818;
- case 32: goto tr2818;
- case 40: goto tr2819;
- case 41: goto tr2820;
- case 2058: goto tr2822;
- case 2107: goto tr2823;
+ case 9: goto tr2887;
+ case 32: goto tr2887;
+ case 40: goto tr2888;
+ case 41: goto tr2889;
+ case 2058: goto tr2891;
+ case 2107: goto tr2892;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2821;
- goto tr2327;
-tr2825:
+ goto tr2890;
+ goto tr2396;
+tr2894:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st962;
-tr2826:
+ goto st1004;
+tr2895:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st962;
-tr2828:
+ goto st1004;
+tr2897:
{
s->line_counter++;
}
- goto st962;
-tr2832:
+ goto st1004;
+tr2901:
{
s->buffer[s->buffer_length++] = 0;
@@ -75228,15 +77070,15 @@ tr2832:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 962; goto _out;}
+ {p++; cs = 1004; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st962;
-tr2818:
+ goto st1004;
+tr2887:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75244,11 +77086,11 @@ tr2818:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st962;
-tr2819:
+ goto st1004;
+tr2888:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75256,18 +77098,18 @@ tr2819:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st962;
-tr2820:
+ goto st1004;
+tr2889:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75275,18 +77117,18 @@ tr2820:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st962;
-tr2822:
+ goto st1004;
+tr2891:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75294,17 +77136,17 @@ tr2822:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st962;
-st962:
+ goto st1004;
+st1004:
if ( ++p == pe )
- goto _test_eof962;
-case 962:
+ goto _test_eof1004;
+case 1004:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -75318,71 +77160,71 @@ case 962:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st962;
- case 32: goto st962;
- case 40: goto tr2825;
- case 41: goto tr2826;
- case 42: goto tr2827;
- case 92: goto tr2827;
- case 95: goto tr2827;
- case 2058: goto tr2828;
- case 2107: goto tr2829;
+ case 9: goto st1004;
+ case 32: goto st1004;
+ case 40: goto tr2894;
+ case 41: goto tr2895;
+ case 42: goto tr2896;
+ case 92: goto tr2896;
+ case 95: goto tr2896;
+ case 2058: goto tr2897;
+ case 2107: goto tr2898;
}
if ( _widec < 64 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr2827;
+ goto tr2896;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr2827;
+ goto tr2896;
} else
- goto tr2827;
- goto tr75;
-tr2827:
+ goto tr2896;
+ goto tr77;
+tr2896:
{
s->dname = rdata_tail;
}
- { p--; {stack[top++] = 963;goto st309;} }
- goto st963;
-st963:
+ { p--; {stack[top++] = 1005;goto st318;} }
+ goto st1005;
+st1005:
if ( ++p == pe )
- goto _test_eof963;
-case 963:
+ goto _test_eof1005;
+case 1005:
switch( (*p) ) {
- case 32: goto tr2830;
- case 59: goto tr2830;
+ case 32: goto tr2899;
+ case 59: goto tr2899;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2830;
+ goto tr2899;
} else if ( (*p) >= 9 )
- goto tr2830;
- goto tr75;
-tr2830:
+ goto tr2899;
+ goto tr77;
+tr2899:
{
rdata_tail += s->dname_tmp_length;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1454;
-st1454:
+ goto st1502;
+st1502:
if ( ++p == pe )
- goto _test_eof1454;
-case 1454:
+ goto _test_eof1502;
+case 1502:
goto st0;
-tr2829:
+tr2898:
{
s->buffer_length = 0;
}
- goto st964;
-tr2831:
+ goto st1006;
+tr2900:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st964;
-tr2823:
+ goto st1006;
+tr2892:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75390,17 +77232,17 @@ tr2823:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st964;
-st964:
+ goto st1006;
+st1006:
if ( ++p == pe )
- goto _test_eof964;
-case 964:
+ goto _test_eof1006;
+case 1006:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -75420,23 +77262,23 @@ case 964:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2832;
+ goto tr2901;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2831;
- goto tr75;
-tr2817:
+ goto tr2900;
+ goto tr77;
+tr2886:
{
s->buffer_length = 0;
}
- goto st965;
-tr2833:
+ goto st1007;
+tr2902:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st965;
-tr2811:
+ goto st1007;
+tr2880:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75444,17 +77286,17 @@ tr2811:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st965;
-st965:
+ goto st1007;
+st1007:
if ( ++p == pe )
- goto _test_eof965;
-case 965:
+ goto _test_eof1007;
+case 1007:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -75474,23 +77316,23 @@ case 965:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2834;
+ goto tr2903;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2833;
- goto tr75;
-tr2805:
+ goto tr2902;
+ goto tr77;
+tr2874:
{
s->buffer_length = 0;
}
- goto st966;
-tr2835:
+ goto st1008;
+tr2904:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st966;
-tr2799:
+ goto st1008;
+tr2868:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75498,17 +77340,17 @@ tr2799:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st966;
-st966:
+ goto st1008;
+st1008:
if ( ++p == pe )
- goto _test_eof966;
-case 966:
+ goto _test_eof1008;
+case 1008:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -75528,18 +77370,18 @@ case 966:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2836;
+ goto tr2905;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2835;
- goto tr75;
-st967:
+ goto tr2904;
+ goto tr77;
+st1009:
if ( ++p == pe )
- goto _test_eof967;
-case 967:
+ goto _test_eof1009;
+case 1009:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2837;
- goto tr2327;
-tr2837:
+ goto tr2906;
+ goto tr2396;
+tr2906:
{
s->number64 = 0;
}
@@ -75554,11 +77396,11 @@ tr2837:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st968;
-tr2841:
+ goto st1010;
+tr2910:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -75570,14 +77412,14 @@ tr2841:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st968;
-st968:
+ goto st1010;
+st1010:
if ( ++p == pe )
- goto _test_eof968;
-case 968:
+ goto _test_eof1010;
+case 1010:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -75591,40 +77433,40 @@ case 968:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2838;
- case 32: goto tr2838;
- case 40: goto tr2839;
- case 41: goto tr2840;
- case 2058: goto tr2842;
- case 2107: goto tr2843;
+ case 9: goto tr2907;
+ case 32: goto tr2907;
+ case 40: goto tr2908;
+ case 41: goto tr2909;
+ case 2058: goto tr2911;
+ case 2107: goto tr2912;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2841;
- goto tr2327;
-tr2845:
+ goto tr2910;
+ goto tr2396;
+tr2914:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st969;
-tr2846:
+ goto st1011;
+tr2915:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st969;
-tr2848:
+ goto st1011;
+tr2917:
{
s->line_counter++;
}
- goto st969;
-tr2905:
+ goto st1011;
+tr2974:
{
s->buffer[s->buffer_length++] = 0;
@@ -75634,15 +77476,15 @@ tr2905:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 969; goto _out;}
+ {p++; cs = 1011; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st969;
-tr2838:
+ goto st1011;
+tr2907:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75650,11 +77492,11 @@ tr2838:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st969;
-tr2839:
+ goto st1011;
+tr2908:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75662,18 +77504,18 @@ tr2839:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st969;
-tr2840:
+ goto st1011;
+tr2909:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75681,18 +77523,18 @@ tr2840:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st969;
-tr2842:
+ goto st1011;
+tr2911:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75700,17 +77542,17 @@ tr2842:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st969;
-st969:
+ goto st1011;
+st1011:
if ( ++p == pe )
- goto _test_eof969;
-case 969:
+ goto _test_eof1011;
+case 1011:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -75724,17 +77566,17 @@ case 969:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st969;
- case 32: goto st969;
- case 40: goto tr2845;
- case 41: goto tr2846;
- case 2058: goto tr2848;
- case 2107: goto tr2849;
+ case 9: goto st1011;
+ case 32: goto st1011;
+ case 40: goto tr2914;
+ case 41: goto tr2915;
+ case 2058: goto tr2917;
+ case 2107: goto tr2918;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2847;
- goto tr2327;
-tr2847:
+ goto tr2916;
+ goto tr2396;
+tr2916:
{
s->number64 = 0;
}
@@ -75749,11 +77591,11 @@ tr2847:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st970;
-tr2853:
+ goto st1012;
+tr2922:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -75765,14 +77607,14 @@ tr2853:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st970;
-st970:
+ goto st1012;
+st1012:
if ( ++p == pe )
- goto _test_eof970;
-case 970:
+ goto _test_eof1012;
+case 1012:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -75786,40 +77628,40 @@ case 970:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2850;
- case 32: goto tr2850;
- case 40: goto tr2851;
- case 41: goto tr2852;
- case 2058: goto tr2854;
- case 2107: goto tr2855;
+ case 9: goto tr2919;
+ case 32: goto tr2919;
+ case 40: goto tr2920;
+ case 41: goto tr2921;
+ case 2058: goto tr2923;
+ case 2107: goto tr2924;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2853;
- goto tr2327;
-tr2858:
+ goto tr2922;
+ goto tr2396;
+tr2927:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st971;
-tr2859:
+ goto st1013;
+tr2928:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st971;
-tr2860:
+ goto st1013;
+tr2929:
{
s->line_counter++;
}
- goto st971;
-tr2903:
+ goto st1013;
+tr2972:
{
s->buffer[s->buffer_length++] = 0;
@@ -75829,15 +77671,15 @@ tr2903:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 971; goto _out;}
+ {p++; cs = 1013; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st971;
-tr2850:
+ goto st1013;
+tr2919:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75845,11 +77687,11 @@ tr2850:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st971;
-tr2851:
+ goto st1013;
+tr2920:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75857,18 +77699,18 @@ tr2851:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st971;
-tr2852:
+ goto st1013;
+tr2921:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75876,18 +77718,18 @@ tr2852:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st971;
-tr2854:
+ goto st1013;
+tr2923:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -75895,17 +77737,17 @@ tr2854:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st971;
-st971:
+ goto st1013;
+st1013:
if ( ++p == pe )
- goto _test_eof971;
-case 971:
+ goto _test_eof1013;
+case 1013:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -75919,37 +77761,37 @@ case 971:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st971;
- case 32: goto st971;
- case 40: goto tr2858;
- case 41: goto tr2859;
- case 2058: goto tr2860;
- case 2107: goto tr2861;
+ case 9: goto st1013;
+ case 32: goto st1013;
+ case 40: goto tr2927;
+ case 41: goto tr2928;
+ case 2058: goto tr2929;
+ case 2107: goto tr2930;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr2856;
+ goto tr2925;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr2856;
+ goto tr2925;
} else
- goto tr2856;
- goto tr75;
-tr2856:
+ goto tr2925;
+ goto tr77;
+tr2925:
{
if (rdata_tail <= rdata_stop) {
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 972;goto st318;} }
- goto st972;
-st972:
+ { p--; {stack[top++] = 1014;goto st327;} }
+ goto st1014;
+st1014:
if ( ++p == pe )
- goto _test_eof972;
-case 972:
+ goto _test_eof1014;
+case 1014:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -75963,38 +77805,38 @@ case 972:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2862;
- case 32: goto tr2862;
- case 40: goto tr2863;
- case 41: goto tr2864;
- case 2058: goto tr2865;
- case 2107: goto tr2866;
+ case 9: goto tr2931;
+ case 32: goto tr2931;
+ case 40: goto tr2932;
+ case 41: goto tr2933;
+ case 2058: goto tr2934;
+ case 2107: goto tr2935;
}
- goto tr75;
-tr2869:
+ goto tr77;
+tr2938:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st973;
-tr2870:
+ goto st1015;
+tr2939:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st973;
-tr2871:
+ goto st1015;
+tr2940:
{
s->line_counter++;
}
- goto st973;
-tr2901:
+ goto st1015;
+tr2970:
{
s->buffer[s->buffer_length++] = 0;
@@ -76004,95 +77846,95 @@ tr2901:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 973; goto _out;}
+ {p++; cs = 1015; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st973;
-tr2862:
+ goto st1015;
+tr2931:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st973;
-tr2863:
+ goto st1015;
+tr2932:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st973;
-tr2864:
+ goto st1015;
+tr2933:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st973;
-tr2865:
+ goto st1015;
+tr2934:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st973;
-st973:
+ goto st1015;
+st1015:
if ( ++p == pe )
- goto _test_eof973;
-case 973:
+ goto _test_eof1015;
+case 1015:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -76106,37 +77948,37 @@ case 973:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st973;
- case 32: goto st973;
- case 40: goto tr2869;
- case 41: goto tr2870;
- case 2058: goto tr2871;
- case 2107: goto tr2872;
+ case 9: goto st1015;
+ case 32: goto st1015;
+ case 40: goto tr2938;
+ case 41: goto tr2939;
+ case 2058: goto tr2940;
+ case 2107: goto tr2941;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr2867;
+ goto tr2936;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr2867;
+ goto tr2936;
} else
- goto tr2867;
- goto tr75;
-tr2867:
+ goto tr2936;
+ goto tr77;
+tr2936:
{
if (rdata_tail <= rdata_stop) {
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 974;goto st318;} }
- goto st974;
-st974:
+ { p--; {stack[top++] = 1016;goto st327;} }
+ goto st1016;
+st1016:
if ( ++p == pe )
- goto _test_eof974;
-case 974:
+ goto _test_eof1016;
+case 1016:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -76150,38 +77992,38 @@ case 974:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2873;
- case 32: goto tr2873;
- case 40: goto tr2874;
- case 41: goto tr2875;
- case 2058: goto tr2876;
- case 2107: goto tr2877;
+ case 9: goto tr2942;
+ case 32: goto tr2942;
+ case 40: goto tr2943;
+ case 41: goto tr2944;
+ case 2058: goto tr2945;
+ case 2107: goto tr2946;
}
- goto tr75;
-tr2880:
+ goto tr77;
+tr2949:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st975;
-tr2881:
+ goto st1017;
+tr2950:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st975;
-tr2882:
+ goto st1017;
+tr2951:
{
s->line_counter++;
}
- goto st975;
-tr2899:
+ goto st1017;
+tr2968:
{
s->buffer[s->buffer_length++] = 0;
@@ -76191,95 +78033,95 @@ tr2899:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 975; goto _out;}
+ {p++; cs = 1017; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st975;
-tr2873:
+ goto st1017;
+tr2942:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st975;
-tr2874:
+ goto st1017;
+tr2943:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st975;
-tr2875:
+ goto st1017;
+tr2944:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st975;
-tr2876:
+ goto st1017;
+tr2945:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st975;
-st975:
+ goto st1017;
+st1017:
if ( ++p == pe )
- goto _test_eof975;
-case 975:
+ goto _test_eof1017;
+case 1017:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -76293,37 +78135,37 @@ case 975:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st975;
- case 32: goto st975;
- case 40: goto tr2880;
- case 41: goto tr2881;
- case 2058: goto tr2882;
- case 2107: goto tr2883;
+ case 9: goto st1017;
+ case 32: goto st1017;
+ case 40: goto tr2949;
+ case 41: goto tr2950;
+ case 2058: goto tr2951;
+ case 2107: goto tr2952;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr2878;
+ goto tr2947;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr2878;
+ goto tr2947;
} else
- goto tr2878;
- goto tr75;
-tr2878:
+ goto tr2947;
+ goto tr77;
+tr2947:
{
if (rdata_tail <= rdata_stop) {
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 976;goto st318;} }
- goto st976;
-st976:
+ { p--; {stack[top++] = 1018;goto st327;} }
+ goto st1018;
+st1018:
if ( ++p == pe )
- goto _test_eof976;
-case 976:
+ goto _test_eof1018;
+case 1018:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -76337,38 +78179,38 @@ case 976:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2884;
- case 32: goto tr2884;
- case 40: goto tr2885;
- case 41: goto tr2886;
- case 2058: goto tr2887;
- case 2107: goto tr2888;
+ case 9: goto tr2953;
+ case 32: goto tr2953;
+ case 40: goto tr2954;
+ case 41: goto tr2955;
+ case 2058: goto tr2956;
+ case 2107: goto tr2957;
}
- goto tr75;
-tr2890:
+ goto tr77;
+tr2959:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st977;
-tr2891:
+ goto st1019;
+tr2960:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st977;
-tr2893:
+ goto st1019;
+tr2962:
{
s->line_counter++;
}
- goto st977;
-tr2897:
+ goto st1019;
+tr2966:
{
s->buffer[s->buffer_length++] = 0;
@@ -76378,95 +78220,95 @@ tr2897:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 977; goto _out;}
+ {p++; cs = 1019; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st977;
-tr2884:
+ goto st1019;
+tr2953:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st977;
-tr2885:
+ goto st1019;
+tr2954:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st977;
-tr2886:
+ goto st1019;
+tr2955:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st977;
-tr2887:
+ goto st1019;
+tr2956:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st977;
-st977:
+ goto st1019;
+st1019:
if ( ++p == pe )
- goto _test_eof977;
-case 977:
+ goto _test_eof1019;
+case 1019:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -76480,92 +78322,92 @@ case 977:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st977;
- case 32: goto st977;
- case 40: goto tr2890;
- case 41: goto tr2891;
- case 42: goto tr2892;
- case 92: goto tr2892;
- case 95: goto tr2892;
- case 2058: goto tr2893;
- case 2107: goto tr2894;
+ case 9: goto st1019;
+ case 32: goto st1019;
+ case 40: goto tr2959;
+ case 41: goto tr2960;
+ case 42: goto tr2961;
+ case 92: goto tr2961;
+ case 95: goto tr2961;
+ case 2058: goto tr2962;
+ case 2107: goto tr2963;
}
if ( _widec < 64 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr2892;
+ goto tr2961;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr2892;
+ goto tr2961;
} else
- goto tr2892;
- goto tr75;
-tr2892:
+ goto tr2961;
+ goto tr77;
+tr2961:
{
s->dname = rdata_tail;
}
- { p--; {stack[top++] = 978;goto st309;} }
- goto st978;
-st978:
+ { p--; {stack[top++] = 1020;goto st318;} }
+ goto st1020;
+st1020:
if ( ++p == pe )
- goto _test_eof978;
-case 978:
+ goto _test_eof1020;
+case 1020:
switch( (*p) ) {
- case 32: goto tr2895;
- case 59: goto tr2895;
+ case 32: goto tr2964;
+ case 59: goto tr2964;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr2895;
+ goto tr2964;
} else if ( (*p) >= 9 )
- goto tr2895;
- goto tr75;
-tr2895:
+ goto tr2964;
+ goto tr77;
+tr2964:
{
rdata_tail += s->dname_tmp_length;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1455;
-st1455:
+ goto st1503;
+st1503:
if ( ++p == pe )
- goto _test_eof1455;
-case 1455:
+ goto _test_eof1503;
+case 1503:
goto st0;
-tr2894:
+tr2963:
{
s->buffer_length = 0;
}
- goto st979;
-tr2896:
+ goto st1021;
+tr2965:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st979;
-tr2888:
+ goto st1021;
+tr2957:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st979;
-st979:
+ goto st1021;
+st1021:
if ( ++p == pe )
- goto _test_eof979;
-case 979:
+ goto _test_eof1021;
+case 1021:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -76585,44 +78427,44 @@ case 979:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2897;
+ goto tr2966;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2896;
- goto tr75;
-tr2883:
+ goto tr2965;
+ goto tr77;
+tr2952:
{
s->buffer_length = 0;
}
- goto st980;
-tr2898:
+ goto st1022;
+tr2967:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st980;
-tr2877:
+ goto st1022;
+tr2946:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st980;
-st980:
+ goto st1022;
+st1022:
if ( ++p == pe )
- goto _test_eof980;
-case 980:
+ goto _test_eof1022;
+case 1022:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -76642,44 +78484,44 @@ case 980:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2899;
+ goto tr2968;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2898;
- goto tr75;
-tr2872:
+ goto tr2967;
+ goto tr77;
+tr2941:
{
s->buffer_length = 0;
}
- goto st981;
-tr2900:
+ goto st1023;
+tr2969:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st981;
-tr2866:
+ goto st1023;
+tr2935:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st981;
-st981:
+ goto st1023;
+st1023:
if ( ++p == pe )
- goto _test_eof981;
-case 981:
+ goto _test_eof1023;
+case 1023:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -76699,23 +78541,23 @@ case 981:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2901;
+ goto tr2970;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2900;
- goto tr75;
-tr2861:
+ goto tr2969;
+ goto tr77;
+tr2930:
{
s->buffer_length = 0;
}
- goto st982;
-tr2902:
+ goto st1024;
+tr2971:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st982;
-tr2855:
+ goto st1024;
+tr2924:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -76723,17 +78565,17 @@ tr2855:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st982;
-st982:
+ goto st1024;
+st1024:
if ( ++p == pe )
- goto _test_eof982;
-case 982:
+ goto _test_eof1024;
+case 1024:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -76753,23 +78595,23 @@ case 982:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2903;
+ goto tr2972;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2902;
- goto tr75;
-tr2849:
+ goto tr2971;
+ goto tr77;
+tr2918:
{
s->buffer_length = 0;
}
- goto st983;
-tr2904:
+ goto st1025;
+tr2973:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st983;
-tr2843:
+ goto st1025;
+tr2912:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -76777,17 +78619,17 @@ tr2843:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st983;
-st983:
+ goto st1025;
+st1025:
if ( ++p == pe )
- goto _test_eof983;
-case 983:
+ goto _test_eof1025;
+case 1025:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -76807,30 +78649,30 @@ case 983:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2905;
+ goto tr2974;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2904;
- goto tr75;
-st984:
+ goto tr2973;
+ goto tr77;
+st1026:
if ( ++p == pe )
- goto _test_eof984;
-case 984:
+ goto _test_eof1026;
+case 1026:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2906;
+ goto tr2975;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr2906;
+ goto tr2975;
} else
- goto tr2906;
- goto tr75;
-tr2906:
- { p--; {stack[top++] = 985;goto st803;} }
- goto st985;
-st985:
+ goto tr2975;
+ goto tr77;
+tr2975:
+ { p--; {stack[top++] = 1027;goto st845;} }
+ goto st1027;
+st1027:
if ( ++p == pe )
- goto _test_eof985;
-case 985:
+ goto _test_eof1027;
+case 1027:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -76844,38 +78686,38 @@ case 985:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st986;
- case 32: goto st986;
- case 40: goto tr2908;
- case 41: goto tr2909;
- case 2058: goto tr2910;
- case 2107: goto tr2911;
+ case 9: goto st1028;
+ case 32: goto st1028;
+ case 40: goto tr2977;
+ case 41: goto tr2978;
+ case 2058: goto tr2979;
+ case 2107: goto tr2980;
}
- goto tr75;
-tr2908:
+ goto tr77;
+tr2977:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st986;
-tr2909:
+ goto st1028;
+tr2978:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st986;
-tr2910:
+ goto st1028;
+tr2979:
{
s->line_counter++;
}
- goto st986;
-tr2937:
+ goto st1028;
+tr3006:
{
s->buffer[s->buffer_length++] = 0;
@@ -76885,18 +78727,18 @@ tr2937:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 986; goto _out;}
+ {p++; cs = 1028; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st986;
-st986:
+ goto st1028;
+st1028:
if ( ++p == pe )
- goto _test_eof986;
-case 986:
+ goto _test_eof1028;
+case 1028:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -76910,17 +78752,17 @@ case 986:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st986;
- case 32: goto st986;
- case 40: goto tr2908;
- case 41: goto tr2909;
- case 2058: goto tr2910;
- case 2107: goto tr2911;
+ case 9: goto st1028;
+ case 32: goto st1028;
+ case 40: goto tr2977;
+ case 41: goto tr2978;
+ case 2058: goto tr2979;
+ case 2107: goto tr2980;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2912;
- goto tr2327;
-tr2912:
+ goto tr2981;
+ goto tr2396;
+tr2981:
{
s->number64 = 0;
}
@@ -76935,11 +78777,11 @@ tr2912:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st987;
-tr2916:
+ goto st1029;
+tr2985:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -76951,14 +78793,14 @@ tr2916:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st987;
-st987:
+ goto st1029;
+st1029:
if ( ++p == pe )
- goto _test_eof987;
-case 987:
+ goto _test_eof1029;
+case 1029:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -76972,40 +78814,40 @@ case 987:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2913;
- case 32: goto tr2913;
- case 40: goto tr2914;
- case 41: goto tr2915;
- case 2058: goto tr2917;
- case 2107: goto tr2918;
+ case 9: goto tr2982;
+ case 32: goto tr2982;
+ case 40: goto tr2983;
+ case 41: goto tr2984;
+ case 2058: goto tr2986;
+ case 2107: goto tr2987;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2916;
- goto tr2327;
-tr2920:
+ goto tr2985;
+ goto tr2396;
+tr2989:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st988;
-tr2921:
+ goto st1030;
+tr2990:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st988;
-tr2923:
+ goto st1030;
+tr2992:
{
s->line_counter++;
}
- goto st988;
-tr2935:
+ goto st1030;
+tr3004:
{
s->buffer[s->buffer_length++] = 0;
@@ -77015,15 +78857,15 @@ tr2935:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 988; goto _out;}
+ {p++; cs = 1030; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st988;
-tr2913:
+ goto st1030;
+tr2982:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -77031,11 +78873,11 @@ tr2913:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st988;
-tr2914:
+ goto st1030;
+tr2983:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -77043,18 +78885,18 @@ tr2914:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st988;
-tr2915:
+ goto st1030;
+tr2984:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -77062,18 +78904,18 @@ tr2915:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st988;
-tr2917:
+ goto st1030;
+tr2986:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -77081,17 +78923,17 @@ tr2917:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st988;
-st988:
+ goto st1030;
+st1030:
if ( ++p == pe )
- goto _test_eof988;
-case 988:
+ goto _test_eof1030;
+case 1030:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -77105,29 +78947,29 @@ case 988:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st988;
- case 32: goto st988;
- case 40: goto tr2920;
- case 41: goto tr2921;
- case 2058: goto tr2923;
- case 2107: goto tr2924;
+ case 9: goto st1030;
+ case 32: goto st1030;
+ case 40: goto tr2989;
+ case 41: goto tr2990;
+ case 2058: goto tr2992;
+ case 2107: goto tr2993;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr2922;
+ goto tr2991;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr2922;
+ goto tr2991;
} else
- goto tr2922;
- goto tr75;
-tr2922:
- { p--; {stack[top++] = 989;goto st699;} }
- goto st989;
-st989:
+ goto tr2991;
+ goto tr77;
+tr2991:
+ { p--; {stack[top++] = 1031;goto st741;} }
+ goto st1031;
+st1031:
if ( ++p == pe )
- goto _test_eof989;
-case 989:
+ goto _test_eof1031;
+case 1031:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -77141,38 +78983,38 @@ case 989:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st990;
- case 32: goto st990;
- case 40: goto tr2926;
- case 41: goto tr2927;
- case 2058: goto tr2928;
- case 2107: goto tr2929;
+ case 9: goto st1032;
+ case 32: goto st1032;
+ case 40: goto tr2995;
+ case 41: goto tr2996;
+ case 2058: goto tr2997;
+ case 2107: goto tr2998;
}
- goto tr75;
-tr2926:
+ goto tr77;
+tr2995:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st990;
-tr2927:
+ goto st1032;
+tr2996:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st990;
-tr2928:
+ goto st1032;
+tr2997:
{
s->line_counter++;
}
- goto st990;
-tr2933:
+ goto st1032;
+tr3002:
{
s->buffer[s->buffer_length++] = 0;
@@ -77182,18 +79024,18 @@ tr2933:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 990; goto _out;}
+ {p++; cs = 1032; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st990;
-st990:
+ goto st1032;
+st1032:
if ( ++p == pe )
- goto _test_eof990;
-case 990:
+ goto _test_eof1032;
+case 1032:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -77207,30 +79049,30 @@ case 990:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st990;
- case 32: goto st990;
- case 40: goto tr2926;
- case 41: goto tr2927;
- case 43: goto tr2930;
- case 2058: goto tr2928;
- case 2107: goto tr2929;
+ case 9: goto st1032;
+ case 32: goto st1032;
+ case 40: goto tr2995;
+ case 41: goto tr2996;
+ case 43: goto tr2999;
+ case 2058: goto tr2997;
+ case 2107: goto tr2998;
}
if ( _widec < 65 ) {
if ( 47 <= _widec && _widec <= 57 )
- goto tr2930;
+ goto tr2999;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr2930;
+ goto tr2999;
} else
- goto tr2930;
- goto tr75;
-tr2930:
- { p--; {stack[top++] = 991;goto st369;} }
- goto st991;
-st991:
+ goto tr2999;
+ goto tr77;
+tr2999:
+ { p--; {stack[top++] = 1033;goto st378;} }
+ goto st1033;
+st1033:
if ( ++p == pe )
- goto _test_eof991;
-case 991:
+ goto _test_eof1033;
+case 1033:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -77244,36 +79086,36 @@ case 991:
!s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 2570: goto tr2931;
- case 2619: goto tr2931;
+ case 2570: goto tr3000;
+ case 2619: goto tr3000;
}
- goto tr75;
-tr2931:
+ goto tr77;
+tr3000:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1456;
-st1456:
+ goto st1504;
+st1504:
if ( ++p == pe )
- goto _test_eof1456;
-case 1456:
+ goto _test_eof1504;
+case 1504:
goto st0;
-tr2929:
+tr2998:
{
s->buffer_length = 0;
}
- goto st992;
-tr2932:
+ goto st1034;
+tr3001:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st992;
-st992:
+ goto st1034;
+st1034:
if ( ++p == pe )
- goto _test_eof992;
-case 992:
+ goto _test_eof1034;
+case 1034:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -77293,23 +79135,23 @@ case 992:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2933;
+ goto tr3002;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2932;
- goto tr75;
-tr2924:
+ goto tr3001;
+ goto tr77;
+tr2993:
{
s->buffer_length = 0;
}
- goto st993;
-tr2934:
+ goto st1035;
+tr3003:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st993;
-tr2918:
+ goto st1035;
+tr2987:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -77317,17 +79159,17 @@ tr2918:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st993;
-st993:
+ goto st1035;
+st1035:
if ( ++p == pe )
- goto _test_eof993;
-case 993:
+ goto _test_eof1035;
+case 1035:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -77347,26 +79189,26 @@ case 993:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2935;
+ goto tr3004;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2934;
- goto tr75;
-tr2911:
+ goto tr3003;
+ goto tr77;
+tr2980:
{
s->buffer_length = 0;
}
- goto st994;
-tr2936:
+ goto st1036;
+tr3005:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st994;
-st994:
+ goto st1036;
+st1036:
if ( ++p == pe )
- goto _test_eof994;
-case 994:
+ goto _test_eof1036;
+case 1036:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -77386,34 +79228,34 @@ case 994:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2937;
+ goto tr3006;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2936;
- goto tr75;
-tr2941:
+ goto tr3005;
+ goto tr77;
+tr3010:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st995;
-tr2942:
+ goto st1037;
+tr3011:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st995;
-tr2945:
+ goto st1037;
+tr3014:
{
s->line_counter++;
}
- goto st995;
-tr2968:
+ goto st1037;
+tr3037:
{
s->buffer[s->buffer_length++] = 0;
@@ -77423,22 +79265,22 @@ tr2968:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 995; goto _out;}
+ {p++; cs = 1037; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st995;
-tr2958:
+ goto st1037;
+tr3027:
{
if ((s->apl.addr_family == 1 && s->number64 <= 32) ||
(s->apl.addr_family == 2 && s->number64 <= 128)) {
s->apl.prefix_length = (uint8_t)(s->number64);
} else {
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -77455,7 +79297,7 @@ tr2958:
break;
default:
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Find prefix without trailing zeroes.
while (len > 0) {
@@ -77467,7 +79309,7 @@ tr2958:
// Check for rdata overflow.
if (rdata_tail + 4 + len > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Write address family.
uint16_t af = htons(s->apl.addr_family);
@@ -77483,15 +79325,15 @@ tr2958:
memcpy(rdata_tail, s->buffer, len);
rdata_tail += len;
}
- goto st995;
-tr2959:
+ goto st1037;
+tr3028:
{
if ((s->apl.addr_family == 1 && s->number64 <= 32) ||
(s->apl.addr_family == 2 && s->number64 <= 128)) {
s->apl.prefix_length = (uint8_t)(s->number64);
} else {
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -77508,7 +79350,7 @@ tr2959:
break;
default:
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Find prefix without trailing zeroes.
while (len > 0) {
@@ -77520,7 +79362,7 @@ tr2959:
// Check for rdata overflow.
if (rdata_tail + 4 + len > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Write address family.
uint16_t af = htons(s->apl.addr_family);
@@ -77539,19 +79381,19 @@ tr2959:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st995;
-tr2960:
+ goto st1037;
+tr3029:
{
if ((s->apl.addr_family == 1 && s->number64 <= 32) ||
(s->apl.addr_family == 2 && s->number64 <= 128)) {
s->apl.prefix_length = (uint8_t)(s->number64);
} else {
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -77568,7 +79410,7 @@ tr2960:
break;
default:
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Find prefix without trailing zeroes.
while (len > 0) {
@@ -77580,7 +79422,7 @@ tr2960:
// Check for rdata overflow.
if (rdata_tail + 4 + len > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Write address family.
uint16_t af = htons(s->apl.addr_family);
@@ -77599,19 +79441,19 @@ tr2960:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st995;
-tr2962:
+ goto st1037;
+tr3031:
{
if ((s->apl.addr_family == 1 && s->number64 <= 32) ||
(s->apl.addr_family == 2 && s->number64 <= 128)) {
s->apl.prefix_length = (uint8_t)(s->number64);
} else {
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -77628,7 +79470,7 @@ tr2962:
break;
default:
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Find prefix without trailing zeroes.
while (len > 0) {
@@ -77640,7 +79482,7 @@ tr2962:
// Check for rdata overflow.
if (rdata_tail + 4 + len > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Write address family.
uint16_t af = htons(s->apl.addr_family);
@@ -77659,11 +79501,11 @@ tr2962:
{
s->line_counter++;
}
- goto st995;
-st995:
+ goto st1037;
+st1037:
if ( ++p == pe )
- goto _test_eof995;
-case 995:
+ goto _test_eof1037;
+case 1037:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -77681,78 +79523,78 @@ case 995:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st995;
- case 32: goto st995;
- case 33: goto tr2940;
- case 40: goto tr2941;
- case 41: goto tr2942;
- case 49: goto tr2943;
- case 50: goto tr2944;
- case 3082: goto tr2945;
- case 3131: goto tr2946;
- case 3338: goto tr2947;
- case 3387: goto tr2947;
- case 3594: goto tr2948;
- case 3643: goto tr2949;
- }
- goto tr2938;
-tr2940:
+ case 9: goto st1037;
+ case 32: goto st1037;
+ case 33: goto tr3009;
+ case 40: goto tr3010;
+ case 41: goto tr3011;
+ case 49: goto tr3012;
+ case 50: goto tr3013;
+ case 3082: goto tr3014;
+ case 3131: goto tr3015;
+ case 3338: goto tr3016;
+ case 3387: goto tr3016;
+ case 3594: goto tr3017;
+ case 3643: goto tr3018;
+ }
+ goto tr3007;
+tr3009:
{
memset(&(s->apl), 0, sizeof(s->apl));
}
{
s->apl.excl_flag = 128; // dec 128 = bin 10000000.
}
- goto st996;
-st996:
+ goto st1038;
+st1038:
if ( ++p == pe )
- goto _test_eof996;
-case 996:
+ goto _test_eof1038;
+case 1038:
switch( (*p) ) {
- case 49: goto tr2950;
- case 50: goto tr2951;
+ case 49: goto tr3019;
+ case 50: goto tr3020;
}
- goto tr2938;
-tr2943:
+ goto tr3007;
+tr3012:
{
memset(&(s->apl), 0, sizeof(s->apl));
}
{
s->apl.addr_family = 1;
}
- goto st997;
-tr2950:
+ goto st1039;
+tr3019:
{
s->apl.addr_family = 1;
}
- goto st997;
-st997:
+ goto st1039;
+st1039:
if ( ++p == pe )
- goto _test_eof997;
-case 997:
+ goto _test_eof1039;
+case 1039:
if ( (*p) == 58 )
- goto st998;
- goto tr2938;
-st998:
+ goto st1040;
+ goto tr3007;
+st1040:
if ( ++p == pe )
- goto _test_eof998;
-case 998:
+ goto _test_eof1040;
+case 1040:
if ( (*p) == 46 )
- goto tr2954;
+ goto tr3023;
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2954;
- goto tr2953;
-tr2955:
+ goto tr3023;
+ goto tr3022;
+tr3024:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st999;
-tr2954:
+ goto st1041;
+tr3023:
{
s->buffer_length = 0;
}
@@ -77761,47 +79603,47 @@ tr2954:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st999;
-st999:
+ goto st1041;
+st1041:
if ( ++p == pe )
- goto _test_eof999;
-case 999:
+ goto _test_eof1041;
+case 1041:
if ( (*p) == 47 )
- goto tr2956;
+ goto tr3025;
if ( 46 <= (*p) && (*p) <= 57 )
- goto tr2955;
- goto tr2953;
-tr2956:
+ goto tr3024;
+ goto tr3022;
+tr3025:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1000;
-tr2972:
+ goto st1042;
+tr3041:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1000;
-st1000:
+ goto st1042;
+st1042:
if ( ++p == pe )
- goto _test_eof1000;
-case 1000:
+ goto _test_eof1042;
+case 1042:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2957;
- goto tr2938;
-tr2957:
+ goto tr3026;
+ goto tr3007;
+tr3026:
{
s->number64 = 0;
}
@@ -77816,11 +79658,11 @@ tr2957:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1001;
-tr2961:
+ goto st1043;
+tr3030:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -77832,14 +79674,14 @@ tr2961:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1001;
-st1001:
+ goto st1043;
+st1043:
if ( ++p == pe )
- goto _test_eof1001;
-case 1001:
+ goto _test_eof1043;
+case 1043:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -77857,40 +79699,40 @@ case 1001:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto tr2958;
- case 32: goto tr2958;
- case 40: goto tr2959;
- case 41: goto tr2960;
- case 3082: goto tr2962;
- case 3131: goto tr2963;
- case 3338: goto tr2964;
- case 3387: goto tr2964;
- case 3594: goto tr2965;
- case 3643: goto tr2966;
+ case 9: goto tr3027;
+ case 32: goto tr3027;
+ case 40: goto tr3028;
+ case 41: goto tr3029;
+ case 3082: goto tr3031;
+ case 3131: goto tr3032;
+ case 3338: goto tr3033;
+ case 3387: goto tr3033;
+ case 3594: goto tr3034;
+ case 3643: goto tr3035;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2961;
- goto tr2938;
-tr2946:
+ goto tr3030;
+ goto tr3007;
+tr3015:
{
s->buffer_length = 0;
}
- goto st1002;
-tr2967:
+ goto st1044;
+tr3036:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1002;
-tr2963:
+ goto st1044;
+tr3032:
{
if ((s->apl.addr_family == 1 && s->number64 <= 32) ||
(s->apl.addr_family == 2 && s->number64 <= 128)) {
s->apl.prefix_length = (uint8_t)(s->number64);
} else {
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -77907,7 +79749,7 @@ tr2963:
break;
default:
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Find prefix without trailing zeroes.
while (len > 0) {
@@ -77919,7 +79761,7 @@ tr2963:
// Check for rdata overflow.
if (rdata_tail + 4 + len > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Write address family.
uint16_t af = htons(s->apl.addr_family);
@@ -77938,11 +79780,11 @@ tr2963:
{
s->buffer_length = 0;
}
- goto st1002;
-st1002:
+ goto st1044;
+st1044:
if ( ++p == pe )
- goto _test_eof1002;
-case 1002:
+ goto _test_eof1044;
+case 1044:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -77962,23 +79804,23 @@ case 1002:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2968;
+ goto tr3037;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2967;
- goto tr75;
-tr2947:
+ goto tr3036;
+ goto tr77;
+tr3016:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1457;
-tr2964:
+ goto st1505;
+tr3033:
{
if ((s->apl.addr_family == 1 && s->number64 <= 32) ||
(s->apl.addr_family == 2 && s->number64 <= 128)) {
s->apl.prefix_length = (uint8_t)(s->number64);
} else {
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -77995,7 +79837,7 @@ tr2964:
break;
default:
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Find prefix without trailing zeroes.
while (len > 0) {
@@ -78007,7 +79849,7 @@ tr2964:
// Check for rdata overflow.
if (rdata_tail + 4 + len > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Write address family.
uint16_t af = htons(s->apl.addr_family);
@@ -78026,28 +79868,28 @@ tr2964:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1457;
-st1457:
+ goto st1505;
+st1505:
if ( ++p == pe )
- goto _test_eof1457;
-case 1457:
+ goto _test_eof1505;
+case 1505:
goto st0;
-tr2948:
+tr3017:
{
s->line_counter++;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1458;
-tr2965:
+ goto st1506;
+tr3034:
{
if ((s->apl.addr_family == 1 && s->number64 <= 32) ||
(s->apl.addr_family == 2 && s->number64 <= 128)) {
s->apl.prefix_length = (uint8_t)(s->number64);
} else {
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -78064,7 +79906,7 @@ tr2965:
break;
default:
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Find prefix without trailing zeroes.
while (len > 0) {
@@ -78076,7 +79918,7 @@ tr2965:
// Check for rdata overflow.
if (rdata_tail + 4 + len > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Write address family.
uint16_t af = htons(s->apl.addr_family);
@@ -78098,11 +79940,11 @@ tr2965:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1458;
-st1458:
+ goto st1506;
+st1506:
if ( ++p == pe )
- goto _test_eof1458;
-case 1458:
+ goto _test_eof1506;
+case 1506:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -78120,67 +79962,67 @@ case 1458:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st995;
- case 32: goto st995;
- case 33: goto tr2940;
- case 40: goto tr2941;
- case 41: goto tr2942;
- case 49: goto tr2943;
- case 50: goto tr2944;
- case 3082: goto tr2945;
- case 3131: goto tr2946;
- case 3338: goto tr2947;
- case 3387: goto tr2947;
- case 3594: goto tr2948;
- case 3643: goto tr2949;
- }
- goto tr2938;
-tr2944:
+ case 9: goto st1037;
+ case 32: goto st1037;
+ case 33: goto tr3009;
+ case 40: goto tr3010;
+ case 41: goto tr3011;
+ case 49: goto tr3012;
+ case 50: goto tr3013;
+ case 3082: goto tr3014;
+ case 3131: goto tr3015;
+ case 3338: goto tr3016;
+ case 3387: goto tr3016;
+ case 3594: goto tr3017;
+ case 3643: goto tr3018;
+ }
+ goto tr3007;
+tr3013:
{
memset(&(s->apl), 0, sizeof(s->apl));
}
{
s->apl.addr_family = 2;
}
- goto st1003;
-tr2951:
+ goto st1045;
+tr3020:
{
s->apl.addr_family = 2;
}
- goto st1003;
-st1003:
+ goto st1045;
+st1045:
if ( ++p == pe )
- goto _test_eof1003;
-case 1003:
+ goto _test_eof1045;
+case 1045:
if ( (*p) == 58 )
- goto st1004;
- goto tr2938;
-st1004:
+ goto st1046;
+ goto tr3007;
+st1046:
if ( ++p == pe )
- goto _test_eof1004;
-case 1004:
+ goto _test_eof1046;
+case 1046:
if ( (*p) == 46 )
- goto tr2970;
+ goto tr3039;
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 58 )
- goto tr2970;
+ goto tr3039;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr2970;
+ goto tr3039;
} else
- goto tr2970;
- goto tr2953;
-tr2971:
+ goto tr3039;
+ goto tr3022;
+tr3040:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1005;
-tr2970:
+ goto st1047;
+tr3039:
{
s->buffer_length = 0;
}
@@ -78189,41 +80031,41 @@ tr2970:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1005;
-st1005:
+ goto st1047;
+st1047:
if ( ++p == pe )
- goto _test_eof1005;
-case 1005:
+ goto _test_eof1047;
+case 1047:
if ( (*p) == 47 )
- goto tr2972;
+ goto tr3041;
if ( (*p) < 65 ) {
if ( 46 <= (*p) && (*p) <= 58 )
- goto tr2971;
+ goto tr3040;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr2971;
+ goto tr3040;
} else
- goto tr2971;
- goto tr2953;
-tr2949:
+ goto tr3040;
+ goto tr3022;
+tr3018:
{
s->buffer_length = 0;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1459;
-tr2966:
+ goto st1507;
+tr3035:
{
if ((s->apl.addr_family == 1 && s->number64 <= 32) ||
(s->apl.addr_family == 2 && s->number64 <= 128)) {
s->apl.prefix_length = (uint8_t)(s->number64);
} else {
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -78240,7 +80082,7 @@ tr2966:
break;
default:
WARN(ZS_BAD_APL);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Find prefix without trailing zeroes.
while (len > 0) {
@@ -78252,7 +80094,7 @@ tr2966:
// Check for rdata overflow.
if (rdata_tail + 4 + len > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
// Write address family.
uint16_t af = htons(s->apl.addr_family);
@@ -78274,11 +80116,11 @@ tr2966:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1459;
-st1459:
+ goto st1507;
+st1507:
if ( ++p == pe )
- goto _test_eof1459;
-case 1459:
+ goto _test_eof1507;
+case 1507:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -78298,18 +80140,18 @@ case 1459:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr2968;
+ goto tr3037;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr2967;
- goto tr75;
-st1006:
+ goto tr3036;
+ goto tr77;
+st1048:
if ( ++p == pe )
- goto _test_eof1006;
-case 1006:
+ goto _test_eof1048;
+case 1048:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr2973;
- goto tr2327;
-tr2973:
+ goto tr3042;
+ goto tr2396;
+tr3042:
{
s->number64 = 0;
}
@@ -78324,11 +80166,11 @@ tr2973:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1007;
-tr2977:
+ goto st1049;
+tr3046:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -78340,14 +80182,14 @@ tr2977:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1007;
-st1007:
+ goto st1049;
+st1049:
if ( ++p == pe )
- goto _test_eof1007;
-case 1007:
+ goto _test_eof1049;
+case 1049:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -78361,40 +80203,40 @@ case 1007:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2974;
- case 32: goto tr2974;
- case 40: goto tr2975;
- case 41: goto tr2976;
- case 2058: goto tr2978;
- case 2107: goto tr2979;
+ case 9: goto tr3043;
+ case 32: goto tr3043;
+ case 40: goto tr3044;
+ case 41: goto tr3045;
+ case 2058: goto tr3047;
+ case 2107: goto tr3048;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2977;
- goto tr2327;
-tr2981:
+ goto tr3046;
+ goto tr2396;
+tr3050:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1008;
-tr2982:
+ goto st1050;
+tr3051:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1008;
-tr2984:
+ goto st1050;
+tr3053:
{
s->line_counter++;
}
- goto st1008;
-tr3021:
+ goto st1050;
+tr3090:
{
s->buffer[s->buffer_length++] = 0;
@@ -78404,15 +80246,15 @@ tr3021:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1008; goto _out;}
+ {p++; cs = 1050; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1008;
-tr2974:
+ goto st1050;
+tr3043:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -78420,11 +80262,11 @@ tr2974:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1008;
-tr2975:
+ goto st1050;
+tr3044:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -78432,18 +80274,18 @@ tr2975:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1008;
-tr2976:
+ goto st1050;
+tr3045:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -78451,18 +80293,18 @@ tr2976:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1008;
-tr2978:
+ goto st1050;
+tr3047:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -78470,17 +80312,17 @@ tr2978:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1008;
-st1008:
+ goto st1050;
+st1050:
if ( ++p == pe )
- goto _test_eof1008;
-case 1008:
+ goto _test_eof1050;
+case 1050:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -78494,29 +80336,29 @@ case 1008:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1008;
- case 32: goto st1008;
- case 40: goto tr2981;
- case 41: goto tr2982;
- case 2058: goto tr2984;
- case 2107: goto tr2985;
+ case 9: goto st1050;
+ case 32: goto st1050;
+ case 40: goto tr3050;
+ case 41: goto tr3051;
+ case 2058: goto tr3053;
+ case 2107: goto tr3054;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr2983;
+ goto tr3052;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr2983;
+ goto tr3052;
} else
- goto tr2983;
- goto tr75;
-tr2983:
- { p--; {stack[top++] = 1009;goto st699;} }
- goto st1009;
-st1009:
+ goto tr3052;
+ goto tr77;
+tr3052:
+ { p--; {stack[top++] = 1051;goto st741;} }
+ goto st1051;
+st1051:
if ( ++p == pe )
- goto _test_eof1009;
-case 1009:
+ goto _test_eof1051;
+case 1051:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -78530,38 +80372,38 @@ case 1009:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1010;
- case 32: goto st1010;
- case 40: goto tr2987;
- case 41: goto tr2988;
- case 2058: goto tr2989;
- case 2107: goto tr2990;
+ case 9: goto st1052;
+ case 32: goto st1052;
+ case 40: goto tr3056;
+ case 41: goto tr3057;
+ case 2058: goto tr3058;
+ case 2107: goto tr3059;
}
- goto tr75;
-tr2987:
+ goto tr77;
+tr3056:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1010;
-tr2988:
+ goto st1052;
+tr3057:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1010;
-tr2989:
+ goto st1052;
+tr3058:
{
s->line_counter++;
}
- goto st1010;
-tr3019:
+ goto st1052;
+tr3088:
{
s->buffer[s->buffer_length++] = 0;
@@ -78571,18 +80413,18 @@ tr3019:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1010; goto _out;}
+ {p++; cs = 1052; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1010;
-st1010:
+ goto st1052;
+st1052:
if ( ++p == pe )
- goto _test_eof1010;
-case 1010:
+ goto _test_eof1052;
+case 1052:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -78596,17 +80438,17 @@ case 1010:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1010;
- case 32: goto st1010;
- case 40: goto tr2987;
- case 41: goto tr2988;
- case 2058: goto tr2989;
- case 2107: goto tr2990;
+ case 9: goto st1052;
+ case 32: goto st1052;
+ case 40: goto tr3056;
+ case 41: goto tr3057;
+ case 2058: goto tr3058;
+ case 2107: goto tr3059;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2991;
- goto tr2327;
-tr2991:
+ goto tr3060;
+ goto tr2396;
+tr3060:
{
s->number64 = 0;
}
@@ -78621,11 +80463,11 @@ tr2991:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1011;
-tr2995:
+ goto st1053;
+tr3064:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -78637,14 +80479,14 @@ tr2995:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1011;
-st1011:
+ goto st1053;
+st1053:
if ( ++p == pe )
- goto _test_eof1011;
-case 1011:
+ goto _test_eof1053;
+case 1053:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -78658,40 +80500,40 @@ case 1011:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr2992;
- case 32: goto tr2992;
- case 40: goto tr2993;
- case 41: goto tr2994;
- case 2058: goto tr2996;
- case 2107: goto tr2997;
+ case 9: goto tr3061;
+ case 32: goto tr3061;
+ case 40: goto tr3062;
+ case 41: goto tr3063;
+ case 2058: goto tr3065;
+ case 2107: goto tr3066;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr2995;
- goto tr2327;
-tr3000:
+ goto tr3064;
+ goto tr2396;
+tr3069:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1012;
-tr3001:
+ goto st1054;
+tr3070:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1012;
-tr3003:
+ goto st1054;
+tr3072:
{
s->line_counter++;
}
- goto st1012;
-tr3017:
+ goto st1054;
+tr3086:
{
s->buffer[s->buffer_length++] = 0;
@@ -78701,79 +80543,79 @@ tr3017:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1012; goto _out;}
+ {p++; cs = 1054; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1012;
-tr2992:
+ goto st1054;
+tr3061:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1012;
-tr2993:
+ goto st1054;
+tr3062:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1012;
-tr2994:
+ goto st1054;
+tr3063:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1012;
-tr2996:
+ goto st1054;
+tr3065:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1012;
-st1012:
+ goto st1054;
+st1054:
if ( ++p == pe )
- goto _test_eof1012;
-case 1012:
+ goto _test_eof1054;
+case 1054:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -78787,69 +80629,69 @@ case 1012:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1012;
- case 32: goto st1012;
- case 40: goto tr3000;
- case 41: goto tr3001;
- case 2058: goto tr3003;
- case 2107: goto tr3004;
+ case 9: goto st1054;
+ case 32: goto st1054;
+ case 40: goto tr3069;
+ case 41: goto tr3070;
+ case 2058: goto tr3072;
+ case 2107: goto tr3073;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3002;
+ goto tr3071;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3002;
+ goto tr3071;
} else
- goto tr3002;
- goto tr2998;
-tr3002:
+ goto tr3071;
+ goto tr3067;
+tr3071:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1013;
-st1013:
+ goto st1055;
+st1055:
if ( ++p == pe )
- goto _test_eof1013;
-case 1013:
+ goto _test_eof1055;
+case 1055:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3005;
+ goto tr3074;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr3005;
+ goto tr3074;
} else
- goto tr3005;
- goto tr2998;
-tr3007:
+ goto tr3074;
+ goto tr3067;
+tr3076:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1014;
-tr3008:
+ goto st1056;
+tr3077:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1014;
-tr3009:
+ goto st1056;
+tr3078:
{
s->line_counter++;
}
- goto st1014;
-tr3015:
+ goto st1056;
+tr3084:
{
s->buffer[s->buffer_length++] = 0;
@@ -78859,24 +80701,24 @@ tr3015:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1014; goto _out;}
+ {p++; cs = 1056; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1014;
-tr3005:
+ goto st1056;
+tr3074:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1014;
-st1014:
+ goto st1056;
+st1056:
if ( ++p == pe )
- goto _test_eof1014;
-case 1014:
+ goto _test_eof1056;
+case 1056:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -78894,42 +80736,42 @@ case 1014:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st1014;
- case 32: goto st1014;
- case 40: goto tr3007;
- case 41: goto tr3008;
- case 3082: goto tr3009;
- case 3131: goto tr3010;
- case 3338: goto tr3011;
- case 3387: goto tr3011;
- case 3594: goto tr3012;
- case 3643: goto tr3013;
+ case 9: goto st1056;
+ case 32: goto st1056;
+ case 40: goto tr3076;
+ case 41: goto tr3077;
+ case 3082: goto tr3078;
+ case 3131: goto tr3079;
+ case 3338: goto tr3080;
+ case 3387: goto tr3080;
+ case 3594: goto tr3081;
+ case 3643: goto tr3082;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3002;
+ goto tr3071;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3002;
+ goto tr3071;
} else
- goto tr3002;
- goto tr2998;
-tr3010:
+ goto tr3071;
+ goto tr3067;
+tr3079:
{
s->buffer_length = 0;
}
- goto st1015;
-tr3014:
+ goto st1057;
+tr3083:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1015;
-st1015:
+ goto st1057;
+st1057:
if ( ++p == pe )
- goto _test_eof1015;
-case 1015:
+ goto _test_eof1057;
+case 1057:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -78949,32 +80791,32 @@ case 1015:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3015;
+ goto tr3084;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3014;
- goto tr2998;
-tr3011:
+ goto tr3083;
+ goto tr3067;
+tr3080:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1460;
-st1460:
+ goto st1508;
+st1508:
if ( ++p == pe )
- goto _test_eof1460;
-case 1460:
+ goto _test_eof1508;
+case 1508:
goto st0;
-tr3012:
+tr3081:
{
s->line_counter++;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1461;
-st1461:
+ goto st1509;
+st1509:
if ( ++p == pe )
- goto _test_eof1461;
-case 1461:
+ goto _test_eof1509;
+case 1509:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -78992,38 +80834,38 @@ case 1461:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st1014;
- case 32: goto st1014;
- case 40: goto tr3007;
- case 41: goto tr3008;
- case 3082: goto tr3009;
- case 3131: goto tr3010;
- case 3338: goto tr3011;
- case 3387: goto tr3011;
- case 3594: goto tr3012;
- case 3643: goto tr3013;
+ case 9: goto st1056;
+ case 32: goto st1056;
+ case 40: goto tr3076;
+ case 41: goto tr3077;
+ case 3082: goto tr3078;
+ case 3131: goto tr3079;
+ case 3338: goto tr3080;
+ case 3387: goto tr3080;
+ case 3594: goto tr3081;
+ case 3643: goto tr3082;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3002;
+ goto tr3071;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3002;
+ goto tr3071;
} else
- goto tr3002;
- goto tr2998;
-tr3013:
+ goto tr3071;
+ goto tr3067;
+tr3082:
{
s->buffer_length = 0;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1462;
-st1462:
+ goto st1510;
+st1510:
if ( ++p == pe )
- goto _test_eof1462;
-case 1462:
+ goto _test_eof1510;
+case 1510:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -79043,40 +80885,40 @@ case 1462:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3015;
+ goto tr3084;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3014;
- goto tr2998;
-tr3004:
+ goto tr3083;
+ goto tr3067;
+tr3073:
{
s->buffer_length = 0;
}
- goto st1016;
-tr3016:
+ goto st1058;
+tr3085:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1016;
-tr2997:
+ goto st1058;
+tr3066:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1016;
-st1016:
+ goto st1058;
+st1058:
if ( ++p == pe )
- goto _test_eof1016;
-case 1016:
+ goto _test_eof1058;
+case 1058:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -79096,26 +80938,26 @@ case 1016:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3017;
+ goto tr3086;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3016;
- goto tr75;
-tr2990:
+ goto tr3085;
+ goto tr77;
+tr3059:
{
s->buffer_length = 0;
}
- goto st1017;
-tr3018:
+ goto st1059;
+tr3087:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1017;
-st1017:
+ goto st1059;
+st1059:
if ( ++p == pe )
- goto _test_eof1017;
-case 1017:
+ goto _test_eof1059;
+case 1059:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -79135,23 +80977,23 @@ case 1017:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3019;
+ goto tr3088;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3018;
- goto tr75;
-tr2985:
+ goto tr3087;
+ goto tr77;
+tr3054:
{
s->buffer_length = 0;
}
- goto st1018;
-tr3020:
+ goto st1060;
+tr3089:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1018;
-tr2979:
+ goto st1060;
+tr3048:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -79159,17 +81001,17 @@ tr2979:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1018;
-st1018:
+ goto st1060;
+st1060:
if ( ++p == pe )
- goto _test_eof1018;
-case 1018:
+ goto _test_eof1060;
+case 1060:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -79189,18 +81031,18 @@ case 1018:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3021;
+ goto tr3090;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3020;
- goto tr75;
-st1019:
+ goto tr3089;
+ goto tr77;
+st1061:
if ( ++p == pe )
- goto _test_eof1019;
-case 1019:
+ goto _test_eof1061;
+case 1061:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3022;
- goto tr2327;
-tr3022:
+ goto tr3091;
+ goto tr2396;
+tr3091:
{
s->number64 = 0;
}
@@ -79215,11 +81057,11 @@ tr3022:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1020;
-tr3026:
+ goto st1062;
+tr3095:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -79231,14 +81073,14 @@ tr3026:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1020;
-st1020:
+ goto st1062;
+st1062:
if ( ++p == pe )
- goto _test_eof1020;
-case 1020:
+ goto _test_eof1062;
+case 1062:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -79252,40 +81094,40 @@ case 1020:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3023;
- case 32: goto tr3023;
- case 40: goto tr3024;
- case 41: goto tr3025;
- case 2058: goto tr3027;
- case 2107: goto tr3028;
+ case 9: goto tr3092;
+ case 32: goto tr3092;
+ case 40: goto tr3093;
+ case 41: goto tr3094;
+ case 2058: goto tr3096;
+ case 2107: goto tr3097;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3026;
- goto tr2327;
-tr3030:
+ goto tr3095;
+ goto tr2396;
+tr3099:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1021;
-tr3031:
+ goto st1063;
+tr3100:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1021;
-tr3033:
+ goto st1063;
+tr3102:
{
s->line_counter++;
}
- goto st1021;
-tr3061:
+ goto st1063;
+tr3130:
{
s->buffer[s->buffer_length++] = 0;
@@ -79295,79 +81137,79 @@ tr3061:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1021; goto _out;}
+ {p++; cs = 1063; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1021;
-tr3023:
+ goto st1063;
+tr3092:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1021;
-tr3024:
+ goto st1063;
+tr3093:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1021;
-tr3025:
+ goto st1063;
+tr3094:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1021;
-tr3027:
+ goto st1063;
+tr3096:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1021;
-st1021:
+ goto st1063;
+st1063:
if ( ++p == pe )
- goto _test_eof1021;
-case 1021:
+ goto _test_eof1063;
+case 1063:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -79381,17 +81223,17 @@ case 1021:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1021;
- case 32: goto st1021;
- case 40: goto tr3030;
- case 41: goto tr3031;
- case 2058: goto tr3033;
- case 2107: goto tr3034;
+ case 9: goto st1063;
+ case 32: goto st1063;
+ case 40: goto tr3099;
+ case 41: goto tr3100;
+ case 2058: goto tr3102;
+ case 2107: goto tr3103;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3032;
- goto tr2327;
-tr3032:
+ goto tr3101;
+ goto tr2396;
+tr3101:
{
s->number64 = 0;
}
@@ -79406,11 +81248,11 @@ tr3032:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1022;
-tr3038:
+ goto st1064;
+tr3107:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -79422,14 +81264,14 @@ tr3038:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1022;
-st1022:
+ goto st1064;
+st1064:
if ( ++p == pe )
- goto _test_eof1022;
-case 1022:
+ goto _test_eof1064;
+case 1064:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -79443,40 +81285,40 @@ case 1022:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3035;
- case 32: goto tr3035;
- case 40: goto tr3036;
- case 41: goto tr3037;
- case 2058: goto tr3039;
- case 2107: goto tr3040;
+ case 9: goto tr3104;
+ case 32: goto tr3104;
+ case 40: goto tr3105;
+ case 41: goto tr3106;
+ case 2058: goto tr3108;
+ case 2107: goto tr3109;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3038;
- goto tr2327;
-tr3042:
+ goto tr3107;
+ goto tr2396;
+tr3111:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1023;
-tr3043:
+ goto st1065;
+tr3112:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1023;
-tr3045:
+ goto st1065;
+tr3114:
{
s->line_counter++;
}
- goto st1023;
-tr3059:
+ goto st1065;
+tr3128:
{
s->buffer[s->buffer_length++] = 0;
@@ -79486,79 +81328,79 @@ tr3059:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1023; goto _out;}
+ {p++; cs = 1065; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1023;
-tr3035:
+ goto st1065;
+tr3104:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1023;
-tr3036:
+ goto st1065;
+tr3105:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1023;
-tr3037:
+ goto st1065;
+tr3106:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1023;
-tr3039:
+ goto st1065;
+tr3108:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1023;
-st1023:
+ goto st1065;
+st1065:
if ( ++p == pe )
- goto _test_eof1023;
-case 1023:
+ goto _test_eof1065;
+case 1065:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -79572,69 +81414,69 @@ case 1023:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1023;
- case 32: goto st1023;
- case 40: goto tr3042;
- case 41: goto tr3043;
- case 2058: goto tr3045;
- case 2107: goto tr3046;
+ case 9: goto st1065;
+ case 32: goto st1065;
+ case 40: goto tr3111;
+ case 41: goto tr3112;
+ case 2058: goto tr3114;
+ case 2107: goto tr3115;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3044;
+ goto tr3113;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3044;
+ goto tr3113;
} else
- goto tr3044;
- goto tr2998;
-tr3044:
+ goto tr3113;
+ goto tr3067;
+tr3113:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1024;
-st1024:
+ goto st1066;
+st1066:
if ( ++p == pe )
- goto _test_eof1024;
-case 1024:
+ goto _test_eof1066;
+case 1066:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3047;
+ goto tr3116;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr3047;
+ goto tr3116;
} else
- goto tr3047;
- goto tr2998;
-tr3049:
+ goto tr3116;
+ goto tr3067;
+tr3118:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1025;
-tr3050:
+ goto st1067;
+tr3119:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1025;
-tr3051:
+ goto st1067;
+tr3120:
{
s->line_counter++;
}
- goto st1025;
-tr3057:
+ goto st1067;
+tr3126:
{
s->buffer[s->buffer_length++] = 0;
@@ -79644,24 +81486,24 @@ tr3057:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1025; goto _out;}
+ {p++; cs = 1067; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1025;
-tr3047:
+ goto st1067;
+tr3116:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1025;
-st1025:
+ goto st1067;
+st1067:
if ( ++p == pe )
- goto _test_eof1025;
-case 1025:
+ goto _test_eof1067;
+case 1067:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -79679,42 +81521,42 @@ case 1025:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st1025;
- case 32: goto st1025;
- case 40: goto tr3049;
- case 41: goto tr3050;
- case 3082: goto tr3051;
- case 3131: goto tr3052;
- case 3338: goto tr3053;
- case 3387: goto tr3053;
- case 3594: goto tr3054;
- case 3643: goto tr3055;
+ case 9: goto st1067;
+ case 32: goto st1067;
+ case 40: goto tr3118;
+ case 41: goto tr3119;
+ case 3082: goto tr3120;
+ case 3131: goto tr3121;
+ case 3338: goto tr3122;
+ case 3387: goto tr3122;
+ case 3594: goto tr3123;
+ case 3643: goto tr3124;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3044;
+ goto tr3113;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3044;
+ goto tr3113;
} else
- goto tr3044;
- goto tr2998;
-tr3052:
+ goto tr3113;
+ goto tr3067;
+tr3121:
{
s->buffer_length = 0;
}
- goto st1026;
-tr3056:
+ goto st1068;
+tr3125:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1026;
-st1026:
+ goto st1068;
+st1068:
if ( ++p == pe )
- goto _test_eof1026;
-case 1026:
+ goto _test_eof1068;
+case 1068:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -79734,32 +81576,32 @@ case 1026:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3057;
+ goto tr3126;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3056;
- goto tr2998;
-tr3053:
+ goto tr3125;
+ goto tr3067;
+tr3122:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1463;
-st1463:
+ goto st1511;
+st1511:
if ( ++p == pe )
- goto _test_eof1463;
-case 1463:
+ goto _test_eof1511;
+case 1511:
goto st0;
-tr3054:
+tr3123:
{
s->line_counter++;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1464;
-st1464:
+ goto st1512;
+st1512:
if ( ++p == pe )
- goto _test_eof1464;
-case 1464:
+ goto _test_eof1512;
+case 1512:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -79777,38 +81619,38 @@ case 1464:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st1025;
- case 32: goto st1025;
- case 40: goto tr3049;
- case 41: goto tr3050;
- case 3082: goto tr3051;
- case 3131: goto tr3052;
- case 3338: goto tr3053;
- case 3387: goto tr3053;
- case 3594: goto tr3054;
- case 3643: goto tr3055;
+ case 9: goto st1067;
+ case 32: goto st1067;
+ case 40: goto tr3118;
+ case 41: goto tr3119;
+ case 3082: goto tr3120;
+ case 3131: goto tr3121;
+ case 3338: goto tr3122;
+ case 3387: goto tr3122;
+ case 3594: goto tr3123;
+ case 3643: goto tr3124;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3044;
+ goto tr3113;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3044;
+ goto tr3113;
} else
- goto tr3044;
- goto tr2998;
-tr3055:
+ goto tr3113;
+ goto tr3067;
+tr3124:
{
s->buffer_length = 0;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1465;
-st1465:
+ goto st1513;
+st1513:
if ( ++p == pe )
- goto _test_eof1465;
-case 1465:
+ goto _test_eof1513;
+case 1513:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -79828,40 +81670,40 @@ case 1465:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3057;
+ goto tr3126;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3056;
- goto tr2998;
-tr3046:
+ goto tr3125;
+ goto tr3067;
+tr3115:
{
s->buffer_length = 0;
}
- goto st1027;
-tr3058:
+ goto st1069;
+tr3127:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1027;
-tr3040:
+ goto st1069;
+tr3109:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1027;
-st1027:
+ goto st1069;
+st1069:
if ( ++p == pe )
- goto _test_eof1027;
-case 1027:
+ goto _test_eof1069;
+case 1069:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -79881,40 +81723,40 @@ case 1027:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3059;
+ goto tr3128;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3058;
- goto tr75;
-tr3034:
+ goto tr3127;
+ goto tr77;
+tr3103:
{
s->buffer_length = 0;
}
- goto st1028;
-tr3060:
+ goto st1070;
+tr3129:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1028;
-tr3028:
+ goto st1070;
+tr3097:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1028;
-st1028:
+ goto st1070;
+st1070:
if ( ++p == pe )
- goto _test_eof1028;
-case 1028:
+ goto _test_eof1070;
+case 1070:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -79934,18 +81776,18 @@ case 1028:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3061;
+ goto tr3130;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3060;
- goto tr75;
-st1029:
+ goto tr3129;
+ goto tr77;
+st1071:
if ( ++p == pe )
- goto _test_eof1029;
-case 1029:
+ goto _test_eof1071;
+case 1071:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3062;
- goto tr2327;
-tr3062:
+ goto tr3131;
+ goto tr2396;
+tr3131:
{
s->number64 = 0;
}
@@ -79960,11 +81802,11 @@ tr3062:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1030;
-tr3066:
+ goto st1072;
+tr3135:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -79976,14 +81818,14 @@ tr3066:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1030;
-st1030:
+ goto st1072;
+st1072:
if ( ++p == pe )
- goto _test_eof1030;
-case 1030:
+ goto _test_eof1072;
+case 1072:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -79997,40 +81839,40 @@ case 1030:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3063;
- case 32: goto tr3063;
- case 40: goto tr3064;
- case 41: goto tr3065;
- case 2058: goto tr3067;
- case 2107: goto tr3068;
+ case 9: goto tr3132;
+ case 32: goto tr3132;
+ case 40: goto tr3133;
+ case 41: goto tr3134;
+ case 2058: goto tr3136;
+ case 2107: goto tr3137;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3066;
- goto tr2327;
-tr3071:
+ goto tr3135;
+ goto tr2396;
+tr3140:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1031;
-tr3072:
+ goto st1073;
+tr3141:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1031;
-tr3077:
+ goto st1073;
+tr3146:
{
s->line_counter++;
}
- goto st1031;
-tr3270:
+ goto st1073;
+tr3339:
{
s->buffer[s->buffer_length++] = 0;
@@ -80040,79 +81882,79 @@ tr3270:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1031; goto _out;}
+ {p++; cs = 1073; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1031;
-tr3063:
+ goto st1073;
+tr3132:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1031;
-tr3064:
+ goto st1073;
+tr3133:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1031;
-tr3065:
+ goto st1073;
+tr3134:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1031;
-tr3067:
+ goto st1073;
+tr3136:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1031;
-st1031:
+ goto st1073;
+st1073:
if ( ++p == pe )
- goto _test_eof1031;
-case 1031:
+ goto _test_eof1073;
+case 1073:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -80126,27 +81968,27 @@ case 1031:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1031;
- case 32: goto st1031;
- case 40: goto tr3071;
- case 41: goto tr3072;
- case 48: goto tr3073;
- case 49: goto tr3074;
- case 50: goto tr3075;
- case 51: goto tr3076;
- case 2058: goto tr3077;
- case 2107: goto tr3078;
- }
- goto tr3069;
-tr3073:
+ case 9: goto st1073;
+ case 32: goto st1073;
+ case 40: goto tr3140;
+ case 41: goto tr3141;
+ case 48: goto tr3142;
+ case 49: goto tr3143;
+ case 50: goto tr3144;
+ case 51: goto tr3145;
+ case 2058: goto tr3146;
+ case 2107: goto tr3147;
+ }
+ goto tr3138;
+tr3142:
{
*(rdata_tail++) = 0;
}
- goto st1032;
-st1032:
+ goto st1074;
+st1074:
if ( ++p == pe )
- goto _test_eof1032;
-case 1032:
+ goto _test_eof1074;
+case 1074:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -80160,38 +82002,38 @@ case 1032:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1033;
- case 32: goto st1033;
- case 40: goto tr3080;
- case 41: goto tr3081;
- case 2058: goto tr3082;
- case 2107: goto tr3083;
+ case 9: goto st1075;
+ case 32: goto st1075;
+ case 40: goto tr3149;
+ case 41: goto tr3150;
+ case 2058: goto tr3151;
+ case 2107: goto tr3152;
}
- goto tr3069;
-tr3080:
+ goto tr3138;
+tr3149:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1033;
-tr3081:
+ goto st1075;
+tr3150:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1033;
-tr3082:
+ goto st1075;
+tr3151:
{
s->line_counter++;
}
- goto st1033;
-tr3132:
+ goto st1075;
+tr3201:
{
s->buffer[s->buffer_length++] = 0;
@@ -80201,18 +82043,18 @@ tr3132:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1033; goto _out;}
+ {p++; cs = 1075; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1033;
-st1033:
+ goto st1075;
+st1075:
if ( ++p == pe )
- goto _test_eof1033;
-case 1033:
+ goto _test_eof1075;
+case 1075:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -80226,17 +82068,17 @@ case 1033:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1033;
- case 32: goto st1033;
- case 40: goto tr3080;
- case 41: goto tr3081;
- case 2058: goto tr3082;
- case 2107: goto tr3083;
+ case 9: goto st1075;
+ case 32: goto st1075;
+ case 40: goto tr3149;
+ case 41: goto tr3150;
+ case 2058: goto tr3151;
+ case 2107: goto tr3152;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3085;
- goto tr3084;
-tr3085:
+ goto tr3154;
+ goto tr3153;
+tr3154:
{
s->number64 = 0;
}
@@ -80251,11 +82093,11 @@ tr3085:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1034;
-tr3089:
+ goto st1076;
+tr3158:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -80267,14 +82109,14 @@ tr3089:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1034;
-st1034:
+ goto st1076;
+st1076:
if ( ++p == pe )
- goto _test_eof1034;
-case 1034:
+ goto _test_eof1076;
+case 1076:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -80288,40 +82130,40 @@ case 1034:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3086;
- case 32: goto tr3086;
- case 40: goto tr3087;
- case 41: goto tr3088;
- case 2058: goto tr3090;
- case 2107: goto tr3091;
+ case 9: goto tr3155;
+ case 32: goto tr3155;
+ case 40: goto tr3156;
+ case 41: goto tr3157;
+ case 2058: goto tr3159;
+ case 2107: goto tr3160;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3089;
- goto tr3084;
-tr3093:
+ goto tr3158;
+ goto tr3153;
+tr3162:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1035;
-tr3094:
+ goto st1077;
+tr3163:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1035;
-tr3096:
+ goto st1077;
+tr3165:
{
s->line_counter++;
}
- goto st1035;
-tr3130:
+ goto st1077;
+tr3199:
{
s->buffer[s->buffer_length++] = 0;
@@ -80331,79 +82173,79 @@ tr3130:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1035; goto _out;}
+ {p++; cs = 1077; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1035;
-tr3086:
+ goto st1077;
+tr3155:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1035;
-tr3087:
+ goto st1077;
+tr3156:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1035;
-tr3088:
+ goto st1077;
+tr3157:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1035;
-tr3090:
+ goto st1077;
+tr3159:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1035;
-st1035:
+ goto st1077;
+st1077:
if ( ++p == pe )
- goto _test_eof1035;
-case 1035:
+ goto _test_eof1077;
+case 1077:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -80417,19 +82259,19 @@ case 1035:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1035;
- case 32: goto st1035;
- case 40: goto tr3093;
- case 41: goto tr3094;
- case 46: goto st1036;
- case 2058: goto tr3096;
- case 2107: goto tr3097;
+ case 9: goto st1077;
+ case 32: goto st1077;
+ case 40: goto tr3162;
+ case 41: goto tr3163;
+ case 46: goto st1078;
+ case 2058: goto tr3165;
+ case 2107: goto tr3166;
}
- goto tr3069;
-st1036:
+ goto tr3138;
+st1078:
if ( ++p == pe )
- goto _test_eof1036;
-case 1036:
+ goto _test_eof1078;
+case 1078:
_widec = (*p);
if ( (*p) < 32 ) {
if ( (*p) > 9 ) {
@@ -80487,66 +82329,66 @@ case 1036:
s->number64 == 0 ) _widec += 512;
}
switch( _widec ) {
- case 7177: goto st1037;
- case 7200: goto st1037;
- case 7208: goto tr3100;
- case 7209: goto tr3101;
- case 7433: goto st1040;
- case 7456: goto st1040;
- case 7464: goto tr3103;
- case 7465: goto tr3104;
- case 7689: goto st1042;
- case 7712: goto st1042;
- case 7720: goto tr3106;
- case 7721: goto tr3107;
- case 10506: goto tr3108;
- case 10555: goto tr3108;
- case 10762: goto tr3108;
- case 10811: goto tr3108;
- case 11274: goto tr3109;
- case 11323: goto tr3110;
- case 11530: goto tr3108;
- case 11579: goto tr3108;
- case 11786: goto tr3111;
- case 11835: goto tr3112;
- case 12298: goto tr3113;
- case 12347: goto tr3114;
- case 12554: goto tr3108;
- case 12603: goto tr3108;
- case 12810: goto tr3115;
- case 12859: goto tr3116;
- case 13322: goto tr3117;
- case 13371: goto tr3118;
- case 13578: goto tr3108;
- case 13627: goto tr3108;
- case 13834: goto tr3119;
- case 13883: goto tr3120;
- }
- goto tr3098;
-tr3100:
+ case 7177: goto st1079;
+ case 7200: goto st1079;
+ case 7208: goto tr3169;
+ case 7209: goto tr3170;
+ case 7433: goto st1082;
+ case 7456: goto st1082;
+ case 7464: goto tr3172;
+ case 7465: goto tr3173;
+ case 7689: goto st1084;
+ case 7712: goto st1084;
+ case 7720: goto tr3175;
+ case 7721: goto tr3176;
+ case 10506: goto tr3177;
+ case 10555: goto tr3177;
+ case 10762: goto tr3177;
+ case 10811: goto tr3177;
+ case 11274: goto tr3178;
+ case 11323: goto tr3179;
+ case 11530: goto tr3177;
+ case 11579: goto tr3177;
+ case 11786: goto tr3180;
+ case 11835: goto tr3181;
+ case 12298: goto tr3182;
+ case 12347: goto tr3183;
+ case 12554: goto tr3177;
+ case 12603: goto tr3177;
+ case 12810: goto tr3184;
+ case 12859: goto tr3185;
+ case 13322: goto tr3186;
+ case 13371: goto tr3187;
+ case 13578: goto tr3177;
+ case 13627: goto tr3177;
+ case 13834: goto tr3188;
+ case 13883: goto tr3189;
+ }
+ goto tr3167;
+tr3169:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1037;
-tr3101:
+ goto st1079;
+tr3170:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1037;
-tr3109:
+ goto st1079;
+tr3178:
{
s->line_counter++;
}
- goto st1037;
-tr3124:
+ goto st1079;
+tr3193:
{
s->buffer[s->buffer_length++] = 0;
@@ -80556,100 +82398,100 @@ tr3124:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1037; goto _out;}
+ {p++; cs = 1079; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1037;
-tr3154:
+ goto st1079;
+tr3223:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
}
- goto st1037;
-tr3199:
+ goto st1079;
+tr3268:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
}
- goto st1037;
-tr3243:
+ goto st1079;
+tr3312:
{
rdata_tail += s->dname_tmp_length;
}
- goto st1037;
-tr3244:
+ goto st1079;
+tr3313:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1037;
-tr3245:
+ goto st1079;
+tr3314:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1037;
-tr3253:
+ goto st1079;
+tr3322:
{
rdata_tail += s->dname_tmp_length;
}
{
s->line_counter++;
}
- goto st1037;
-tr3155:
+ goto st1079;
+tr3224:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -80657,24 +82499,24 @@ tr3155:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1037;
-tr3156:
+ goto st1079;
+tr3225:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -80682,24 +82524,24 @@ tr3156:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1037;
-tr3164:
+ goto st1079;
+tr3233:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -80707,20 +82549,20 @@ tr3164:
{
s->line_counter++;
}
- goto st1037;
-tr3200:
+ goto st1079;
+tr3269:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -80728,24 +82570,24 @@ tr3200:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1037;
-tr3201:
+ goto st1079;
+tr3270:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -80753,24 +82595,24 @@ tr3201:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1037;
-tr3209:
+ goto st1079;
+tr3278:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -80778,11 +82620,11 @@ tr3209:
{
s->line_counter++;
}
- goto st1037;
-st1037:
+ goto st1079;
+st1079:
if ( ++p == pe )
- goto _test_eof1037;
-case 1037:
+ goto _test_eof1079;
+case 1079:
_widec = (*p);
if ( (*p) < 43 ) {
if ( (*p) < 32 ) {
@@ -80854,30 +82696,30 @@ case 1037:
s->number64 != 0 ) _widec += 256;
}
switch( _widec ) {
- case 4105: goto st1037;
- case 4128: goto st1037;
- case 4136: goto tr3100;
- case 4137: goto tr3101;
- case 4139: goto tr3122;
- case 5130: goto tr3109;
- case 5179: goto tr3110;
+ case 4105: goto st1079;
+ case 4128: goto st1079;
+ case 4136: goto tr3169;
+ case 4137: goto tr3170;
+ case 4139: goto tr3191;
+ case 5130: goto tr3178;
+ case 5179: goto tr3179;
}
if ( _widec < 4161 ) {
if ( 4143 <= _widec && _widec <= 4153 )
- goto tr3122;
+ goto tr3191;
} else if ( _widec > 4186 ) {
if ( 4193 <= _widec && _widec <= 4218 )
- goto tr3122;
+ goto tr3191;
} else
- goto tr3122;
- goto tr3121;
-tr3122:
- { p--; {stack[top++] = 1038;goto st369;} }
- goto st1038;
-st1038:
+ goto tr3191;
+ goto tr3190;
+tr3191:
+ { p--; {stack[top++] = 1080;goto st378;} }
+ goto st1080;
+st1080:
if ( ++p == pe )
- goto _test_eof1038;
-case 1038:
+ goto _test_eof1080;
+case 1080:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -80891,28 +82733,28 @@ case 1038:
!s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 2570: goto tr3108;
- case 2619: goto tr3108;
+ case 2570: goto tr3177;
+ case 2619: goto tr3177;
}
- goto tr3121;
-tr3108:
+ goto tr3190;
+tr3177:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1466;
-tr3163:
+ goto st1514;
+tr3232:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -80920,28 +82762,28 @@ tr3163:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1466;
-tr3252:
+ goto st1514;
+tr3321:
{
rdata_tail += s->dname_tmp_length;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1466;
-tr3208:
+ goto st1514;
+tr3277:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -80949,45 +82791,45 @@ tr3208:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1466;
-st1466:
+ goto st1514;
+st1514:
if ( ++p == pe )
- goto _test_eof1466;
-case 1466:
+ goto _test_eof1514;
+case 1514:
goto st0;
-tr3110:
+tr3179:
{
s->buffer_length = 0;
}
- goto st1039;
-tr3123:
+ goto st1081;
+tr3192:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1039;
-tr3254:
+ goto st1081;
+tr3323:
{
rdata_tail += s->dname_tmp_length;
}
{
s->buffer_length = 0;
}
- goto st1039;
-tr3165:
+ goto st1081;
+tr3234:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -80995,20 +82837,20 @@ tr3165:
{
s->buffer_length = 0;
}
- goto st1039;
-tr3210:
+ goto st1081;
+tr3279:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -81016,11 +82858,11 @@ tr3210:
{
s->buffer_length = 0;
}
- goto st1039;
-st1039:
+ goto st1081;
+st1081:
if ( ++p == pe )
- goto _test_eof1039;
-case 1039:
+ goto _test_eof1081;
+case 1081:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -81046,34 +82888,34 @@ case 1039:
s->number64 != 0 ) _widec += 512;
}
if ( _widec == 5130 )
- goto tr3124;
+ goto tr3193;
if ( 4992 <= _widec && _widec <= 5247 )
- goto tr3123;
- goto tr3121;
-tr3103:
+ goto tr3192;
+ goto tr3190;
+tr3172:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1040;
-tr3104:
+ goto st1082;
+tr3173:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1040;
-tr3113:
+ goto st1082;
+tr3182:
{
s->line_counter++;
}
- goto st1040;
-tr3126:
+ goto st1082;
+tr3195:
{
s->buffer[s->buffer_length++] = 0;
@@ -81083,100 +82925,100 @@ tr3126:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1040; goto _out;}
+ {p++; cs = 1082; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1040;
-tr3157:
+ goto st1082;
+tr3226:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
}
- goto st1040;
-tr3202:
+ goto st1082;
+tr3271:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
}
- goto st1040;
-tr3246:
+ goto st1082;
+tr3315:
{
rdata_tail += s->dname_tmp_length;
}
- goto st1040;
-tr3247:
+ goto st1082;
+tr3316:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1040;
-tr3248:
+ goto st1082;
+tr3317:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1040;
-tr3257:
+ goto st1082;
+tr3326:
{
rdata_tail += s->dname_tmp_length;
}
{
s->line_counter++;
}
- goto st1040;
-tr3158:
+ goto st1082;
+tr3227:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -81184,24 +83026,24 @@ tr3158:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1040;
-tr3159:
+ goto st1082;
+tr3228:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -81209,24 +83051,24 @@ tr3159:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1040;
-tr3168:
+ goto st1082;
+tr3237:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -81234,20 +83076,20 @@ tr3168:
{
s->line_counter++;
}
- goto st1040;
-tr3203:
+ goto st1082;
+tr3272:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -81255,24 +83097,24 @@ tr3203:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1040;
-tr3204:
+ goto st1082;
+tr3273:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -81280,24 +83122,24 @@ tr3204:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1040;
-tr3213:
+ goto st1082;
+tr3282:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -81305,11 +83147,11 @@ tr3213:
{
s->line_counter++;
}
- goto st1040;
-st1040:
+ goto st1082;
+st1082:
if ( ++p == pe )
- goto _test_eof1040;
-case 1040:
+ goto _test_eof1082;
+case 1082:
_widec = (*p);
if ( (*p) < 32 ) {
if ( (*p) > 9 ) {
@@ -81355,55 +83197,55 @@ case 1040:
s->number64 == 0 ) _widec += 256;
}
switch( _widec ) {
- case 5641: goto st1040;
- case 5664: goto st1040;
- case 5672: goto tr3103;
- case 5673: goto tr3104;
- case 14602: goto tr3108;
- case 14651: goto tr3108;
- case 14858: goto tr3108;
- case 14907: goto tr3108;
- case 15370: goto tr3113;
- case 15419: goto tr3114;
- case 15626: goto tr3108;
- case 15675: goto tr3108;
- case 15882: goto tr3115;
- case 15931: goto tr3116;
- }
- goto tr3121;
-tr3114:
+ case 5641: goto st1082;
+ case 5664: goto st1082;
+ case 5672: goto tr3172;
+ case 5673: goto tr3173;
+ case 14602: goto tr3177;
+ case 14651: goto tr3177;
+ case 14858: goto tr3177;
+ case 14907: goto tr3177;
+ case 15370: goto tr3182;
+ case 15419: goto tr3183;
+ case 15626: goto tr3177;
+ case 15675: goto tr3177;
+ case 15882: goto tr3184;
+ case 15931: goto tr3185;
+ }
+ goto tr3190;
+tr3183:
{
s->buffer_length = 0;
}
- goto st1041;
-tr3125:
+ goto st1083;
+tr3194:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1041;
-tr3258:
+ goto st1083;
+tr3327:
{
rdata_tail += s->dname_tmp_length;
}
{
s->buffer_length = 0;
}
- goto st1041;
-tr3169:
+ goto st1083;
+tr3238:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -81411,20 +83253,20 @@ tr3169:
{
s->buffer_length = 0;
}
- goto st1041;
-tr3214:
+ goto st1083;
+tr3283:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -81432,11 +83274,11 @@ tr3214:
{
s->buffer_length = 0;
}
- goto st1041;
-st1041:
+ goto st1083;
+st1083:
if ( ++p == pe )
- goto _test_eof1041;
-case 1041:
+ goto _test_eof1083;
+case 1083:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -81462,31 +83304,31 @@ case 1041:
s->number64 == 0 ) _widec += 512;
}
if ( _widec == 6666 )
- goto tr3126;
+ goto tr3195;
if ( 6528 <= _widec && _widec <= 6783 )
- goto tr3125;
- goto tr3121;
-tr3115:
+ goto tr3194;
+ goto tr3190;
+tr3184:
{
s->line_counter++;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1467;
-tr3170:
+ goto st1515;
+tr3239:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -81497,20 +83339,20 @@ tr3170:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1467;
-tr3215:
+ goto st1515;
+tr3284:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -81521,8 +83363,8 @@ tr3215:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1467;
-tr3259:
+ goto st1515;
+tr3328:
{
rdata_tail += s->dname_tmp_length;
}
@@ -81532,11 +83374,11 @@ tr3259:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1467;
-st1467:
+ goto st1515;
+st1515:
if ( ++p == pe )
- goto _test_eof1467;
-case 1467:
+ goto _test_eof1515;
+case 1515:
_widec = (*p);
if ( (*p) < 32 ) {
if ( (*p) > 9 ) {
@@ -81582,43 +83424,43 @@ case 1467:
s->number64 == 0 ) _widec += 256;
}
switch( _widec ) {
- case 5641: goto st1040;
- case 5664: goto st1040;
- case 5672: goto tr3103;
- case 5673: goto tr3104;
- case 14602: goto tr3108;
- case 14651: goto tr3108;
- case 14858: goto tr3108;
- case 14907: goto tr3108;
- case 15370: goto tr3113;
- case 15419: goto tr3114;
- case 15626: goto tr3108;
- case 15675: goto tr3108;
- case 15882: goto tr3115;
- case 15931: goto tr3116;
- }
- goto tr3121;
-tr3116:
+ case 5641: goto st1082;
+ case 5664: goto st1082;
+ case 5672: goto tr3172;
+ case 5673: goto tr3173;
+ case 14602: goto tr3177;
+ case 14651: goto tr3177;
+ case 14858: goto tr3177;
+ case 14907: goto tr3177;
+ case 15370: goto tr3182;
+ case 15419: goto tr3183;
+ case 15626: goto tr3177;
+ case 15675: goto tr3177;
+ case 15882: goto tr3184;
+ case 15931: goto tr3185;
+ }
+ goto tr3190;
+tr3185:
{
s->buffer_length = 0;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1468;
-tr3171:
+ goto st1516;
+tr3240:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -81629,20 +83471,20 @@ tr3171:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1468;
-tr3216:
+ goto st1516;
+tr3285:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -81653,8 +83495,8 @@ tr3216:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1468;
-tr3260:
+ goto st1516;
+tr3329:
{
rdata_tail += s->dname_tmp_length;
}
@@ -81664,11 +83506,11 @@ tr3260:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1468;
-st1468:
+ goto st1516;
+st1516:
if ( ++p == pe )
- goto _test_eof1468;
-case 1468:
+ goto _test_eof1516;
+case 1516:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -81694,34 +83536,34 @@ case 1468:
s->number64 == 0 ) _widec += 512;
}
if ( _widec == 6666 )
- goto tr3126;
+ goto tr3195;
if ( 6528 <= _widec && _widec <= 6783 )
- goto tr3125;
- goto tr3121;
-tr3106:
+ goto tr3194;
+ goto tr3190;
+tr3175:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1042;
-tr3107:
+ goto st1084;
+tr3176:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1042;
-tr3117:
+ goto st1084;
+tr3186:
{
s->line_counter++;
}
- goto st1042;
-tr3128:
+ goto st1084;
+tr3197:
{
s->buffer[s->buffer_length++] = 0;
@@ -81731,100 +83573,100 @@ tr3128:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1042; goto _out;}
+ {p++; cs = 1084; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1042;
-tr3160:
+ goto st1084;
+tr3229:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
}
- goto st1042;
-tr3205:
+ goto st1084;
+tr3274:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
}
- goto st1042;
-tr3249:
+ goto st1084;
+tr3318:
{
rdata_tail += s->dname_tmp_length;
}
- goto st1042;
-tr3250:
+ goto st1084;
+tr3319:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1042;
-tr3251:
+ goto st1084;
+tr3320:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1042;
-tr3261:
+ goto st1084;
+tr3330:
{
rdata_tail += s->dname_tmp_length;
}
{
s->line_counter++;
}
- goto st1042;
-tr3161:
+ goto st1084;
+tr3230:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -81832,24 +83674,24 @@ tr3161:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1042;
-tr3162:
+ goto st1084;
+tr3231:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -81857,24 +83699,24 @@ tr3162:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1042;
-tr3172:
+ goto st1084;
+tr3241:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -81882,20 +83724,20 @@ tr3172:
{
s->line_counter++;
}
- goto st1042;
-tr3206:
+ goto st1084;
+tr3275:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -81903,24 +83745,24 @@ tr3206:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1042;
-tr3207:
+ goto st1084;
+tr3276:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -81928,24 +83770,24 @@ tr3207:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1042;
-tr3217:
+ goto st1084;
+tr3286:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -81953,11 +83795,11 @@ tr3217:
{
s->line_counter++;
}
- goto st1042;
-st1042:
+ goto st1084;
+st1084:
if ( ++p == pe )
- goto _test_eof1042;
-case 1042:
+ goto _test_eof1084;
+case 1084:
_widec = (*p);
if ( (*p) < 43 ) {
if ( (*p) < 32 ) {
@@ -82045,72 +83887,72 @@ case 1042:
s->number64 != 0 ) _widec += 256;
}
switch( _widec ) {
- case 4139: goto tr3122;
- case 7177: goto st1037;
- case 7200: goto st1037;
- case 7208: goto tr3100;
- case 7209: goto tr3101;
- case 7433: goto st1040;
- case 7456: goto st1040;
- case 7464: goto tr3103;
- case 7465: goto tr3104;
- case 7689: goto st1042;
- case 7712: goto st1042;
- case 7720: goto tr3106;
- case 7721: goto tr3107;
- case 10506: goto tr3108;
- case 10555: goto tr3108;
- case 10762: goto tr3108;
- case 10811: goto tr3108;
- case 11274: goto tr3109;
- case 11323: goto tr3110;
- case 11530: goto tr3108;
- case 11579: goto tr3108;
- case 11786: goto tr3111;
- case 11835: goto tr3112;
- case 12298: goto tr3113;
- case 12347: goto tr3114;
- case 12554: goto tr3108;
- case 12603: goto tr3108;
- case 12810: goto tr3115;
- case 12859: goto tr3116;
- case 13322: goto tr3117;
- case 13371: goto tr3118;
- case 13578: goto tr3108;
- case 13627: goto tr3108;
- case 13834: goto tr3119;
- case 13883: goto tr3120;
+ case 4139: goto tr3191;
+ case 7177: goto st1079;
+ case 7200: goto st1079;
+ case 7208: goto tr3169;
+ case 7209: goto tr3170;
+ case 7433: goto st1082;
+ case 7456: goto st1082;
+ case 7464: goto tr3172;
+ case 7465: goto tr3173;
+ case 7689: goto st1084;
+ case 7712: goto st1084;
+ case 7720: goto tr3175;
+ case 7721: goto tr3176;
+ case 10506: goto tr3177;
+ case 10555: goto tr3177;
+ case 10762: goto tr3177;
+ case 10811: goto tr3177;
+ case 11274: goto tr3178;
+ case 11323: goto tr3179;
+ case 11530: goto tr3177;
+ case 11579: goto tr3177;
+ case 11786: goto tr3180;
+ case 11835: goto tr3181;
+ case 12298: goto tr3182;
+ case 12347: goto tr3183;
+ case 12554: goto tr3177;
+ case 12603: goto tr3177;
+ case 12810: goto tr3184;
+ case 12859: goto tr3185;
+ case 13322: goto tr3186;
+ case 13371: goto tr3187;
+ case 13578: goto tr3177;
+ case 13627: goto tr3177;
+ case 13834: goto tr3188;
+ case 13883: goto tr3189;
}
if ( _widec < 4161 ) {
if ( 4143 <= _widec && _widec <= 4153 )
- goto tr3122;
+ goto tr3191;
} else if ( _widec > 4186 ) {
if ( 4193 <= _widec && _widec <= 4218 )
- goto tr3122;
+ goto tr3191;
} else
- goto tr3122;
- goto tr3121;
-tr3111:
+ goto tr3191;
+ goto tr3190;
+tr3180:
{
s->line_counter++;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1469;
-tr3166:
+ goto st1517;
+tr3235:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -82121,20 +83963,20 @@ tr3166:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1469;
-tr3211:
+ goto st1517;
+tr3280:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -82145,8 +83987,8 @@ tr3211:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1469;
-tr3255:
+ goto st1517;
+tr3324:
{
rdata_tail += s->dname_tmp_length;
}
@@ -82156,11 +83998,11 @@ tr3255:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1469;
-st1469:
+ goto st1517;
+st1517:
if ( ++p == pe )
- goto _test_eof1469;
-case 1469:
+ goto _test_eof1517;
+case 1517:
_widec = (*p);
if ( (*p) < 43 ) {
if ( (*p) < 32 ) {
@@ -82232,44 +84074,44 @@ case 1469:
s->number64 != 0 ) _widec += 256;
}
switch( _widec ) {
- case 4105: goto st1037;
- case 4128: goto st1037;
- case 4136: goto tr3100;
- case 4137: goto tr3101;
- case 4139: goto tr3122;
- case 5130: goto tr3109;
- case 5179: goto tr3110;
+ case 4105: goto st1079;
+ case 4128: goto st1079;
+ case 4136: goto tr3169;
+ case 4137: goto tr3170;
+ case 4139: goto tr3191;
+ case 5130: goto tr3178;
+ case 5179: goto tr3179;
}
if ( _widec < 4161 ) {
if ( 4143 <= _widec && _widec <= 4153 )
- goto tr3122;
+ goto tr3191;
} else if ( _widec > 4186 ) {
if ( 4193 <= _widec && _widec <= 4218 )
- goto tr3122;
+ goto tr3191;
} else
- goto tr3122;
- goto tr3121;
-tr3112:
+ goto tr3191;
+ goto tr3190;
+tr3181:
{
s->buffer_length = 0;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1470;
-tr3167:
+ goto st1518;
+tr3236:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -82280,20 +84122,20 @@ tr3167:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1470;
-tr3212:
+ goto st1518;
+tr3281:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -82304,8 +84146,8 @@ tr3212:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1470;
-tr3256:
+ goto st1518;
+tr3325:
{
rdata_tail += s->dname_tmp_length;
}
@@ -82315,11 +84157,11 @@ tr3256:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1470;
-st1470:
+ goto st1518;
+st1518:
if ( ++p == pe )
- goto _test_eof1470;
-case 1470:
+ goto _test_eof1518;
+case 1518:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -82345,43 +84187,43 @@ case 1470:
s->number64 != 0 ) _widec += 512;
}
if ( _widec == 5130 )
- goto tr3124;
+ goto tr3193;
if ( 4992 <= _widec && _widec <= 5247 )
- goto tr3123;
- goto tr3121;
-tr3118:
+ goto tr3192;
+ goto tr3190;
+tr3187:
{
s->buffer_length = 0;
}
- goto st1043;
-tr3127:
+ goto st1085;
+tr3196:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1043;
-tr3262:
+ goto st1085;
+tr3331:
{
rdata_tail += s->dname_tmp_length;
}
{
s->buffer_length = 0;
}
- goto st1043;
-tr3173:
+ goto st1085;
+tr3242:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -82389,20 +84231,20 @@ tr3173:
{
s->buffer_length = 0;
}
- goto st1043;
-tr3218:
+ goto st1085;
+tr3287:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -82410,11 +84252,11 @@ tr3218:
{
s->buffer_length = 0;
}
- goto st1043;
-st1043:
+ goto st1085;
+st1085:
if ( ++p == pe )
- goto _test_eof1043;
-case 1043:
+ goto _test_eof1085;
+case 1085:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -82446,40 +84288,40 @@ case 1043:
s->number64 == 0 ) _widec += 1024;
}
switch( _widec ) {
- case 8714: goto tr3124;
- case 9226: goto tr3126;
- case 9738: goto tr3128;
+ case 8714: goto tr3193;
+ case 9226: goto tr3195;
+ case 9738: goto tr3197;
}
if ( _widec < 9088 ) {
if ( 8576 <= _widec && _widec <= 8831 )
- goto tr3123;
+ goto tr3192;
} else if ( _widec > 9343 ) {
if ( 9600 <= _widec && _widec <= 9855 )
- goto tr3127;
+ goto tr3196;
} else
- goto tr3125;
- goto tr3121;
-tr3119:
+ goto tr3194;
+ goto tr3190;
+tr3188:
{
s->line_counter++;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1471;
-tr3174:
+ goto st1519;
+tr3243:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -82490,20 +84332,20 @@ tr3174:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1471;
-tr3219:
+ goto st1519;
+tr3288:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -82514,8 +84356,8 @@ tr3219:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1471;
-tr3263:
+ goto st1519;
+tr3332:
{
rdata_tail += s->dname_tmp_length;
}
@@ -82525,11 +84367,11 @@ tr3263:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1471;
-st1471:
+ goto st1519;
+st1519:
if ( ++p == pe )
- goto _test_eof1471;
-case 1471:
+ goto _test_eof1519;
+case 1519:
_widec = (*p);
if ( (*p) < 43 ) {
if ( (*p) < 32 ) {
@@ -82617,72 +84459,72 @@ case 1471:
s->number64 != 0 ) _widec += 256;
}
switch( _widec ) {
- case 4139: goto tr3122;
- case 7177: goto st1037;
- case 7200: goto st1037;
- case 7208: goto tr3100;
- case 7209: goto tr3101;
- case 7433: goto st1040;
- case 7456: goto st1040;
- case 7464: goto tr3103;
- case 7465: goto tr3104;
- case 7689: goto st1042;
- case 7712: goto st1042;
- case 7720: goto tr3106;
- case 7721: goto tr3107;
- case 10506: goto tr3108;
- case 10555: goto tr3108;
- case 10762: goto tr3108;
- case 10811: goto tr3108;
- case 11274: goto tr3109;
- case 11323: goto tr3110;
- case 11530: goto tr3108;
- case 11579: goto tr3108;
- case 11786: goto tr3111;
- case 11835: goto tr3112;
- case 12298: goto tr3113;
- case 12347: goto tr3114;
- case 12554: goto tr3108;
- case 12603: goto tr3108;
- case 12810: goto tr3115;
- case 12859: goto tr3116;
- case 13322: goto tr3117;
- case 13371: goto tr3118;
- case 13578: goto tr3108;
- case 13627: goto tr3108;
- case 13834: goto tr3119;
- case 13883: goto tr3120;
+ case 4139: goto tr3191;
+ case 7177: goto st1079;
+ case 7200: goto st1079;
+ case 7208: goto tr3169;
+ case 7209: goto tr3170;
+ case 7433: goto st1082;
+ case 7456: goto st1082;
+ case 7464: goto tr3172;
+ case 7465: goto tr3173;
+ case 7689: goto st1084;
+ case 7712: goto st1084;
+ case 7720: goto tr3175;
+ case 7721: goto tr3176;
+ case 10506: goto tr3177;
+ case 10555: goto tr3177;
+ case 10762: goto tr3177;
+ case 10811: goto tr3177;
+ case 11274: goto tr3178;
+ case 11323: goto tr3179;
+ case 11530: goto tr3177;
+ case 11579: goto tr3177;
+ case 11786: goto tr3180;
+ case 11835: goto tr3181;
+ case 12298: goto tr3182;
+ case 12347: goto tr3183;
+ case 12554: goto tr3177;
+ case 12603: goto tr3177;
+ case 12810: goto tr3184;
+ case 12859: goto tr3185;
+ case 13322: goto tr3186;
+ case 13371: goto tr3187;
+ case 13578: goto tr3177;
+ case 13627: goto tr3177;
+ case 13834: goto tr3188;
+ case 13883: goto tr3189;
}
if ( _widec < 4161 ) {
if ( 4143 <= _widec && _widec <= 4153 )
- goto tr3122;
+ goto tr3191;
} else if ( _widec > 4186 ) {
if ( 4193 <= _widec && _widec <= 4218 )
- goto tr3122;
+ goto tr3191;
} else
- goto tr3122;
- goto tr3121;
-tr3120:
+ goto tr3191;
+ goto tr3190;
+tr3189:
{
s->buffer_length = 0;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1472;
-tr3175:
+ goto st1520;
+tr3244:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -82693,20 +84535,20 @@ tr3175:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1472;
-tr3220:
+ goto st1520;
+tr3289:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -82717,8 +84559,8 @@ tr3220:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1472;
-tr3264:
+ goto st1520;
+tr3333:
{
rdata_tail += s->dname_tmp_length;
}
@@ -82728,11 +84570,11 @@ tr3264:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1472;
-st1472:
+ goto st1520;
+st1520:
if ( ++p == pe )
- goto _test_eof1472;
-case 1472:
+ goto _test_eof1520;
+case 1520:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -82764,49 +84606,49 @@ case 1472:
s->number64 == 0 ) _widec += 1024;
}
switch( _widec ) {
- case 8714: goto tr3124;
- case 9226: goto tr3126;
- case 9738: goto tr3128;
+ case 8714: goto tr3193;
+ case 9226: goto tr3195;
+ case 9738: goto tr3197;
}
if ( _widec < 9088 ) {
if ( 8576 <= _widec && _widec <= 8831 )
- goto tr3123;
+ goto tr3192;
} else if ( _widec > 9343 ) {
if ( 9600 <= _widec && _widec <= 9855 )
- goto tr3127;
+ goto tr3196;
} else
- goto tr3125;
- goto tr3121;
-tr3097:
+ goto tr3194;
+ goto tr3190;
+tr3166:
{
s->buffer_length = 0;
}
- goto st1044;
-tr3129:
+ goto st1086;
+tr3198:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1044;
-tr3091:
+ goto st1086;
+tr3160:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1044;
-st1044:
+ goto st1086;
+st1086:
if ( ++p == pe )
- goto _test_eof1044;
-case 1044:
+ goto _test_eof1086;
+case 1086:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -82826,26 +84668,26 @@ case 1044:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3130;
+ goto tr3199;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3129;
- goto tr3069;
-tr3083:
+ goto tr3198;
+ goto tr3138;
+tr3152:
{
s->buffer_length = 0;
}
- goto st1045;
-tr3131:
+ goto st1087;
+tr3200:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1045;
-st1045:
+ goto st1087;
+st1087:
if ( ++p == pe )
- goto _test_eof1045;
-case 1045:
+ goto _test_eof1087;
+case 1087:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -82865,19 +84707,19 @@ case 1045:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3132;
+ goto tr3201;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3131;
- goto tr3069;
-tr3074:
+ goto tr3200;
+ goto tr3138;
+tr3143:
{
*(rdata_tail++) = 1;
}
- goto st1046;
-st1046:
+ goto st1088;
+st1088:
if ( ++p == pe )
- goto _test_eof1046;
-case 1046:
+ goto _test_eof1088;
+case 1088:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -82891,38 +84733,38 @@ case 1046:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1047;
- case 32: goto st1047;
- case 40: goto tr3134;
- case 41: goto tr3135;
- case 2058: goto tr3136;
- case 2107: goto tr3137;
+ case 9: goto st1089;
+ case 32: goto st1089;
+ case 40: goto tr3203;
+ case 41: goto tr3204;
+ case 2058: goto tr3205;
+ case 2107: goto tr3206;
}
- goto tr3069;
-tr3134:
+ goto tr3138;
+tr3203:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1047;
-tr3135:
+ goto st1089;
+tr3204:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1047;
-tr3136:
+ goto st1089;
+tr3205:
{
s->line_counter++;
}
- goto st1047;
-tr3179:
+ goto st1089;
+tr3248:
{
s->buffer[s->buffer_length++] = 0;
@@ -82932,18 +84774,18 @@ tr3179:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1047; goto _out;}
+ {p++; cs = 1089; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1047;
-st1047:
+ goto st1089;
+st1089:
if ( ++p == pe )
- goto _test_eof1047;
-case 1047:
+ goto _test_eof1089;
+case 1089:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -82957,17 +84799,17 @@ case 1047:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1047;
- case 32: goto st1047;
- case 40: goto tr3134;
- case 41: goto tr3135;
- case 2058: goto tr3136;
- case 2107: goto tr3137;
+ case 9: goto st1089;
+ case 32: goto st1089;
+ case 40: goto tr3203;
+ case 41: goto tr3204;
+ case 2058: goto tr3205;
+ case 2107: goto tr3206;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3138;
- goto tr3084;
-tr3138:
+ goto tr3207;
+ goto tr3153;
+tr3207:
{
s->number64 = 0;
}
@@ -82982,11 +84824,11 @@ tr3138:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1048;
-tr3142:
+ goto st1090;
+tr3211:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -82998,14 +84840,14 @@ tr3142:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1048;
-st1048:
+ goto st1090;
+st1090:
if ( ++p == pe )
- goto _test_eof1048;
-case 1048:
+ goto _test_eof1090;
+case 1090:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -83019,40 +84861,40 @@ case 1048:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3139;
- case 32: goto tr3139;
- case 40: goto tr3140;
- case 41: goto tr3141;
- case 2058: goto tr3143;
- case 2107: goto tr3144;
+ case 9: goto tr3208;
+ case 32: goto tr3208;
+ case 40: goto tr3209;
+ case 41: goto tr3210;
+ case 2058: goto tr3212;
+ case 2107: goto tr3213;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3142;
- goto tr3084;
-tr3147:
+ goto tr3211;
+ goto tr3153;
+tr3216:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1049;
-tr3148:
+ goto st1091;
+tr3217:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1049;
-tr3150:
+ goto st1091;
+tr3219:
{
s->line_counter++;
}
- goto st1049;
-tr3177:
+ goto st1091;
+tr3246:
{
s->buffer[s->buffer_length++] = 0;
@@ -83062,79 +84904,79 @@ tr3177:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1049; goto _out;}
+ {p++; cs = 1091; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1049;
-tr3139:
+ goto st1091;
+tr3208:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1049;
-tr3140:
+ goto st1091;
+tr3209:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1049;
-tr3141:
+ goto st1091;
+tr3210:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1049;
-tr3143:
+ goto st1091;
+tr3212:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1049;
-st1049:
+ goto st1091;
+st1091:
if ( ++p == pe )
- goto _test_eof1049;
-case 1049:
+ goto _test_eof1091;
+case 1091:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -83148,28 +84990,28 @@ case 1049:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1049;
- case 32: goto st1049;
- case 40: goto tr3147;
- case 41: goto tr3148;
- case 46: goto tr3149;
- case 2058: goto tr3150;
- case 2107: goto tr3151;
+ case 9: goto st1091;
+ case 32: goto st1091;
+ case 40: goto tr3216;
+ case 41: goto tr3217;
+ case 46: goto tr3218;
+ case 2058: goto tr3219;
+ case 2107: goto tr3220;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3149;
- goto tr3145;
-tr3153:
+ goto tr3218;
+ goto tr3214;
+tr3222:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1050;
-tr3149:
+ goto st1092;
+tr3218:
{
s->buffer_length = 0;
}
@@ -83178,14 +85020,14 @@ tr3149:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1050;
-st1050:
+ goto st1092;
+st1092:
if ( ++p == pe )
- goto _test_eof1050;
-case 1050:
+ goto _test_eof1092;
+case 1092:
_widec = (*p);
if ( (*p) < 32 ) {
if ( (*p) > 9 ) {
@@ -83243,75 +85085,75 @@ case 1050:
s->number64 == 0 ) _widec += 512;
}
switch( _widec ) {
- case 46: goto tr3153;
- case 7177: goto tr3154;
- case 7200: goto tr3154;
- case 7208: goto tr3155;
- case 7209: goto tr3156;
- case 7433: goto tr3157;
- case 7456: goto tr3157;
- case 7464: goto tr3158;
- case 7465: goto tr3159;
- case 7689: goto tr3160;
- case 7712: goto tr3160;
- case 7720: goto tr3161;
- case 7721: goto tr3162;
- case 10506: goto tr3163;
- case 10555: goto tr3163;
- case 10762: goto tr3163;
- case 10811: goto tr3163;
- case 11274: goto tr3164;
- case 11323: goto tr3165;
- case 11530: goto tr3163;
- case 11579: goto tr3163;
- case 11786: goto tr3166;
- case 11835: goto tr3167;
- case 12298: goto tr3168;
- case 12347: goto tr3169;
- case 12554: goto tr3163;
- case 12603: goto tr3163;
- case 12810: goto tr3170;
- case 12859: goto tr3171;
- case 13322: goto tr3172;
- case 13371: goto tr3173;
- case 13578: goto tr3163;
- case 13627: goto tr3163;
- case 13834: goto tr3174;
- case 13883: goto tr3175;
+ case 46: goto tr3222;
+ case 7177: goto tr3223;
+ case 7200: goto tr3223;
+ case 7208: goto tr3224;
+ case 7209: goto tr3225;
+ case 7433: goto tr3226;
+ case 7456: goto tr3226;
+ case 7464: goto tr3227;
+ case 7465: goto tr3228;
+ case 7689: goto tr3229;
+ case 7712: goto tr3229;
+ case 7720: goto tr3230;
+ case 7721: goto tr3231;
+ case 10506: goto tr3232;
+ case 10555: goto tr3232;
+ case 10762: goto tr3232;
+ case 10811: goto tr3232;
+ case 11274: goto tr3233;
+ case 11323: goto tr3234;
+ case 11530: goto tr3232;
+ case 11579: goto tr3232;
+ case 11786: goto tr3235;
+ case 11835: goto tr3236;
+ case 12298: goto tr3237;
+ case 12347: goto tr3238;
+ case 12554: goto tr3232;
+ case 12603: goto tr3232;
+ case 12810: goto tr3239;
+ case 12859: goto tr3240;
+ case 13322: goto tr3241;
+ case 13371: goto tr3242;
+ case 13578: goto tr3232;
+ case 13627: goto tr3232;
+ case 13834: goto tr3243;
+ case 13883: goto tr3244;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3153;
- goto tr3152;
-tr3151:
+ goto tr3222;
+ goto tr3221;
+tr3220:
{
s->buffer_length = 0;
}
- goto st1051;
-tr3176:
+ goto st1093;
+tr3245:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1051;
-tr3144:
+ goto st1093;
+tr3213:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1051;
-st1051:
+ goto st1093;
+st1093:
if ( ++p == pe )
- goto _test_eof1051;
-case 1051:
+ goto _test_eof1093;
+case 1093:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -83331,26 +85173,26 @@ case 1051:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3177;
+ goto tr3246;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3176;
- goto tr3069;
-tr3137:
+ goto tr3245;
+ goto tr3138;
+tr3206:
{
s->buffer_length = 0;
}
- goto st1052;
-tr3178:
+ goto st1094;
+tr3247:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1052;
-st1052:
+ goto st1094;
+st1094:
if ( ++p == pe )
- goto _test_eof1052;
-case 1052:
+ goto _test_eof1094;
+case 1094:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -83370,19 +85212,19 @@ case 1052:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3179;
+ goto tr3248;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3178;
- goto tr3069;
-tr3075:
+ goto tr3247;
+ goto tr3138;
+tr3144:
{
*(rdata_tail++) = 2;
}
- goto st1053;
-st1053:
+ goto st1095;
+st1095:
if ( ++p == pe )
- goto _test_eof1053;
-case 1053:
+ goto _test_eof1095;
+case 1095:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -83396,38 +85238,38 @@ case 1053:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1054;
- case 32: goto st1054;
- case 40: goto tr3181;
- case 41: goto tr3182;
- case 2058: goto tr3183;
- case 2107: goto tr3184;
+ case 9: goto st1096;
+ case 32: goto st1096;
+ case 40: goto tr3250;
+ case 41: goto tr3251;
+ case 2058: goto tr3252;
+ case 2107: goto tr3253;
}
- goto tr3069;
-tr3181:
+ goto tr3138;
+tr3250:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1054;
-tr3182:
+ goto st1096;
+tr3251:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1054;
-tr3183:
+ goto st1096;
+tr3252:
{
s->line_counter++;
}
- goto st1054;
-tr3224:
+ goto st1096;
+tr3293:
{
s->buffer[s->buffer_length++] = 0;
@@ -83437,18 +85279,18 @@ tr3224:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1054; goto _out;}
+ {p++; cs = 1096; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1054;
-st1054:
+ goto st1096;
+st1096:
if ( ++p == pe )
- goto _test_eof1054;
-case 1054:
+ goto _test_eof1096;
+case 1096:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -83462,17 +85304,17 @@ case 1054:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1054;
- case 32: goto st1054;
- case 40: goto tr3181;
- case 41: goto tr3182;
- case 2058: goto tr3183;
- case 2107: goto tr3184;
+ case 9: goto st1096;
+ case 32: goto st1096;
+ case 40: goto tr3250;
+ case 41: goto tr3251;
+ case 2058: goto tr3252;
+ case 2107: goto tr3253;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3185;
- goto tr3084;
-tr3185:
+ goto tr3254;
+ goto tr3153;
+tr3254:
{
s->number64 = 0;
}
@@ -83487,11 +85329,11 @@ tr3185:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1055;
-tr3189:
+ goto st1097;
+tr3258:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -83503,14 +85345,14 @@ tr3189:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1055;
-st1055:
+ goto st1097;
+st1097:
if ( ++p == pe )
- goto _test_eof1055;
-case 1055:
+ goto _test_eof1097;
+case 1097:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -83524,40 +85366,40 @@ case 1055:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3186;
- case 32: goto tr3186;
- case 40: goto tr3187;
- case 41: goto tr3188;
- case 2058: goto tr3190;
- case 2107: goto tr3191;
+ case 9: goto tr3255;
+ case 32: goto tr3255;
+ case 40: goto tr3256;
+ case 41: goto tr3257;
+ case 2058: goto tr3259;
+ case 2107: goto tr3260;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3189;
- goto tr3084;
-tr3193:
+ goto tr3258;
+ goto tr3153;
+tr3262:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1056;
-tr3194:
+ goto st1098;
+tr3263:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1056;
-tr3196:
+ goto st1098;
+tr3265:
{
s->line_counter++;
}
- goto st1056;
-tr3222:
+ goto st1098;
+tr3291:
{
s->buffer[s->buffer_length++] = 0;
@@ -83567,79 +85409,79 @@ tr3222:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1056; goto _out;}
+ {p++; cs = 1098; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1056;
-tr3186:
+ goto st1098;
+tr3255:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1056;
-tr3187:
+ goto st1098;
+tr3256:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1056;
-tr3188:
+ goto st1098;
+tr3257:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1056;
-tr3190:
+ goto st1098;
+tr3259:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1056;
-st1056:
+ goto st1098;
+st1098:
if ( ++p == pe )
- goto _test_eof1056;
-case 1056:
+ goto _test_eof1098;
+case 1098:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -83653,34 +85495,34 @@ case 1056:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1056;
- case 32: goto st1056;
- case 40: goto tr3193;
- case 41: goto tr3194;
- case 46: goto tr3195;
- case 2058: goto tr3196;
- case 2107: goto tr3197;
+ case 9: goto st1098;
+ case 32: goto st1098;
+ case 40: goto tr3262;
+ case 41: goto tr3263;
+ case 46: goto tr3264;
+ case 2058: goto tr3265;
+ case 2107: goto tr3266;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 58 )
- goto tr3195;
+ goto tr3264;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3195;
+ goto tr3264;
} else
- goto tr3195;
- goto tr3145;
-tr3198:
+ goto tr3264;
+ goto tr3214;
+tr3267:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1057;
-tr3195:
+ goto st1099;
+tr3264:
{
s->buffer_length = 0;
}
@@ -83689,14 +85531,14 @@ tr3195:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1057;
-st1057:
+ goto st1099;
+st1099:
if ( ++p == pe )
- goto _test_eof1057;
-case 1057:
+ goto _test_eof1099;
+case 1099:
_widec = (*p);
if ( (*p) < 32 ) {
if ( (*p) > 9 ) {
@@ -83754,81 +85596,81 @@ case 1057:
s->number64 == 0 ) _widec += 512;
}
switch( _widec ) {
- case 46: goto tr3198;
- case 7177: goto tr3199;
- case 7200: goto tr3199;
- case 7208: goto tr3200;
- case 7209: goto tr3201;
- case 7433: goto tr3202;
- case 7456: goto tr3202;
- case 7464: goto tr3203;
- case 7465: goto tr3204;
- case 7689: goto tr3205;
- case 7712: goto tr3205;
- case 7720: goto tr3206;
- case 7721: goto tr3207;
- case 10506: goto tr3208;
- case 10555: goto tr3208;
- case 10762: goto tr3208;
- case 10811: goto tr3208;
- case 11274: goto tr3209;
- case 11323: goto tr3210;
- case 11530: goto tr3208;
- case 11579: goto tr3208;
- case 11786: goto tr3211;
- case 11835: goto tr3212;
- case 12298: goto tr3213;
- case 12347: goto tr3214;
- case 12554: goto tr3208;
- case 12603: goto tr3208;
- case 12810: goto tr3215;
- case 12859: goto tr3216;
- case 13322: goto tr3217;
- case 13371: goto tr3218;
- case 13578: goto tr3208;
- case 13627: goto tr3208;
- case 13834: goto tr3219;
- case 13883: goto tr3220;
+ case 46: goto tr3267;
+ case 7177: goto tr3268;
+ case 7200: goto tr3268;
+ case 7208: goto tr3269;
+ case 7209: goto tr3270;
+ case 7433: goto tr3271;
+ case 7456: goto tr3271;
+ case 7464: goto tr3272;
+ case 7465: goto tr3273;
+ case 7689: goto tr3274;
+ case 7712: goto tr3274;
+ case 7720: goto tr3275;
+ case 7721: goto tr3276;
+ case 10506: goto tr3277;
+ case 10555: goto tr3277;
+ case 10762: goto tr3277;
+ case 10811: goto tr3277;
+ case 11274: goto tr3278;
+ case 11323: goto tr3279;
+ case 11530: goto tr3277;
+ case 11579: goto tr3277;
+ case 11786: goto tr3280;
+ case 11835: goto tr3281;
+ case 12298: goto tr3282;
+ case 12347: goto tr3283;
+ case 12554: goto tr3277;
+ case 12603: goto tr3277;
+ case 12810: goto tr3284;
+ case 12859: goto tr3285;
+ case 13322: goto tr3286;
+ case 13371: goto tr3287;
+ case 13578: goto tr3277;
+ case 13627: goto tr3277;
+ case 13834: goto tr3288;
+ case 13883: goto tr3289;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 58 )
- goto tr3198;
+ goto tr3267;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3198;
+ goto tr3267;
} else
- goto tr3198;
- goto tr3152;
-tr3197:
+ goto tr3267;
+ goto tr3221;
+tr3266:
{
s->buffer_length = 0;
}
- goto st1058;
-tr3221:
+ goto st1100;
+tr3290:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1058;
-tr3191:
+ goto st1100;
+tr3260:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1058;
-st1058:
+ goto st1100;
+st1100:
if ( ++p == pe )
- goto _test_eof1058;
-case 1058:
+ goto _test_eof1100;
+case 1100:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -83848,26 +85690,26 @@ case 1058:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3222;
+ goto tr3291;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3221;
- goto tr3069;
-tr3184:
+ goto tr3290;
+ goto tr3138;
+tr3253:
{
s->buffer_length = 0;
}
- goto st1059;
-tr3223:
+ goto st1101;
+tr3292:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1059;
-st1059:
+ goto st1101;
+st1101:
if ( ++p == pe )
- goto _test_eof1059;
-case 1059:
+ goto _test_eof1101;
+case 1101:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -83887,19 +85729,19 @@ case 1059:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3224;
+ goto tr3293;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3223;
- goto tr3069;
-tr3076:
+ goto tr3292;
+ goto tr3138;
+tr3145:
{
*(rdata_tail++) = 3;
}
- goto st1060;
-st1060:
+ goto st1102;
+st1102:
if ( ++p == pe )
- goto _test_eof1060;
-case 1060:
+ goto _test_eof1102;
+case 1102:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -83913,38 +85755,38 @@ case 1060:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1061;
- case 32: goto st1061;
- case 40: goto tr3226;
- case 41: goto tr3227;
- case 2058: goto tr3228;
- case 2107: goto tr3229;
+ case 9: goto st1103;
+ case 32: goto st1103;
+ case 40: goto tr3295;
+ case 41: goto tr3296;
+ case 2058: goto tr3297;
+ case 2107: goto tr3298;
}
- goto tr3069;
-tr3226:
+ goto tr3138;
+tr3295:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1061;
-tr3227:
+ goto st1103;
+tr3296:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1061;
-tr3228:
+ goto st1103;
+tr3297:
{
s->line_counter++;
}
- goto st1061;
-tr3268:
+ goto st1103;
+tr3337:
{
s->buffer[s->buffer_length++] = 0;
@@ -83954,18 +85796,18 @@ tr3268:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1061; goto _out;}
+ {p++; cs = 1103; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1061;
-st1061:
+ goto st1103;
+st1103:
if ( ++p == pe )
- goto _test_eof1061;
-case 1061:
+ goto _test_eof1103;
+case 1103:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -83979,17 +85821,17 @@ case 1061:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1061;
- case 32: goto st1061;
- case 40: goto tr3226;
- case 41: goto tr3227;
- case 2058: goto tr3228;
- case 2107: goto tr3229;
+ case 9: goto st1103;
+ case 32: goto st1103;
+ case 40: goto tr3295;
+ case 41: goto tr3296;
+ case 2058: goto tr3297;
+ case 2107: goto tr3298;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3230;
- goto tr3084;
-tr3230:
+ goto tr3299;
+ goto tr3153;
+tr3299:
{
s->number64 = 0;
}
@@ -84004,11 +85846,11 @@ tr3230:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1062;
-tr3234:
+ goto st1104;
+tr3303:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -84020,14 +85862,14 @@ tr3234:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1062;
-st1062:
+ goto st1104;
+st1104:
if ( ++p == pe )
- goto _test_eof1062;
-case 1062:
+ goto _test_eof1104;
+case 1104:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -84041,40 +85883,40 @@ case 1062:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3231;
- case 32: goto tr3231;
- case 40: goto tr3232;
- case 41: goto tr3233;
- case 2058: goto tr3235;
- case 2107: goto tr3236;
+ case 9: goto tr3300;
+ case 32: goto tr3300;
+ case 40: goto tr3301;
+ case 41: goto tr3302;
+ case 2058: goto tr3304;
+ case 2107: goto tr3305;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3234;
- goto tr3084;
-tr3238:
+ goto tr3303;
+ goto tr3153;
+tr3307:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1063;
-tr3239:
+ goto st1105;
+tr3308:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1063;
-tr3241:
+ goto st1105;
+tr3310:
{
s->line_counter++;
}
- goto st1063;
-tr3266:
+ goto st1105;
+tr3335:
{
s->buffer[s->buffer_length++] = 0;
@@ -84084,79 +85926,79 @@ tr3266:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1063; goto _out;}
+ {p++; cs = 1105; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1063;
-tr3231:
+ goto st1105;
+tr3300:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1063;
-tr3232:
+ goto st1105;
+tr3301:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1063;
-tr3233:
+ goto st1105;
+tr3302:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1063;
-tr3235:
+ goto st1105;
+tr3304:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1063;
-st1063:
+ goto st1105;
+st1105:
if ( ++p == pe )
- goto _test_eof1063;
-case 1063:
+ goto _test_eof1105;
+case 1105:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -84170,35 +86012,35 @@ case 1063:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1063;
- case 32: goto st1063;
- case 40: goto tr3238;
- case 41: goto tr3239;
- case 42: goto tr3240;
- case 92: goto tr3240;
- case 95: goto tr3240;
- case 2058: goto tr3241;
- case 2107: goto tr3242;
+ case 9: goto st1105;
+ case 32: goto st1105;
+ case 40: goto tr3307;
+ case 41: goto tr3308;
+ case 42: goto tr3309;
+ case 92: goto tr3309;
+ case 95: goto tr3309;
+ case 2058: goto tr3310;
+ case 2107: goto tr3311;
}
if ( _widec < 64 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr3240;
+ goto tr3309;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr3240;
+ goto tr3309;
} else
- goto tr3240;
- goto tr3069;
-tr3240:
+ goto tr3309;
+ goto tr3138;
+tr3309:
{
s->dname = rdata_tail;
}
- { p--; {stack[top++] = 1064;goto st309;} }
- goto st1064;
-st1064:
+ { p--; {stack[top++] = 1106;goto st318;} }
+ goto st1106;
+st1106:
if ( ++p == pe )
- goto _test_eof1064;
-case 1064:
+ goto _test_eof1106;
+case 1106:
_widec = (*p);
if ( (*p) < 32 ) {
if ( (*p) > 9 ) {
@@ -84256,72 +86098,72 @@ case 1064:
s->number64 == 0 ) _widec += 512;
}
switch( _widec ) {
- case 7177: goto tr3243;
- case 7200: goto tr3243;
- case 7208: goto tr3244;
- case 7209: goto tr3245;
- case 7433: goto tr3246;
- case 7456: goto tr3246;
- case 7464: goto tr3247;
- case 7465: goto tr3248;
- case 7689: goto tr3249;
- case 7712: goto tr3249;
- case 7720: goto tr3250;
- case 7721: goto tr3251;
- case 10506: goto tr3252;
- case 10555: goto tr3252;
- case 10762: goto tr3252;
- case 10811: goto tr3252;
- case 11274: goto tr3253;
- case 11323: goto tr3254;
- case 11530: goto tr3252;
- case 11579: goto tr3252;
- case 11786: goto tr3255;
- case 11835: goto tr3256;
- case 12298: goto tr3257;
- case 12347: goto tr3258;
- case 12554: goto tr3252;
- case 12603: goto tr3252;
- case 12810: goto tr3259;
- case 12859: goto tr3260;
- case 13322: goto tr3261;
- case 13371: goto tr3262;
- case 13578: goto tr3252;
- case 13627: goto tr3252;
- case 13834: goto tr3263;
- case 13883: goto tr3264;
- }
- goto tr3098;
-tr3242:
+ case 7177: goto tr3312;
+ case 7200: goto tr3312;
+ case 7208: goto tr3313;
+ case 7209: goto tr3314;
+ case 7433: goto tr3315;
+ case 7456: goto tr3315;
+ case 7464: goto tr3316;
+ case 7465: goto tr3317;
+ case 7689: goto tr3318;
+ case 7712: goto tr3318;
+ case 7720: goto tr3319;
+ case 7721: goto tr3320;
+ case 10506: goto tr3321;
+ case 10555: goto tr3321;
+ case 10762: goto tr3321;
+ case 10811: goto tr3321;
+ case 11274: goto tr3322;
+ case 11323: goto tr3323;
+ case 11530: goto tr3321;
+ case 11579: goto tr3321;
+ case 11786: goto tr3324;
+ case 11835: goto tr3325;
+ case 12298: goto tr3326;
+ case 12347: goto tr3327;
+ case 12554: goto tr3321;
+ case 12603: goto tr3321;
+ case 12810: goto tr3328;
+ case 12859: goto tr3329;
+ case 13322: goto tr3330;
+ case 13371: goto tr3331;
+ case 13578: goto tr3321;
+ case 13627: goto tr3321;
+ case 13834: goto tr3332;
+ case 13883: goto tr3333;
+ }
+ goto tr3167;
+tr3311:
{
s->buffer_length = 0;
}
- goto st1065;
-tr3265:
+ goto st1107;
+tr3334:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1065;
-tr3236:
+ goto st1107;
+tr3305:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1065;
-st1065:
+ goto st1107;
+st1107:
if ( ++p == pe )
- goto _test_eof1065;
-case 1065:
+ goto _test_eof1107;
+case 1107:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -84341,26 +86183,26 @@ case 1065:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3266;
+ goto tr3335;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3265;
- goto tr3069;
-tr3229:
+ goto tr3334;
+ goto tr3138;
+tr3298:
{
s->buffer_length = 0;
}
- goto st1066;
-tr3267:
+ goto st1108;
+tr3336:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1066;
-st1066:
+ goto st1108;
+st1108:
if ( ++p == pe )
- goto _test_eof1066;
-case 1066:
+ goto _test_eof1108;
+case 1108:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -84380,40 +86222,40 @@ case 1066:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3268;
+ goto tr3337;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3267;
- goto tr3069;
-tr3078:
+ goto tr3336;
+ goto tr3138;
+tr3147:
{
s->buffer_length = 0;
}
- goto st1067;
-tr3269:
+ goto st1109;
+tr3338:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1067;
-tr3068:
+ goto st1109;
+tr3137:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1067;
-st1067:
+ goto st1109;
+st1109:
if ( ++p == pe )
- goto _test_eof1067;
-case 1067:
+ goto _test_eof1109;
+case 1109:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -84433,55 +86275,57 @@ case 1067:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3270;
+ goto tr3339;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3269;
- goto tr75;
-st1068:
+ goto tr3338;
+ goto tr77;
+st1110:
if ( ++p == pe )
- goto _test_eof1068;
-case 1068:
+ goto _test_eof1110;
+case 1110:
switch( (*p) ) {
- case 65: goto st1069;
- case 67: goto st1103;
- case 68: goto st1124;
- case 69: goto st1138;
- case 72: goto st1145;
- case 73: goto st1154;
- case 75: goto st1162;
- case 76: goto st1166;
- case 77: goto st1174;
- case 78: goto st1180;
- case 79: goto st1196;
- case 80: goto st1206;
- case 82: goto st1209;
- case 83: goto st1216;
- case 84: goto st1235;
- case 85: goto st1245;
- case 90: goto st1248;
- case 97: goto st1069;
- case 99: goto st1103;
- case 100: goto st1124;
- case 101: goto st1138;
- case 104: goto st1145;
- case 105: goto st1154;
- case 107: goto st1162;
- case 108: goto st1166;
- case 109: goto st1174;
- case 110: goto st1180;
- case 111: goto st1196;
- case 112: goto st1206;
- case 114: goto st1209;
- case 115: goto st1216;
- case 116: goto st1235;
- case 117: goto st1245;
- case 122: goto st1248;
- }
- goto tr3271;
-st1069:
+ case 65: goto st1111;
+ case 67: goto st1145;
+ case 68: goto st1166;
+ case 69: goto st1180;
+ case 72: goto st1187;
+ case 73: goto st1196;
+ case 75: goto st1204;
+ case 76: goto st1208;
+ case 77: goto st1216;
+ case 78: goto st1222;
+ case 79: goto st1238;
+ case 80: goto st1248;
+ case 82: goto st1251;
+ case 83: goto st1258;
+ case 84: goto st1277;
+ case 85: goto st1287;
+ case 87: goto st1290;
+ case 90: goto st1296;
+ case 97: goto st1111;
+ case 99: goto st1145;
+ case 100: goto st1166;
+ case 101: goto st1180;
+ case 104: goto st1187;
+ case 105: goto st1196;
+ case 107: goto st1204;
+ case 108: goto st1208;
+ case 109: goto st1216;
+ case 110: goto st1222;
+ case 111: goto st1238;
+ case 112: goto st1248;
+ case 114: goto st1251;
+ case 115: goto st1258;
+ case 116: goto st1277;
+ case 117: goto st1287;
+ case 119: goto st1290;
+ case 122: goto st1296;
+ }
+ goto tr3340;
+st1111:
if ( ++p == pe )
- goto _test_eof1069;
-case 1069:
+ goto _test_eof1111;
+case 1111:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -84495,44 +86339,44 @@ case 1069:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3289;
- case 32: goto tr3289;
- case 40: goto tr3290;
- case 41: goto tr3291;
- case 65: goto st1094;
- case 70: goto st1097;
- case 80: goto st1101;
- case 97: goto st1094;
- case 102: goto st1097;
- case 112: goto st1101;
- case 2058: goto tr3295;
- case 2107: goto tr3296;
+ case 9: goto tr3359;
+ case 32: goto tr3359;
+ case 40: goto tr3360;
+ case 41: goto tr3361;
+ case 65: goto st1136;
+ case 70: goto st1139;
+ case 80: goto st1143;
+ case 97: goto st1136;
+ case 102: goto st1139;
+ case 112: goto st1143;
+ case 2058: goto tr3365;
+ case 2107: goto tr3366;
}
- goto tr3271;
-tr3298:
+ goto tr3340;
+tr3368:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3299:
+ goto st1112;
+tr3369:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3301:
+ goto st1112;
+tr3371:
{
s->line_counter++;
}
- goto st1070;
-tr3397:
+ goto st1112;
+tr3467:
{
s->buffer[s->buffer_length++] = 0;
@@ -84542,15 +86386,15 @@ tr3397:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1070; goto _out;}
+ {p++; cs = 1112; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1070;
-tr3758:
+ goto st1112;
+tr3828:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -84558,11 +86402,11 @@ tr3758:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1070;
-tr3759:
+ goto st1112;
+tr3829:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -84570,18 +86414,18 @@ tr3759:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3760:
+ goto st1112;
+tr3830:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -84589,18 +86433,18 @@ tr3760:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3762:
+ goto st1112;
+tr3832:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -84608,1409 +86452,1438 @@ tr3762:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1070;
-tr3289:
+ goto st1112;
+tr3359:
{ type_num(KNOT_RRTYPE_A, &rdata_tail); }
- goto st1070;
-tr3290:
+ goto st1112;
+tr3360:
{ type_num(KNOT_RRTYPE_A, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3291:
+ goto st1112;
+tr3361:
{ type_num(KNOT_RRTYPE_A, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3295:
+ goto st1112;
+tr3365:
{ type_num(KNOT_RRTYPE_A, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3400:
+ goto st1112;
+tr3470:
{ type_num(KNOT_RRTYPE_AAAA, &rdata_tail); }
- goto st1070;
-tr3401:
+ goto st1112;
+tr3471:
{ type_num(KNOT_RRTYPE_AAAA, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3402:
+ goto st1112;
+tr3472:
{ type_num(KNOT_RRTYPE_AAAA, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3403:
+ goto st1112;
+tr3473:
{ type_num(KNOT_RRTYPE_AAAA, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3408:
+ goto st1112;
+tr3478:
{ type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); }
- goto st1070;
-tr3409:
+ goto st1112;
+tr3479:
{ type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3410:
+ goto st1112;
+tr3480:
{ type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3411:
+ goto st1112;
+tr3481:
{ type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3414:
+ goto st1112;
+tr3484:
{ type_num(KNOT_RRTYPE_APL, &rdata_tail); }
- goto st1070;
-tr3415:
+ goto st1112;
+tr3485:
{ type_num(KNOT_RRTYPE_APL, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3416:
+ goto st1112;
+tr3486:
{ type_num(KNOT_RRTYPE_APL, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3417:
+ goto st1112;
+tr3487:
{ type_num(KNOT_RRTYPE_APL, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3425:
+ goto st1112;
+tr3495:
{ type_num(KNOT_RRTYPE_CAA, &rdata_tail); }
- goto st1070;
-tr3426:
+ goto st1112;
+tr3496:
{ type_num(KNOT_RRTYPE_CAA, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3427:
+ goto st1112;
+tr3497:
{ type_num(KNOT_RRTYPE_CAA, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3428:
+ goto st1112;
+tr3498:
{ type_num(KNOT_RRTYPE_CAA, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3436:
+ goto st1112;
+tr3506:
{ type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); }
- goto st1070;
-tr3437:
+ goto st1112;
+tr3507:
{ type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3438:
+ goto st1112;
+tr3508:
{ type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3439:
+ goto st1112;
+tr3509:
{ type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3441:
+ goto st1112;
+tr3511:
{ type_num(KNOT_RRTYPE_CDS, &rdata_tail); }
- goto st1070;
-tr3442:
+ goto st1112;
+tr3512:
{ type_num(KNOT_RRTYPE_CDS, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3443:
+ goto st1112;
+tr3513:
{ type_num(KNOT_RRTYPE_CDS, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3444:
+ goto st1112;
+tr3514:
{ type_num(KNOT_RRTYPE_CDS, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3448:
+ goto st1112;
+tr3518:
{ type_num(KNOT_RRTYPE_CERT, &rdata_tail); }
- goto st1070;
-tr3449:
+ goto st1112;
+tr3519:
{ type_num(KNOT_RRTYPE_CERT, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3450:
+ goto st1112;
+tr3520:
{ type_num(KNOT_RRTYPE_CERT, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3451:
+ goto st1112;
+tr3521:
{ type_num(KNOT_RRTYPE_CERT, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3456:
+ goto st1112;
+tr3526:
{ type_num(KNOT_RRTYPE_CNAME, &rdata_tail); }
- goto st1070;
-tr3457:
+ goto st1112;
+tr3527:
{ type_num(KNOT_RRTYPE_CNAME, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3458:
+ goto st1112;
+tr3528:
{ type_num(KNOT_RRTYPE_CNAME, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3459:
+ goto st1112;
+tr3529:
{ type_num(KNOT_RRTYPE_CNAME, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3464:
+ goto st1112;
+tr3534:
{ type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); }
- goto st1070;
-tr3465:
+ goto st1112;
+tr3535:
{ type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3466:
+ goto st1112;
+tr3536:
{ type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3467:
+ goto st1112;
+tr3537:
{ type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3475:
+ goto st1112;
+tr3545:
{ type_num(KNOT_RRTYPE_DHCID, &rdata_tail); }
- goto st1070;
-tr3476:
+ goto st1112;
+tr3546:
{ type_num(KNOT_RRTYPE_DHCID, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3477:
+ goto st1112;
+tr3547:
{ type_num(KNOT_RRTYPE_DHCID, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3478:
+ goto st1112;
+tr3548:
{ type_num(KNOT_RRTYPE_DHCID, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3484:
+ goto st1112;
+tr3554:
{ type_num(KNOT_RRTYPE_DNAME, &rdata_tail); }
- goto st1070;
-tr3485:
+ goto st1112;
+tr3555:
{ type_num(KNOT_RRTYPE_DNAME, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3486:
+ goto st1112;
+tr3556:
{ type_num(KNOT_RRTYPE_DNAME, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3487:
+ goto st1112;
+tr3557:
{ type_num(KNOT_RRTYPE_DNAME, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3492:
+ goto st1112;
+tr3562:
{ type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); }
- goto st1070;
-tr3493:
+ goto st1112;
+tr3563:
{ type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3494:
+ goto st1112;
+tr3564:
{ type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3495:
+ goto st1112;
+tr3565:
{ type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3497:
+ goto st1112;
+tr3567:
{ type_num(KNOT_RRTYPE_DS, &rdata_tail); }
- goto st1070;
-tr3498:
+ goto st1112;
+tr3568:
{ type_num(KNOT_RRTYPE_DS, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3499:
+ goto st1112;
+tr3569:
{ type_num(KNOT_RRTYPE_DS, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3500:
+ goto st1112;
+tr3570:
{ type_num(KNOT_RRTYPE_DS, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3507:
+ goto st1112;
+tr3577:
{ type_num(KNOT_RRTYPE_EUI48, &rdata_tail); }
- goto st1070;
-tr3508:
+ goto st1112;
+tr3578:
{ type_num(KNOT_RRTYPE_EUI48, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3509:
+ goto st1112;
+tr3579:
{ type_num(KNOT_RRTYPE_EUI48, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3510:
+ goto st1112;
+tr3580:
{ type_num(KNOT_RRTYPE_EUI48, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3513:
+ goto st1112;
+tr3583:
{ type_num(KNOT_RRTYPE_EUI64, &rdata_tail); }
- goto st1070;
-tr3514:
+ goto st1112;
+tr3584:
{ type_num(KNOT_RRTYPE_EUI64, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3515:
+ goto st1112;
+tr3585:
{ type_num(KNOT_RRTYPE_EUI64, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3516:
+ goto st1112;
+tr3586:
{ type_num(KNOT_RRTYPE_EUI64, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3523:
+ goto st1112;
+tr3593:
{ type_num(KNOT_RRTYPE_HINFO, &rdata_tail); }
- goto st1070;
-tr3524:
+ goto st1112;
+tr3594:
{ type_num(KNOT_RRTYPE_HINFO, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3525:
+ goto st1112;
+tr3595:
{ type_num(KNOT_RRTYPE_HINFO, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3526:
+ goto st1112;
+tr3596:
{ type_num(KNOT_RRTYPE_HINFO, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3531:
+ goto st1112;
+tr3601:
{ type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); }
- goto st1070;
-tr3532:
+ goto st1112;
+tr3602:
{ type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3533:
+ goto st1112;
+tr3603:
{ type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3534:
+ goto st1112;
+tr3604:
{ type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3543:
+ goto st1112;
+tr3613:
{ type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); }
- goto st1070;
-tr3544:
+ goto st1112;
+tr3614:
{ type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3545:
+ goto st1112;
+tr3615:
{ type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3546:
+ goto st1112;
+tr3616:
{ type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3551:
+ goto st1112;
+tr3621:
{ type_num(KNOT_RRTYPE_KEY, &rdata_tail); }
- goto st1070;
-tr3552:
+ goto st1112;
+tr3622:
{ type_num(KNOT_RRTYPE_KEY, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3553:
+ goto st1112;
+tr3623:
{ type_num(KNOT_RRTYPE_KEY, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3554:
+ goto st1112;
+tr3624:
{ type_num(KNOT_RRTYPE_KEY, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3556:
+ goto st1112;
+tr3626:
{ type_num(KNOT_RRTYPE_KX, &rdata_tail); }
- goto st1070;
-tr3557:
+ goto st1112;
+tr3627:
{ type_num(KNOT_RRTYPE_KX, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3558:
+ goto st1112;
+tr3628:
{ type_num(KNOT_RRTYPE_KX, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3559:
+ goto st1112;
+tr3629:
{ type_num(KNOT_RRTYPE_KX, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3566:
+ goto st1112;
+tr3636:
{ type_num(KNOT_RRTYPE_L32, &rdata_tail); }
- goto st1070;
-tr3567:
+ goto st1112;
+tr3637:
{ type_num(KNOT_RRTYPE_L32, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3568:
+ goto st1112;
+tr3638:
{ type_num(KNOT_RRTYPE_L32, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3569:
+ goto st1112;
+tr3639:
{ type_num(KNOT_RRTYPE_L32, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3572:
+ goto st1112;
+tr3642:
{ type_num(KNOT_RRTYPE_L64, &rdata_tail); }
- goto st1070;
-tr3573:
+ goto st1112;
+tr3643:
{ type_num(KNOT_RRTYPE_L64, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3574:
+ goto st1112;
+tr3644:
{ type_num(KNOT_RRTYPE_L64, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3575:
+ goto st1112;
+tr3645:
{ type_num(KNOT_RRTYPE_L64, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3578:
+ goto st1112;
+tr3648:
{ type_num(KNOT_RRTYPE_LOC, &rdata_tail); }
- goto st1070;
-tr3579:
+ goto st1112;
+tr3649:
{ type_num(KNOT_RRTYPE_LOC, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3580:
+ goto st1112;
+tr3650:
{ type_num(KNOT_RRTYPE_LOC, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3581:
+ goto st1112;
+tr3651:
{ type_num(KNOT_RRTYPE_LOC, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3583:
+ goto st1112;
+tr3653:
{ type_num(KNOT_RRTYPE_LP, &rdata_tail); }
- goto st1070;
-tr3584:
+ goto st1112;
+tr3654:
{ type_num(KNOT_RRTYPE_LP, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3585:
+ goto st1112;
+tr3655:
{ type_num(KNOT_RRTYPE_LP, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3586:
+ goto st1112;
+tr3656:
{ type_num(KNOT_RRTYPE_LP, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3593:
+ goto st1112;
+tr3663:
{ type_num(KNOT_RRTYPE_MINFO, &rdata_tail); }
- goto st1070;
-tr3594:
+ goto st1112;
+tr3664:
{ type_num(KNOT_RRTYPE_MINFO, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3595:
+ goto st1112;
+tr3665:
{ type_num(KNOT_RRTYPE_MINFO, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3596:
+ goto st1112;
+tr3666:
{ type_num(KNOT_RRTYPE_MINFO, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3598:
+ goto st1112;
+tr3668:
{ type_num(KNOT_RRTYPE_MX, &rdata_tail); }
- goto st1070;
-tr3599:
+ goto st1112;
+tr3669:
{ type_num(KNOT_RRTYPE_MX, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3600:
+ goto st1112;
+tr3670:
{ type_num(KNOT_RRTYPE_MX, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3601:
+ goto st1112;
+tr3671:
{ type_num(KNOT_RRTYPE_MX, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3609:
+ goto st1112;
+tr3679:
{ type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); }
- goto st1070;
-tr3610:
+ goto st1112;
+tr3680:
{ type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3611:
+ goto st1112;
+tr3681:
{ type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3612:
+ goto st1112;
+tr3682:
{ type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3615:
+ goto st1112;
+tr3685:
{ type_num(KNOT_RRTYPE_NID, &rdata_tail); }
- goto st1070;
-tr3616:
+ goto st1112;
+tr3686:
{ type_num(KNOT_RRTYPE_NID, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3617:
+ goto st1112;
+tr3687:
{ type_num(KNOT_RRTYPE_NID, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3618:
+ goto st1112;
+tr3688:
{ type_num(KNOT_RRTYPE_NID, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3620:
+ goto st1112;
+tr3690:
{ type_num(KNOT_RRTYPE_NS, &rdata_tail); }
- goto st1070;
-tr3621:
+ goto st1112;
+tr3691:
{ type_num(KNOT_RRTYPE_NS, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3622:
+ goto st1112;
+tr3692:
{ type_num(KNOT_RRTYPE_NS, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3624:
+ goto st1112;
+tr3694:
{ type_num(KNOT_RRTYPE_NS, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3627:
+ goto st1112;
+tr3697:
{ type_num(KNOT_RRTYPE_NSEC, &rdata_tail); }
- goto st1070;
-tr3628:
+ goto st1112;
+tr3698:
{ type_num(KNOT_RRTYPE_NSEC, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3629:
+ goto st1112;
+tr3699:
{ type_num(KNOT_RRTYPE_NSEC, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3631:
+ goto st1112;
+tr3701:
{ type_num(KNOT_RRTYPE_NSEC, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3633:
+ goto st1112;
+tr3703:
{ type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); }
- goto st1070;
-tr3634:
+ goto st1112;
+tr3704:
{ type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3635:
+ goto st1112;
+tr3705:
{ type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3637:
+ goto st1112;
+tr3707:
{ type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3643:
+ goto st1112;
+tr3713:
{ type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); }
- goto st1070;
-tr3644:
+ goto st1112;
+tr3714:
{ type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3645:
+ goto st1112;
+tr3715:
{ type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3646:
+ goto st1112;
+tr3716:
{ type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3657:
+ goto st1112;
+tr3727:
{ type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); }
- goto st1070;
-tr3658:
+ goto st1112;
+tr3728:
{ type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3659:
+ goto st1112;
+tr3729:
{ type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3660:
+ goto st1112;
+tr3730:
{ type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3664:
+ goto st1112;
+tr3734:
{ type_num(KNOT_RRTYPE_PTR, &rdata_tail); }
- goto st1070;
-tr3665:
+ goto st1112;
+tr3735:
{ type_num(KNOT_RRTYPE_PTR, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3666:
+ goto st1112;
+tr3736:
{ type_num(KNOT_RRTYPE_PTR, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3667:
+ goto st1112;
+tr3737:
{ type_num(KNOT_RRTYPE_PTR, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3672:
+ goto st1112;
+tr3742:
{ type_num(KNOT_RRTYPE_RP, &rdata_tail); }
- goto st1070;
-tr3673:
+ goto st1112;
+tr3743:
{ type_num(KNOT_RRTYPE_RP, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3674:
+ goto st1112;
+tr3744:
{ type_num(KNOT_RRTYPE_RP, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3675:
+ goto st1112;
+tr3745:
{ type_num(KNOT_RRTYPE_RP, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3680:
+ goto st1112;
+tr3750:
{ type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); }
- goto st1070;
-tr3681:
+ goto st1112;
+tr3751:
{ type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3682:
+ goto st1112;
+tr3752:
{ type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3683:
+ goto st1112;
+tr3753:
{ type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3685:
+ goto st1112;
+tr3755:
{ type_num(KNOT_RRTYPE_RT, &rdata_tail); }
- goto st1070;
-tr3686:
+ goto st1112;
+tr3756:
{ type_num(KNOT_RRTYPE_RT, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3687:
+ goto st1112;
+tr3757:
{ type_num(KNOT_RRTYPE_RT, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3688:
+ goto st1112;
+tr3758:
{ type_num(KNOT_RRTYPE_RT, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3700:
+ goto st1112;
+tr3770:
{ type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); }
- goto st1070;
-tr3701:
+ goto st1112;
+tr3771:
{ type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3702:
+ goto st1112;
+tr3772:
{ type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3703:
+ goto st1112;
+tr3773:
{ type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3706:
+ goto st1112;
+tr3776:
{ type_num(KNOT_RRTYPE_SOA, &rdata_tail); }
- goto st1070;
-tr3707:
+ goto st1112;
+tr3777:
{ type_num(KNOT_RRTYPE_SOA, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3708:
+ goto st1112;
+tr3778:
{ type_num(KNOT_RRTYPE_SOA, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3709:
+ goto st1112;
+tr3779:
{ type_num(KNOT_RRTYPE_SOA, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3712:
+ goto st1112;
+tr3782:
{ type_num(KNOT_RRTYPE_SPF, &rdata_tail); }
- goto st1070;
-tr3713:
+ goto st1112;
+tr3783:
{ type_num(KNOT_RRTYPE_SPF, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3714:
+ goto st1112;
+tr3784:
{ type_num(KNOT_RRTYPE_SPF, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3715:
+ goto st1112;
+tr3785:
{ type_num(KNOT_RRTYPE_SPF, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3718:
+ goto st1112;
+tr3788:
{ type_num(KNOT_RRTYPE_SRV, &rdata_tail); }
- goto st1070;
-tr3719:
+ goto st1112;
+tr3789:
{ type_num(KNOT_RRTYPE_SRV, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3720:
+ goto st1112;
+tr3790:
{ type_num(KNOT_RRTYPE_SRV, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3721:
+ goto st1112;
+tr3791:
{ type_num(KNOT_RRTYPE_SRV, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3726:
+ goto st1112;
+tr3796:
{ type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); }
- goto st1070;
-tr3727:
+ goto st1112;
+tr3797:
{ type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3728:
+ goto st1112;
+tr3798:
{ type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3729:
+ goto st1112;
+tr3799:
{ type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3733:
+ goto st1112;
+tr3803:
{ type_num(KNOT_RRTYPE_SVCB, &rdata_tail); }
- goto st1070;
-tr3734:
+ goto st1112;
+tr3804:
{ type_num(KNOT_RRTYPE_SVCB, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3735:
+ goto st1112;
+tr3805:
{ type_num(KNOT_RRTYPE_SVCB, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3736:
+ goto st1112;
+tr3806:
{ type_num(KNOT_RRTYPE_SVCB, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3743:
+ goto st1112;
+tr3813:
{ type_num(KNOT_RRTYPE_TLSA, &rdata_tail); }
- goto st1070;
-tr3744:
+ goto st1112;
+tr3814:
{ type_num(KNOT_RRTYPE_TLSA, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3745:
+ goto st1112;
+tr3815:
{ type_num(KNOT_RRTYPE_TLSA, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3746:
+ goto st1112;
+tr3816:
{ type_num(KNOT_RRTYPE_TLSA, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3749:
+ goto st1112;
+tr3819:
{ type_num(KNOT_RRTYPE_TXT, &rdata_tail); }
- goto st1070;
-tr3750:
+ goto st1112;
+tr3820:
{ type_num(KNOT_RRTYPE_TXT, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3751:
+ goto st1112;
+tr3821:
{ type_num(KNOT_RRTYPE_TXT, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3752:
+ goto st1112;
+tr3822:
{ type_num(KNOT_RRTYPE_TXT, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3766:
+ goto st1112;
+tr3836:
{ type_num(KNOT_RRTYPE_URI, &rdata_tail); }
- goto st1070;
-tr3767:
+ goto st1112;
+tr3837:
{ type_num(KNOT_RRTYPE_URI, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3768:
+ goto st1112;
+tr3838:
{ type_num(KNOT_RRTYPE_URI, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3769:
+ goto st1112;
+tr3839:
{ type_num(KNOT_RRTYPE_URI, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-tr3776:
+ goto st1112;
+tr3846:
+ { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); }
+ goto st1112;
+tr3847:
+ { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); }
+ {
+ if (s->multiline == true) {
+ ERR(ZS_LEFT_PARENTHESIS);
+ p--; {goto st316;}
+ }
+ s->multiline = true;
+ }
+ goto st1112;
+tr3848:
+ { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); }
+ {
+ if (s->multiline == false) {
+ ERR(ZS_RIGHT_PARENTHESIS);
+ p--; {goto st316;}
+ }
+ s->multiline = false;
+ }
+ goto st1112;
+tr3849:
+ { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); }
+ {
+ s->line_counter++;
+ }
+ goto st1112;
+tr3856:
{ type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); }
- goto st1070;
-tr3777:
+ goto st1112;
+tr3857:
{ type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); }
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1070;
-tr3778:
+ goto st1112;
+tr3858:
{ type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); }
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1070;
-tr3779:
+ goto st1112;
+tr3859:
{ type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); }
{
s->line_counter++;
}
- goto st1070;
-st1070:
+ goto st1112;
+st1112:
if ( ++p == pe )
- goto _test_eof1070;
-case 1070:
+ goto _test_eof1112;
+case 1112:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -86024,29 +87897,29 @@ case 1070:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1070;
- case 32: goto st1070;
- case 40: goto tr3298;
- case 41: goto tr3299;
- case 2058: goto tr3301;
- case 2107: goto tr3302;
+ case 9: goto st1112;
+ case 32: goto st1112;
+ case 40: goto tr3368;
+ case 41: goto tr3369;
+ case 2058: goto tr3371;
+ case 2107: goto tr3372;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3300;
+ goto tr3370;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr3300;
+ goto tr3370;
} else
- goto tr3300;
- goto tr75;
-tr3300:
- { p--; {stack[top++] = 1071;goto st699;} }
- goto st1071;
-st1071:
+ goto tr3370;
+ goto tr77;
+tr3370:
+ { p--; {stack[top++] = 1113;goto st741;} }
+ goto st1113;
+st1113:
if ( ++p == pe )
- goto _test_eof1071;
-case 1071:
+ goto _test_eof1113;
+case 1113:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -86060,38 +87933,38 @@ case 1071:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1072;
- case 32: goto st1072;
- case 40: goto tr3304;
- case 41: goto tr3305;
- case 2058: goto tr3306;
- case 2107: goto tr3307;
+ case 9: goto st1114;
+ case 32: goto st1114;
+ case 40: goto tr3374;
+ case 41: goto tr3375;
+ case 2058: goto tr3376;
+ case 2107: goto tr3377;
}
- goto tr75;
-tr3304:
+ goto tr77;
+tr3374:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1072;
-tr3305:
+ goto st1114;
+tr3375:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1072;
-tr3306:
+ goto st1114;
+tr3376:
{
s->line_counter++;
}
- goto st1072;
-tr3395:
+ goto st1114;
+tr3465:
{
s->buffer[s->buffer_length++] = 0;
@@ -86101,18 +87974,18 @@ tr3395:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1072; goto _out;}
+ {p++; cs = 1114; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1072;
-st1072:
+ goto st1114;
+st1114:
if ( ++p == pe )
- goto _test_eof1072;
-case 1072:
+ goto _test_eof1114;
+case 1114:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -86126,17 +87999,17 @@ case 1072:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1072;
- case 32: goto st1072;
- case 40: goto tr3304;
- case 41: goto tr3305;
- case 2058: goto tr3306;
- case 2107: goto tr3307;
+ case 9: goto st1114;
+ case 32: goto st1114;
+ case 40: goto tr3374;
+ case 41: goto tr3375;
+ case 2058: goto tr3376;
+ case 2107: goto tr3377;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3308;
- goto tr2327;
-tr3308:
+ goto tr3378;
+ goto tr2396;
+tr3378:
{
s->number64 = 0;
}
@@ -86151,11 +88024,11 @@ tr3308:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1073;
-tr3312:
+ goto st1115;
+tr3382:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -86167,14 +88040,14 @@ tr3312:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1073;
-st1073:
+ goto st1115;
+st1115:
if ( ++p == pe )
- goto _test_eof1073;
-case 1073:
+ goto _test_eof1115;
+case 1115:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -86188,40 +88061,40 @@ case 1073:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3309;
- case 32: goto tr3309;
- case 40: goto tr3310;
- case 41: goto tr3311;
- case 2058: goto tr3313;
- case 2107: goto tr3314;
+ case 9: goto tr3379;
+ case 32: goto tr3379;
+ case 40: goto tr3380;
+ case 41: goto tr3381;
+ case 2058: goto tr3383;
+ case 2107: goto tr3384;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3312;
- goto tr2327;
-tr3316:
+ goto tr3382;
+ goto tr2396;
+tr3386:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1074;
-tr3317:
+ goto st1116;
+tr3387:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1074;
-tr3319:
+ goto st1116;
+tr3389:
{
s->line_counter++;
}
- goto st1074;
-tr3393:
+ goto st1116;
+tr3463:
{
s->buffer[s->buffer_length++] = 0;
@@ -86231,79 +88104,79 @@ tr3393:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1074; goto _out;}
+ {p++; cs = 1116; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1074;
-tr3309:
+ goto st1116;
+tr3379:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1074;
-tr3310:
+ goto st1116;
+tr3380:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1074;
-tr3311:
+ goto st1116;
+tr3381:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1074;
-tr3313:
+ goto st1116;
+tr3383:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1074;
-st1074:
+ goto st1116;
+st1116:
if ( ++p == pe )
- goto _test_eof1074;
-case 1074:
+ goto _test_eof1116;
+case 1116:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -86317,17 +88190,17 @@ case 1074:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1074;
- case 32: goto st1074;
- case 40: goto tr3316;
- case 41: goto tr3317;
- case 2058: goto tr3319;
- case 2107: goto tr3320;
+ case 9: goto st1116;
+ case 32: goto st1116;
+ case 40: goto tr3386;
+ case 41: goto tr3387;
+ case 2058: goto tr3389;
+ case 2107: goto tr3390;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3318;
- goto tr2327;
-tr3318:
+ goto tr3388;
+ goto tr2396;
+tr3388:
{
s->number64 = 0;
}
@@ -86342,11 +88215,11 @@ tr3318:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1075;
-tr3324:
+ goto st1117;
+tr3394:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -86358,14 +88231,14 @@ tr3324:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1075;
-st1075:
+ goto st1117;
+st1117:
if ( ++p == pe )
- goto _test_eof1075;
-case 1075:
+ goto _test_eof1117;
+case 1117:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -86379,40 +88252,40 @@ case 1075:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3321;
- case 32: goto tr3321;
- case 40: goto tr3322;
- case 41: goto tr3323;
- case 2058: goto tr3325;
- case 2107: goto tr3326;
+ case 9: goto tr3391;
+ case 32: goto tr3391;
+ case 40: goto tr3392;
+ case 41: goto tr3393;
+ case 2058: goto tr3395;
+ case 2107: goto tr3396;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3324;
- goto tr2327;
-tr3329:
+ goto tr3394;
+ goto tr2396;
+tr3399:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1076;
-tr3330:
+ goto st1118;
+tr3400:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1076;
-tr3332:
+ goto st1118;
+tr3402:
{
s->line_counter++;
}
- goto st1076;
-tr3391:
+ goto st1118;
+tr3461:
{
s->buffer[s->buffer_length++] = 0;
@@ -86422,15 +88295,15 @@ tr3391:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1076; goto _out;}
+ {p++; cs = 1118; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1076;
-tr3321:
+ goto st1118;
+tr3391:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -86438,11 +88311,11 @@ tr3321:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1076;
-tr3322:
+ goto st1118;
+tr3392:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -86450,18 +88323,18 @@ tr3322:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1076;
-tr3323:
+ goto st1118;
+tr3393:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -86469,18 +88342,18 @@ tr3323:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1076;
-tr3325:
+ goto st1118;
+tr3395:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -86488,17 +88361,17 @@ tr3325:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1076;
-st1076:
+ goto st1118;
+st1118:
if ( ++p == pe )
- goto _test_eof1076;
-case 1076:
+ goto _test_eof1118;
+case 1118:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -86512,17 +88385,17 @@ case 1076:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1076;
- case 32: goto st1076;
- case 40: goto tr3329;
- case 41: goto tr3330;
- case 2058: goto tr3332;
- case 2107: goto tr3333;
+ case 9: goto st1118;
+ case 32: goto st1118;
+ case 40: goto tr3399;
+ case 41: goto tr3400;
+ case 2058: goto tr3402;
+ case 2107: goto tr3403;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3331;
- goto tr3327;
-tr3331:
+ goto tr3401;
+ goto tr3397;
+tr3401:
{
s->buffer_length = 0;
}
@@ -86531,24 +88404,24 @@ tr3331:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1077;
-tr3337:
+ goto st1119;
+tr3407:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1077;
-st1077:
+ goto st1119;
+st1119:
if ( ++p == pe )
- goto _test_eof1077;
-case 1077:
+ goto _test_eof1119;
+case 1119:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -86562,40 +88435,40 @@ case 1077:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3334;
- case 32: goto tr3334;
- case 40: goto tr3335;
- case 41: goto tr3336;
- case 2058: goto tr3338;
- case 2107: goto tr3339;
+ case 9: goto tr3404;
+ case 32: goto tr3404;
+ case 40: goto tr3405;
+ case 41: goto tr3406;
+ case 2058: goto tr3408;
+ case 2107: goto tr3409;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3337;
- goto tr3327;
-tr3341:
+ goto tr3407;
+ goto tr3397;
+tr3411:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1078;
-tr3342:
+ goto st1120;
+tr3412:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1078;
-tr3344:
+ goto st1120;
+tr3414:
{
s->line_counter++;
}
- goto st1078;
-tr3389:
+ goto st1120;
+tr3459:
{
s->buffer[s->buffer_length++] = 0;
@@ -86605,15 +88478,15 @@ tr3389:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1078; goto _out;}
+ {p++; cs = 1120; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1078;
-tr3334:
+ goto st1120;
+tr3404:
{
s->buffer[s->buffer_length] = 0;
@@ -86626,7 +88499,7 @@ tr3334:
rdata_tail += 4;
} else {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else if (s->buffer_length <= 10) { // Timestamp format.
char *end;
@@ -86635,7 +88508,7 @@ tr3334:
if (end == (char *)(s->buffer) || *end != '\0') {
WARN(ZS_BAD_TIMESTAMP);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->number64 <= UINT32_MAX) {
@@ -86643,15 +88516,15 @@ tr3334:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else {
WARN(ZS_BAD_TIMESTAMP_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1078;
-tr3335:
+ goto st1120;
+tr3405:
{
s->buffer[s->buffer_length] = 0;
@@ -86664,7 +88537,7 @@ tr3335:
rdata_tail += 4;
} else {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else if (s->buffer_length <= 10) { // Timestamp format.
char *end;
@@ -86673,7 +88546,7 @@ tr3335:
if (end == (char *)(s->buffer) || *end != '\0') {
WARN(ZS_BAD_TIMESTAMP);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->number64 <= UINT32_MAX) {
@@ -86681,22 +88554,22 @@ tr3335:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else {
WARN(ZS_BAD_TIMESTAMP_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1078;
-tr3336:
+ goto st1120;
+tr3406:
{
s->buffer[s->buffer_length] = 0;
@@ -86709,7 +88582,7 @@ tr3336:
rdata_tail += 4;
} else {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else if (s->buffer_length <= 10) { // Timestamp format.
char *end;
@@ -86718,7 +88591,7 @@ tr3336:
if (end == (char *)(s->buffer) || *end != '\0') {
WARN(ZS_BAD_TIMESTAMP);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->number64 <= UINT32_MAX) {
@@ -86726,22 +88599,22 @@ tr3336:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else {
WARN(ZS_BAD_TIMESTAMP_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1078;
-tr3338:
+ goto st1120;
+tr3408:
{
s->buffer[s->buffer_length] = 0;
@@ -86754,7 +88627,7 @@ tr3338:
rdata_tail += 4;
} else {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else if (s->buffer_length <= 10) { // Timestamp format.
char *end;
@@ -86763,7 +88636,7 @@ tr3338:
if (end == (char *)(s->buffer) || *end != '\0') {
WARN(ZS_BAD_TIMESTAMP);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->number64 <= UINT32_MAX) {
@@ -86771,21 +88644,21 @@ tr3338:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else {
WARN(ZS_BAD_TIMESTAMP_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1078;
-st1078:
+ goto st1120;
+st1120:
if ( ++p == pe )
- goto _test_eof1078;
-case 1078:
+ goto _test_eof1120;
+case 1120:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -86799,17 +88672,17 @@ case 1078:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1078;
- case 32: goto st1078;
- case 40: goto tr3341;
- case 41: goto tr3342;
- case 2058: goto tr3344;
- case 2107: goto tr3345;
+ case 9: goto st1120;
+ case 32: goto st1120;
+ case 40: goto tr3411;
+ case 41: goto tr3412;
+ case 2058: goto tr3414;
+ case 2107: goto tr3415;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3343;
- goto tr3327;
-tr3343:
+ goto tr3413;
+ goto tr3397;
+tr3413:
{
s->buffer_length = 0;
}
@@ -86818,24 +88691,24 @@ tr3343:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1079;
-tr3349:
+ goto st1121;
+tr3419:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1079;
-st1079:
+ goto st1121;
+st1121:
if ( ++p == pe )
- goto _test_eof1079;
-case 1079:
+ goto _test_eof1121;
+case 1121:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -86849,40 +88722,40 @@ case 1079:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3346;
- case 32: goto tr3346;
- case 40: goto tr3347;
- case 41: goto tr3348;
- case 2058: goto tr3350;
- case 2107: goto tr3351;
+ case 9: goto tr3416;
+ case 32: goto tr3416;
+ case 40: goto tr3417;
+ case 41: goto tr3418;
+ case 2058: goto tr3420;
+ case 2107: goto tr3421;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3349;
- goto tr3327;
-tr3353:
+ goto tr3419;
+ goto tr3397;
+tr3423:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1080;
-tr3354:
+ goto st1122;
+tr3424:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1080;
-tr3356:
+ goto st1122;
+tr3426:
{
s->line_counter++;
}
- goto st1080;
-tr3387:
+ goto st1122;
+tr3457:
{
s->buffer[s->buffer_length++] = 0;
@@ -86892,15 +88765,15 @@ tr3387:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1080; goto _out;}
+ {p++; cs = 1122; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1080;
-tr3346:
+ goto st1122;
+tr3416:
{
s->buffer[s->buffer_length] = 0;
@@ -86913,7 +88786,7 @@ tr3346:
rdata_tail += 4;
} else {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else if (s->buffer_length <= 10) { // Timestamp format.
char *end;
@@ -86922,7 +88795,7 @@ tr3346:
if (end == (char *)(s->buffer) || *end != '\0') {
WARN(ZS_BAD_TIMESTAMP);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->number64 <= UINT32_MAX) {
@@ -86930,15 +88803,15 @@ tr3346:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else {
WARN(ZS_BAD_TIMESTAMP_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1080;
-tr3347:
+ goto st1122;
+tr3417:
{
s->buffer[s->buffer_length] = 0;
@@ -86951,7 +88824,7 @@ tr3347:
rdata_tail += 4;
} else {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else if (s->buffer_length <= 10) { // Timestamp format.
char *end;
@@ -86960,7 +88833,7 @@ tr3347:
if (end == (char *)(s->buffer) || *end != '\0') {
WARN(ZS_BAD_TIMESTAMP);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->number64 <= UINT32_MAX) {
@@ -86968,22 +88841,22 @@ tr3347:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else {
WARN(ZS_BAD_TIMESTAMP_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1080;
-tr3348:
+ goto st1122;
+tr3418:
{
s->buffer[s->buffer_length] = 0;
@@ -86996,7 +88869,7 @@ tr3348:
rdata_tail += 4;
} else {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else if (s->buffer_length <= 10) { // Timestamp format.
char *end;
@@ -87005,7 +88878,7 @@ tr3348:
if (end == (char *)(s->buffer) || *end != '\0') {
WARN(ZS_BAD_TIMESTAMP);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->number64 <= UINT32_MAX) {
@@ -87013,22 +88886,22 @@ tr3348:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else {
WARN(ZS_BAD_TIMESTAMP_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1080;
-tr3350:
+ goto st1122;
+tr3420:
{
s->buffer[s->buffer_length] = 0;
@@ -87041,7 +88914,7 @@ tr3350:
rdata_tail += 4;
} else {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else if (s->buffer_length <= 10) { // Timestamp format.
char *end;
@@ -87050,7 +88923,7 @@ tr3350:
if (end == (char *)(s->buffer) || *end != '\0') {
WARN(ZS_BAD_TIMESTAMP);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->number64 <= UINT32_MAX) {
@@ -87058,21 +88931,21 @@ tr3350:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else {
WARN(ZS_BAD_TIMESTAMP_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1080;
-st1080:
+ goto st1122;
+st1122:
if ( ++p == pe )
- goto _test_eof1080;
-case 1080:
+ goto _test_eof1122;
+case 1122:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -87086,17 +88959,17 @@ case 1080:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1080;
- case 32: goto st1080;
- case 40: goto tr3353;
- case 41: goto tr3354;
- case 2058: goto tr3356;
- case 2107: goto tr3357;
+ case 9: goto st1122;
+ case 32: goto st1122;
+ case 40: goto tr3423;
+ case 41: goto tr3424;
+ case 2058: goto tr3426;
+ case 2107: goto tr3427;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3355;
- goto tr2327;
-tr3355:
+ goto tr3425;
+ goto tr2396;
+tr3425:
{
s->number64 = 0;
}
@@ -87111,11 +88984,11 @@ tr3355:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1081;
-tr3361:
+ goto st1123;
+tr3431:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -87127,14 +89000,14 @@ tr3361:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1081;
-st1081:
+ goto st1123;
+st1123:
if ( ++p == pe )
- goto _test_eof1081;
-case 1081:
+ goto _test_eof1123;
+case 1123:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -87148,40 +89021,40 @@ case 1081:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3358;
- case 32: goto tr3358;
- case 40: goto tr3359;
- case 41: goto tr3360;
- case 2058: goto tr3362;
- case 2107: goto tr3363;
+ case 9: goto tr3428;
+ case 32: goto tr3428;
+ case 40: goto tr3429;
+ case 41: goto tr3430;
+ case 2058: goto tr3432;
+ case 2107: goto tr3433;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3361;
- goto tr2327;
-tr3365:
+ goto tr3431;
+ goto tr2396;
+tr3435:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1082;
-tr3366:
+ goto st1124;
+tr3436:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1082;
-tr3368:
+ goto st1124;
+tr3438:
{
s->line_counter++;
}
- goto st1082;
-tr3385:
+ goto st1124;
+tr3455:
{
s->buffer[s->buffer_length++] = 0;
@@ -87191,15 +89064,15 @@ tr3385:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1082; goto _out;}
+ {p++; cs = 1124; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1082;
-tr3358:
+ goto st1124;
+tr3428:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -87207,11 +89080,11 @@ tr3358:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1082;
-tr3359:
+ goto st1124;
+tr3429:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -87219,18 +89092,18 @@ tr3359:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1082;
-tr3360:
+ goto st1124;
+tr3430:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -87238,18 +89111,18 @@ tr3360:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1082;
-tr3362:
+ goto st1124;
+tr3432:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -87257,17 +89130,17 @@ tr3362:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1082;
-st1082:
+ goto st1124;
+st1124:
if ( ++p == pe )
- goto _test_eof1082;
-case 1082:
+ goto _test_eof1124;
+case 1124:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -87281,35 +89154,35 @@ case 1082:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1082;
- case 32: goto st1082;
- case 40: goto tr3365;
- case 41: goto tr3366;
- case 42: goto tr3367;
- case 92: goto tr3367;
- case 95: goto tr3367;
- case 2058: goto tr3368;
- case 2107: goto tr3369;
+ case 9: goto st1124;
+ case 32: goto st1124;
+ case 40: goto tr3435;
+ case 41: goto tr3436;
+ case 42: goto tr3437;
+ case 92: goto tr3437;
+ case 95: goto tr3437;
+ case 2058: goto tr3438;
+ case 2107: goto tr3439;
}
if ( _widec < 64 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr3367;
+ goto tr3437;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr3367;
+ goto tr3437;
} else
- goto tr3367;
- goto tr75;
-tr3367:
+ goto tr3437;
+ goto tr77;
+tr3437:
{
s->dname = rdata_tail;
}
- { p--; {stack[top++] = 1083;goto st309;} }
- goto st1083;
-st1083:
+ { p--; {stack[top++] = 1125;goto st318;} }
+ goto st1125;
+st1125:
if ( ++p == pe )
- goto _test_eof1083;
-case 1083:
+ goto _test_eof1125;
+case 1125:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -87323,38 +89196,38 @@ case 1083:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3370;
- case 32: goto tr3370;
- case 40: goto tr3371;
- case 41: goto tr3372;
- case 2058: goto tr3373;
- case 2107: goto tr3374;
+ case 9: goto tr3440;
+ case 32: goto tr3440;
+ case 40: goto tr3441;
+ case 41: goto tr3442;
+ case 2058: goto tr3443;
+ case 2107: goto tr3444;
}
- goto tr75;
-tr3376:
+ goto tr77;
+tr3446:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1084;
-tr3377:
+ goto st1126;
+tr3447:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1084;
-tr3379:
+ goto st1126;
+tr3449:
{
s->line_counter++;
}
- goto st1084;
-tr3383:
+ goto st1126;
+tr3453:
{
s->buffer[s->buffer_length++] = 0;
@@ -87364,55 +89237,55 @@ tr3383:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1084; goto _out;}
+ {p++; cs = 1126; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1084;
-tr3370:
+ goto st1126;
+tr3440:
{
rdata_tail += s->dname_tmp_length;
}
- goto st1084;
-tr3371:
+ goto st1126;
+tr3441:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1084;
-tr3372:
+ goto st1126;
+tr3442:
{
rdata_tail += s->dname_tmp_length;
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1084;
-tr3373:
+ goto st1126;
+tr3443:
{
rdata_tail += s->dname_tmp_length;
}
{
s->line_counter++;
}
- goto st1084;
-st1084:
+ goto st1126;
+st1126:
if ( ++p == pe )
- goto _test_eof1084;
-case 1084:
+ goto _test_eof1126;
+case 1126:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -87426,30 +89299,30 @@ case 1084:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1084;
- case 32: goto st1084;
- case 40: goto tr3376;
- case 41: goto tr3377;
- case 43: goto tr3378;
- case 2058: goto tr3379;
- case 2107: goto tr3380;
+ case 9: goto st1126;
+ case 32: goto st1126;
+ case 40: goto tr3446;
+ case 41: goto tr3447;
+ case 43: goto tr3448;
+ case 2058: goto tr3449;
+ case 2107: goto tr3450;
}
if ( _widec < 65 ) {
if ( 47 <= _widec && _widec <= 57 )
- goto tr3378;
+ goto tr3448;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr3378;
+ goto tr3448;
} else
- goto tr3378;
- goto tr75;
-tr3378:
- { p--; {stack[top++] = 1085;goto st369;} }
- goto st1085;
-st1085:
+ goto tr3448;
+ goto tr77;
+tr3448:
+ { p--; {stack[top++] = 1127;goto st378;} }
+ goto st1127;
+st1127:
if ( ++p == pe )
- goto _test_eof1085;
-case 1085:
+ goto _test_eof1127;
+case 1127:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -87463,44 +89336,44 @@ case 1085:
!s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 2570: goto tr3381;
- case 2619: goto tr3381;
+ case 2570: goto tr3451;
+ case 2619: goto tr3451;
}
- goto tr75;
-tr3381:
+ goto tr77;
+tr3451:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1473;
-st1473:
+ goto st1521;
+st1521:
if ( ++p == pe )
- goto _test_eof1473;
-case 1473:
+ goto _test_eof1521;
+case 1521:
goto st0;
-tr3380:
+tr3450:
{
s->buffer_length = 0;
}
- goto st1086;
-tr3382:
+ goto st1128;
+tr3452:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1086;
-tr3374:
+ goto st1128;
+tr3444:
{
rdata_tail += s->dname_tmp_length;
}
{
s->buffer_length = 0;
}
- goto st1086;
-st1086:
+ goto st1128;
+st1128:
if ( ++p == pe )
- goto _test_eof1086;
-case 1086:
+ goto _test_eof1128;
+case 1128:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -87520,23 +89393,23 @@ case 1086:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3383;
+ goto tr3453;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3382;
- goto tr75;
-tr3369:
+ goto tr3452;
+ goto tr77;
+tr3439:
{
s->buffer_length = 0;
}
- goto st1087;
-tr3384:
+ goto st1129;
+tr3454:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1087;
-tr3363:
+ goto st1129;
+tr3433:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -87544,17 +89417,17 @@ tr3363:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1087;
-st1087:
+ goto st1129;
+st1129:
if ( ++p == pe )
- goto _test_eof1087;
-case 1087:
+ goto _test_eof1129;
+case 1129:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -87574,23 +89447,23 @@ case 1087:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3385;
+ goto tr3455;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3384;
- goto tr75;
-tr3357:
+ goto tr3454;
+ goto tr77;
+tr3427:
{
s->buffer_length = 0;
}
- goto st1088;
-tr3386:
+ goto st1130;
+tr3456:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1088;
-tr3351:
+ goto st1130;
+tr3421:
{
s->buffer[s->buffer_length] = 0;
@@ -87603,7 +89476,7 @@ tr3351:
rdata_tail += 4;
} else {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else if (s->buffer_length <= 10) { // Timestamp format.
char *end;
@@ -87612,7 +89485,7 @@ tr3351:
if (end == (char *)(s->buffer) || *end != '\0') {
WARN(ZS_BAD_TIMESTAMP);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->number64 <= UINT32_MAX) {
@@ -87620,21 +89493,21 @@ tr3351:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else {
WARN(ZS_BAD_TIMESTAMP_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1088;
-st1088:
+ goto st1130;
+st1130:
if ( ++p == pe )
- goto _test_eof1088;
-case 1088:
+ goto _test_eof1130;
+case 1130:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -87654,23 +89527,23 @@ case 1088:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3387;
+ goto tr3457;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3386;
- goto tr75;
-tr3345:
+ goto tr3456;
+ goto tr77;
+tr3415:
{
s->buffer_length = 0;
}
- goto st1089;
-tr3388:
+ goto st1131;
+tr3458:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1089;
-tr3339:
+ goto st1131;
+tr3409:
{
s->buffer[s->buffer_length] = 0;
@@ -87683,7 +89556,7 @@ tr3339:
rdata_tail += 4;
} else {
WARN(ret);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else if (s->buffer_length <= 10) { // Timestamp format.
char *end;
@@ -87692,7 +89565,7 @@ tr3339:
if (end == (char *)(s->buffer) || *end != '\0') {
WARN(ZS_BAD_TIMESTAMP);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->number64 <= UINT32_MAX) {
@@ -87700,21 +89573,21 @@ tr3339:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
} else {
WARN(ZS_BAD_TIMESTAMP_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1089;
-st1089:
+ goto st1131;
+st1131:
if ( ++p == pe )
- goto _test_eof1089;
-case 1089:
+ goto _test_eof1131;
+case 1131:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -87734,23 +89607,23 @@ case 1089:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3389;
+ goto tr3459;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3388;
- goto tr75;
-tr3333:
+ goto tr3458;
+ goto tr77;
+tr3403:
{
s->buffer_length = 0;
}
- goto st1090;
-tr3390:
+ goto st1132;
+tr3460:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1090;
-tr3326:
+ goto st1132;
+tr3396:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -87758,17 +89631,17 @@ tr3326:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1090;
-st1090:
+ goto st1132;
+st1132:
if ( ++p == pe )
- goto _test_eof1090;
-case 1090:
+ goto _test_eof1132;
+case 1132:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -87788,40 +89661,40 @@ case 1090:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3391;
+ goto tr3461;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3390;
- goto tr75;
-tr3320:
+ goto tr3460;
+ goto tr77;
+tr3390:
{
s->buffer_length = 0;
}
- goto st1091;
-tr3392:
+ goto st1133;
+tr3462:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1091;
-tr3314:
+ goto st1133;
+tr3384:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1091;
-st1091:
+ goto st1133;
+st1133:
if ( ++p == pe )
- goto _test_eof1091;
-case 1091:
+ goto _test_eof1133;
+case 1133:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -87841,26 +89714,26 @@ case 1091:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3393;
+ goto tr3463;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3392;
- goto tr75;
-tr3307:
+ goto tr3462;
+ goto tr77;
+tr3377:
{
s->buffer_length = 0;
}
- goto st1092;
-tr3394:
+ goto st1134;
+tr3464:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1092;
-st1092:
+ goto st1134;
+st1134:
if ( ++p == pe )
- goto _test_eof1092;
-case 1092:
+ goto _test_eof1134;
+case 1134:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -87880,23 +89753,23 @@ case 1092:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3395;
+ goto tr3465;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3394;
- goto tr75;
-tr3302:
+ goto tr3464;
+ goto tr77;
+tr3372:
{
s->buffer_length = 0;
}
- goto st1093;
-tr3396:
+ goto st1135;
+tr3466:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1093;
-tr3763:
+ goto st1135;
+tr3833:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -87904,305 +89777,311 @@ tr3763:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1093;
-tr3296:
+ goto st1135;
+tr3366:
{ type_num(KNOT_RRTYPE_A, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3404:
+ goto st1135;
+tr3474:
{ type_num(KNOT_RRTYPE_AAAA, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3412:
+ goto st1135;
+tr3482:
{ type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3418:
+ goto st1135;
+tr3488:
{ type_num(KNOT_RRTYPE_APL, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3429:
+ goto st1135;
+tr3499:
{ type_num(KNOT_RRTYPE_CAA, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3440:
+ goto st1135;
+tr3510:
{ type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3445:
+ goto st1135;
+tr3515:
{ type_num(KNOT_RRTYPE_CDS, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3452:
+ goto st1135;
+tr3522:
{ type_num(KNOT_RRTYPE_CERT, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3460:
+ goto st1135;
+tr3530:
{ type_num(KNOT_RRTYPE_CNAME, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3468:
+ goto st1135;
+tr3538:
{ type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3479:
+ goto st1135;
+tr3549:
{ type_num(KNOT_RRTYPE_DHCID, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3488:
+ goto st1135;
+tr3558:
{ type_num(KNOT_RRTYPE_DNAME, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3496:
+ goto st1135;
+tr3566:
{ type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3501:
+ goto st1135;
+tr3571:
{ type_num(KNOT_RRTYPE_DS, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3511:
+ goto st1135;
+tr3581:
{ type_num(KNOT_RRTYPE_EUI48, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3517:
+ goto st1135;
+tr3587:
{ type_num(KNOT_RRTYPE_EUI64, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3527:
+ goto st1135;
+tr3597:
{ type_num(KNOT_RRTYPE_HINFO, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3535:
+ goto st1135;
+tr3605:
{ type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3547:
+ goto st1135;
+tr3617:
{ type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3555:
+ goto st1135;
+tr3625:
{ type_num(KNOT_RRTYPE_KEY, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3560:
+ goto st1135;
+tr3630:
{ type_num(KNOT_RRTYPE_KX, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3570:
+ goto st1135;
+tr3640:
{ type_num(KNOT_RRTYPE_L32, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3576:
+ goto st1135;
+tr3646:
{ type_num(KNOT_RRTYPE_L64, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3582:
+ goto st1135;
+tr3652:
{ type_num(KNOT_RRTYPE_LOC, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3587:
+ goto st1135;
+tr3657:
{ type_num(KNOT_RRTYPE_LP, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3597:
+ goto st1135;
+tr3667:
{ type_num(KNOT_RRTYPE_MINFO, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3602:
+ goto st1135;
+tr3672:
{ type_num(KNOT_RRTYPE_MX, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3613:
+ goto st1135;
+tr3683:
{ type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3619:
+ goto st1135;
+tr3689:
{ type_num(KNOT_RRTYPE_NID, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3625:
+ goto st1135;
+tr3695:
{ type_num(KNOT_RRTYPE_NS, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3632:
+ goto st1135;
+tr3702:
{ type_num(KNOT_RRTYPE_NSEC, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3638:
+ goto st1135;
+tr3708:
{ type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3647:
+ goto st1135;
+tr3717:
{ type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3661:
+ goto st1135;
+tr3731:
{ type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3668:
+ goto st1135;
+tr3738:
{ type_num(KNOT_RRTYPE_PTR, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3676:
+ goto st1135;
+tr3746:
{ type_num(KNOT_RRTYPE_RP, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3684:
+ goto st1135;
+tr3754:
{ type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3689:
+ goto st1135;
+tr3759:
{ type_num(KNOT_RRTYPE_RT, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3704:
+ goto st1135;
+tr3774:
{ type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3710:
+ goto st1135;
+tr3780:
{ type_num(KNOT_RRTYPE_SOA, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3716:
+ goto st1135;
+tr3786:
{ type_num(KNOT_RRTYPE_SPF, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3722:
+ goto st1135;
+tr3792:
{ type_num(KNOT_RRTYPE_SRV, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3730:
+ goto st1135;
+tr3800:
{ type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3737:
+ goto st1135;
+tr3807:
{ type_num(KNOT_RRTYPE_SVCB, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3747:
+ goto st1135;
+tr3817:
{ type_num(KNOT_RRTYPE_TLSA, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3753:
+ goto st1135;
+tr3823:
{ type_num(KNOT_RRTYPE_TXT, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3770:
+ goto st1135;
+tr3840:
{ type_num(KNOT_RRTYPE_URI, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-tr3780:
+ goto st1135;
+tr3850:
+ { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); }
+ {
+ s->buffer_length = 0;
+ }
+ goto st1135;
+tr3860:
{ type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); }
{
s->buffer_length = 0;
}
- goto st1093;
-st1093:
+ goto st1135;
+st1135:
if ( ++p == pe )
- goto _test_eof1093;
-case 1093:
+ goto _test_eof1135;
+case 1135:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -88222,32 +90101,32 @@ case 1093:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3397;
+ goto tr3467;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3396;
- goto tr75;
-st1094:
+ goto tr3466;
+ goto tr77;
+st1136:
if ( ++p == pe )
- goto _test_eof1094;
-case 1094:
+ goto _test_eof1136;
+case 1136:
switch( (*p) ) {
- case 65: goto st1095;
- case 97: goto st1095;
+ case 65: goto st1137;
+ case 97: goto st1137;
}
- goto tr3271;
-st1095:
+ goto tr3340;
+st1137:
if ( ++p == pe )
- goto _test_eof1095;
-case 1095:
+ goto _test_eof1137;
+case 1137:
switch( (*p) ) {
- case 65: goto st1096;
- case 97: goto st1096;
+ case 65: goto st1138;
+ case 97: goto st1138;
}
- goto tr3271;
-st1096:
+ goto tr3340;
+st1138:
if ( ++p == pe )
- goto _test_eof1096;
-case 1096:
+ goto _test_eof1138;
+case 1138:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88261,45 +90140,45 @@ case 1096:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3400;
- case 32: goto tr3400;
- case 40: goto tr3401;
- case 41: goto tr3402;
- case 2058: goto tr3403;
- case 2107: goto tr3404;
+ case 9: goto tr3470;
+ case 32: goto tr3470;
+ case 40: goto tr3471;
+ case 41: goto tr3472;
+ case 2058: goto tr3473;
+ case 2107: goto tr3474;
}
- goto tr3271;
-st1097:
+ goto tr3340;
+st1139:
if ( ++p == pe )
- goto _test_eof1097;
-case 1097:
+ goto _test_eof1139;
+case 1139:
switch( (*p) ) {
- case 83: goto st1098;
- case 115: goto st1098;
+ case 83: goto st1140;
+ case 115: goto st1140;
}
- goto tr3271;
-st1098:
+ goto tr3340;
+st1140:
if ( ++p == pe )
- goto _test_eof1098;
-case 1098:
+ goto _test_eof1140;
+case 1140:
switch( (*p) ) {
- case 68: goto st1099;
- case 100: goto st1099;
+ case 68: goto st1141;
+ case 100: goto st1141;
}
- goto tr3271;
-st1099:
+ goto tr3340;
+st1141:
if ( ++p == pe )
- goto _test_eof1099;
-case 1099:
+ goto _test_eof1141;
+case 1141:
switch( (*p) ) {
- case 66: goto st1100;
- case 98: goto st1100;
+ case 66: goto st1142;
+ case 98: goto st1142;
}
- goto tr3271;
-st1100:
+ goto tr3340;
+st1142:
if ( ++p == pe )
- goto _test_eof1100;
-case 1100:
+ goto _test_eof1142;
+case 1142:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88313,27 +90192,27 @@ case 1100:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3408;
- case 32: goto tr3408;
- case 40: goto tr3409;
- case 41: goto tr3410;
- case 2058: goto tr3411;
- case 2107: goto tr3412;
+ case 9: goto tr3478;
+ case 32: goto tr3478;
+ case 40: goto tr3479;
+ case 41: goto tr3480;
+ case 2058: goto tr3481;
+ case 2107: goto tr3482;
}
- goto tr3271;
-st1101:
+ goto tr3340;
+st1143:
if ( ++p == pe )
- goto _test_eof1101;
-case 1101:
+ goto _test_eof1143;
+case 1143:
switch( (*p) ) {
- case 76: goto st1102;
- case 108: goto st1102;
+ case 76: goto st1144;
+ case 108: goto st1144;
}
- goto tr3271;
-st1102:
+ goto tr3340;
+st1144:
if ( ++p == pe )
- goto _test_eof1102;
-case 1102:
+ goto _test_eof1144;
+case 1144:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88347,44 +90226,44 @@ case 1102:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3414;
- case 32: goto tr3414;
- case 40: goto tr3415;
- case 41: goto tr3416;
- case 2058: goto tr3417;
- case 2107: goto tr3418;
+ case 9: goto tr3484;
+ case 32: goto tr3484;
+ case 40: goto tr3485;
+ case 41: goto tr3486;
+ case 2058: goto tr3487;
+ case 2107: goto tr3488;
}
- goto tr3271;
-st1103:
+ goto tr3340;
+st1145:
if ( ++p == pe )
- goto _test_eof1103;
-case 1103:
+ goto _test_eof1145;
+case 1145:
switch( (*p) ) {
- case 65: goto st1104;
- case 68: goto st1106;
- case 69: goto st1113;
- case 78: goto st1116;
- case 83: goto st1120;
- case 97: goto st1104;
- case 100: goto st1106;
- case 101: goto st1113;
- case 110: goto st1116;
- case 115: goto st1120;
- }
- goto tr3271;
-st1104:
+ case 65: goto st1146;
+ case 68: goto st1148;
+ case 69: goto st1155;
+ case 78: goto st1158;
+ case 83: goto st1162;
+ case 97: goto st1146;
+ case 100: goto st1148;
+ case 101: goto st1155;
+ case 110: goto st1158;
+ case 115: goto st1162;
+ }
+ goto tr3340;
+st1146:
if ( ++p == pe )
- goto _test_eof1104;
-case 1104:
+ goto _test_eof1146;
+case 1146:
switch( (*p) ) {
- case 65: goto st1105;
- case 97: goto st1105;
+ case 65: goto st1147;
+ case 97: goto st1147;
}
- goto tr3271;
-st1105:
+ goto tr3340;
+st1147:
if ( ++p == pe )
- goto _test_eof1105;
-case 1105:
+ goto _test_eof1147;
+case 1147:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88398,65 +90277,65 @@ case 1105:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3425;
- case 32: goto tr3425;
- case 40: goto tr3426;
- case 41: goto tr3427;
- case 2058: goto tr3428;
- case 2107: goto tr3429;
+ case 9: goto tr3495;
+ case 32: goto tr3495;
+ case 40: goto tr3496;
+ case 41: goto tr3497;
+ case 2058: goto tr3498;
+ case 2107: goto tr3499;
}
- goto tr3271;
-st1106:
+ goto tr3340;
+st1148:
if ( ++p == pe )
- goto _test_eof1106;
-case 1106:
+ goto _test_eof1148;
+case 1148:
switch( (*p) ) {
- case 78: goto st1107;
- case 83: goto st1112;
- case 110: goto st1107;
- case 115: goto st1112;
+ case 78: goto st1149;
+ case 83: goto st1154;
+ case 110: goto st1149;
+ case 115: goto st1154;
}
- goto tr3271;
-st1107:
+ goto tr3340;
+st1149:
if ( ++p == pe )
- goto _test_eof1107;
-case 1107:
+ goto _test_eof1149;
+case 1149:
switch( (*p) ) {
- case 83: goto st1108;
- case 115: goto st1108;
+ case 83: goto st1150;
+ case 115: goto st1150;
}
- goto tr3271;
-st1108:
+ goto tr3340;
+st1150:
if ( ++p == pe )
- goto _test_eof1108;
-case 1108:
+ goto _test_eof1150;
+case 1150:
switch( (*p) ) {
- case 75: goto st1109;
- case 107: goto st1109;
+ case 75: goto st1151;
+ case 107: goto st1151;
}
- goto tr3271;
-st1109:
+ goto tr3340;
+st1151:
if ( ++p == pe )
- goto _test_eof1109;
-case 1109:
+ goto _test_eof1151;
+case 1151:
switch( (*p) ) {
- case 69: goto st1110;
- case 101: goto st1110;
+ case 69: goto st1152;
+ case 101: goto st1152;
}
- goto tr3271;
-st1110:
+ goto tr3340;
+st1152:
if ( ++p == pe )
- goto _test_eof1110;
-case 1110:
+ goto _test_eof1152;
+case 1152:
switch( (*p) ) {
- case 89: goto st1111;
- case 121: goto st1111;
+ case 89: goto st1153;
+ case 121: goto st1153;
}
- goto tr3271;
-st1111:
+ goto tr3340;
+st1153:
if ( ++p == pe )
- goto _test_eof1111;
-case 1111:
+ goto _test_eof1153;
+case 1153:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88470,18 +90349,18 @@ case 1111:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3436;
- case 32: goto tr3436;
- case 40: goto tr3437;
- case 41: goto tr3438;
- case 2058: goto tr3439;
- case 2107: goto tr3440;
+ case 9: goto tr3506;
+ case 32: goto tr3506;
+ case 40: goto tr3507;
+ case 41: goto tr3508;
+ case 2058: goto tr3509;
+ case 2107: goto tr3510;
}
- goto tr3271;
-st1112:
+ goto tr3340;
+st1154:
if ( ++p == pe )
- goto _test_eof1112;
-case 1112:
+ goto _test_eof1154;
+case 1154:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88495,36 +90374,36 @@ case 1112:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3441;
- case 32: goto tr3441;
- case 40: goto tr3442;
- case 41: goto tr3443;
- case 2058: goto tr3444;
- case 2107: goto tr3445;
+ case 9: goto tr3511;
+ case 32: goto tr3511;
+ case 40: goto tr3512;
+ case 41: goto tr3513;
+ case 2058: goto tr3514;
+ case 2107: goto tr3515;
}
- goto tr3271;
-st1113:
+ goto tr3340;
+st1155:
if ( ++p == pe )
- goto _test_eof1113;
-case 1113:
+ goto _test_eof1155;
+case 1155:
switch( (*p) ) {
- case 82: goto st1114;
- case 114: goto st1114;
+ case 82: goto st1156;
+ case 114: goto st1156;
}
- goto tr3271;
-st1114:
+ goto tr3340;
+st1156:
if ( ++p == pe )
- goto _test_eof1114;
-case 1114:
+ goto _test_eof1156;
+case 1156:
switch( (*p) ) {
- case 84: goto st1115;
- case 116: goto st1115;
+ case 84: goto st1157;
+ case 116: goto st1157;
}
- goto tr3271;
-st1115:
+ goto tr3340;
+st1157:
if ( ++p == pe )
- goto _test_eof1115;
-case 1115:
+ goto _test_eof1157;
+case 1157:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88538,45 +90417,45 @@ case 1115:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3448;
- case 32: goto tr3448;
- case 40: goto tr3449;
- case 41: goto tr3450;
- case 2058: goto tr3451;
- case 2107: goto tr3452;
+ case 9: goto tr3518;
+ case 32: goto tr3518;
+ case 40: goto tr3519;
+ case 41: goto tr3520;
+ case 2058: goto tr3521;
+ case 2107: goto tr3522;
}
- goto tr3271;
-st1116:
+ goto tr3340;
+st1158:
if ( ++p == pe )
- goto _test_eof1116;
-case 1116:
+ goto _test_eof1158;
+case 1158:
switch( (*p) ) {
- case 65: goto st1117;
- case 97: goto st1117;
+ case 65: goto st1159;
+ case 97: goto st1159;
}
- goto tr3271;
-st1117:
+ goto tr3340;
+st1159:
if ( ++p == pe )
- goto _test_eof1117;
-case 1117:
+ goto _test_eof1159;
+case 1159:
switch( (*p) ) {
- case 77: goto st1118;
- case 109: goto st1118;
+ case 77: goto st1160;
+ case 109: goto st1160;
}
- goto tr3271;
-st1118:
+ goto tr3340;
+st1160:
if ( ++p == pe )
- goto _test_eof1118;
-case 1118:
+ goto _test_eof1160;
+case 1160:
switch( (*p) ) {
- case 69: goto st1119;
- case 101: goto st1119;
+ case 69: goto st1161;
+ case 101: goto st1161;
}
- goto tr3271;
-st1119:
+ goto tr3340;
+st1161:
if ( ++p == pe )
- goto _test_eof1119;
-case 1119:
+ goto _test_eof1161;
+case 1161:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88590,45 +90469,45 @@ case 1119:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3456;
- case 32: goto tr3456;
- case 40: goto tr3457;
- case 41: goto tr3458;
- case 2058: goto tr3459;
- case 2107: goto tr3460;
+ case 9: goto tr3526;
+ case 32: goto tr3526;
+ case 40: goto tr3527;
+ case 41: goto tr3528;
+ case 2058: goto tr3529;
+ case 2107: goto tr3530;
}
- goto tr3271;
-st1120:
+ goto tr3340;
+st1162:
if ( ++p == pe )
- goto _test_eof1120;
-case 1120:
+ goto _test_eof1162;
+case 1162:
switch( (*p) ) {
- case 89: goto st1121;
- case 121: goto st1121;
+ case 89: goto st1163;
+ case 121: goto st1163;
}
- goto tr3271;
-st1121:
+ goto tr3340;
+st1163:
if ( ++p == pe )
- goto _test_eof1121;
-case 1121:
+ goto _test_eof1163;
+case 1163:
switch( (*p) ) {
- case 78: goto st1122;
- case 110: goto st1122;
+ case 78: goto st1164;
+ case 110: goto st1164;
}
- goto tr3271;
-st1122:
+ goto tr3340;
+st1164:
if ( ++p == pe )
- goto _test_eof1122;
-case 1122:
+ goto _test_eof1164;
+case 1164:
switch( (*p) ) {
- case 67: goto st1123;
- case 99: goto st1123;
+ case 67: goto st1165;
+ case 99: goto st1165;
}
- goto tr3271;
-st1123:
+ goto tr3340;
+st1165:
if ( ++p == pe )
- goto _test_eof1123;
-case 1123:
+ goto _test_eof1165;
+case 1165:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88642,58 +90521,58 @@ case 1123:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3464;
- case 32: goto tr3464;
- case 40: goto tr3465;
- case 41: goto tr3466;
- case 2058: goto tr3467;
- case 2107: goto tr3468;
+ case 9: goto tr3534;
+ case 32: goto tr3534;
+ case 40: goto tr3535;
+ case 41: goto tr3536;
+ case 2058: goto tr3537;
+ case 2107: goto tr3538;
}
- goto tr3271;
-st1124:
+ goto tr3340;
+st1166:
if ( ++p == pe )
- goto _test_eof1124;
-case 1124:
+ goto _test_eof1166;
+case 1166:
switch( (*p) ) {
- case 72: goto st1125;
- case 78: goto st1129;
- case 83: goto st1137;
- case 104: goto st1125;
- case 110: goto st1129;
- case 115: goto st1137;
+ case 72: goto st1167;
+ case 78: goto st1171;
+ case 83: goto st1179;
+ case 104: goto st1167;
+ case 110: goto st1171;
+ case 115: goto st1179;
}
- goto tr3271;
-st1125:
+ goto tr3340;
+st1167:
if ( ++p == pe )
- goto _test_eof1125;
-case 1125:
+ goto _test_eof1167;
+case 1167:
switch( (*p) ) {
- case 67: goto st1126;
- case 99: goto st1126;
+ case 67: goto st1168;
+ case 99: goto st1168;
}
- goto tr3271;
-st1126:
+ goto tr3340;
+st1168:
if ( ++p == pe )
- goto _test_eof1126;
-case 1126:
+ goto _test_eof1168;
+case 1168:
switch( (*p) ) {
- case 73: goto st1127;
- case 105: goto st1127;
+ case 73: goto st1169;
+ case 105: goto st1169;
}
- goto tr3271;
-st1127:
+ goto tr3340;
+st1169:
if ( ++p == pe )
- goto _test_eof1127;
-case 1127:
+ goto _test_eof1169;
+case 1169:
switch( (*p) ) {
- case 68: goto st1128;
- case 100: goto st1128;
+ case 68: goto st1170;
+ case 100: goto st1170;
}
- goto tr3271;
-st1128:
+ goto tr3340;
+st1170:
if ( ++p == pe )
- goto _test_eof1128;
-case 1128:
+ goto _test_eof1170;
+case 1170:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88707,47 +90586,47 @@ case 1128:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3475;
- case 32: goto tr3475;
- case 40: goto tr3476;
- case 41: goto tr3477;
- case 2058: goto tr3478;
- case 2107: goto tr3479;
+ case 9: goto tr3545;
+ case 32: goto tr3545;
+ case 40: goto tr3546;
+ case 41: goto tr3547;
+ case 2058: goto tr3548;
+ case 2107: goto tr3549;
}
- goto tr3271;
-st1129:
+ goto tr3340;
+st1171:
if ( ++p == pe )
- goto _test_eof1129;
-case 1129:
+ goto _test_eof1171;
+case 1171:
switch( (*p) ) {
- case 65: goto st1130;
- case 83: goto st1133;
- case 97: goto st1130;
- case 115: goto st1133;
+ case 65: goto st1172;
+ case 83: goto st1175;
+ case 97: goto st1172;
+ case 115: goto st1175;
}
- goto tr3271;
-st1130:
+ goto tr3340;
+st1172:
if ( ++p == pe )
- goto _test_eof1130;
-case 1130:
+ goto _test_eof1172;
+case 1172:
switch( (*p) ) {
- case 77: goto st1131;
- case 109: goto st1131;
+ case 77: goto st1173;
+ case 109: goto st1173;
}
- goto tr3271;
-st1131:
+ goto tr3340;
+st1173:
if ( ++p == pe )
- goto _test_eof1131;
-case 1131:
+ goto _test_eof1173;
+case 1173:
switch( (*p) ) {
- case 69: goto st1132;
- case 101: goto st1132;
+ case 69: goto st1174;
+ case 101: goto st1174;
}
- goto tr3271;
-st1132:
+ goto tr3340;
+st1174:
if ( ++p == pe )
- goto _test_eof1132;
-case 1132:
+ goto _test_eof1174;
+case 1174:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88761,45 +90640,45 @@ case 1132:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3484;
- case 32: goto tr3484;
- case 40: goto tr3485;
- case 41: goto tr3486;
- case 2058: goto tr3487;
- case 2107: goto tr3488;
+ case 9: goto tr3554;
+ case 32: goto tr3554;
+ case 40: goto tr3555;
+ case 41: goto tr3556;
+ case 2058: goto tr3557;
+ case 2107: goto tr3558;
}
- goto tr3271;
-st1133:
+ goto tr3340;
+st1175:
if ( ++p == pe )
- goto _test_eof1133;
-case 1133:
+ goto _test_eof1175;
+case 1175:
switch( (*p) ) {
- case 75: goto st1134;
- case 107: goto st1134;
+ case 75: goto st1176;
+ case 107: goto st1176;
}
- goto tr3271;
-st1134:
+ goto tr3340;
+st1176:
if ( ++p == pe )
- goto _test_eof1134;
-case 1134:
+ goto _test_eof1176;
+case 1176:
switch( (*p) ) {
- case 69: goto st1135;
- case 101: goto st1135;
+ case 69: goto st1177;
+ case 101: goto st1177;
}
- goto tr3271;
-st1135:
+ goto tr3340;
+st1177:
if ( ++p == pe )
- goto _test_eof1135;
-case 1135:
+ goto _test_eof1177;
+case 1177:
switch( (*p) ) {
- case 89: goto st1136;
- case 121: goto st1136;
+ case 89: goto st1178;
+ case 121: goto st1178;
}
- goto tr3271;
-st1136:
+ goto tr3340;
+st1178:
if ( ++p == pe )
- goto _test_eof1136;
-case 1136:
+ goto _test_eof1178;
+case 1178:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88813,18 +90692,18 @@ case 1136:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3492;
- case 32: goto tr3492;
- case 40: goto tr3493;
- case 41: goto tr3494;
- case 2058: goto tr3495;
- case 2107: goto tr3496;
+ case 9: goto tr3562;
+ case 32: goto tr3562;
+ case 40: goto tr3563;
+ case 41: goto tr3564;
+ case 2058: goto tr3565;
+ case 2107: goto tr3566;
}
- goto tr3271;
-st1137:
+ goto tr3340;
+st1179:
if ( ++p == pe )
- goto _test_eof1137;
-case 1137:
+ goto _test_eof1179;
+case 1179:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88838,52 +90717,52 @@ case 1137:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3497;
- case 32: goto tr3497;
- case 40: goto tr3498;
- case 41: goto tr3499;
- case 2058: goto tr3500;
- case 2107: goto tr3501;
+ case 9: goto tr3567;
+ case 32: goto tr3567;
+ case 40: goto tr3568;
+ case 41: goto tr3569;
+ case 2058: goto tr3570;
+ case 2107: goto tr3571;
}
- goto tr3271;
-st1138:
+ goto tr3340;
+st1180:
if ( ++p == pe )
- goto _test_eof1138;
-case 1138:
+ goto _test_eof1180;
+case 1180:
switch( (*p) ) {
- case 85: goto st1139;
- case 117: goto st1139;
+ case 85: goto st1181;
+ case 117: goto st1181;
}
- goto tr3271;
-st1139:
+ goto tr3340;
+st1181:
if ( ++p == pe )
- goto _test_eof1139;
-case 1139:
+ goto _test_eof1181;
+case 1181:
switch( (*p) ) {
- case 73: goto st1140;
- case 105: goto st1140;
+ case 73: goto st1182;
+ case 105: goto st1182;
}
- goto tr3271;
-st1140:
+ goto tr3340;
+st1182:
if ( ++p == pe )
- goto _test_eof1140;
-case 1140:
+ goto _test_eof1182;
+case 1182:
switch( (*p) ) {
- case 52: goto st1141;
- case 54: goto st1143;
+ case 52: goto st1183;
+ case 54: goto st1185;
}
- goto tr3271;
-st1141:
+ goto tr3340;
+st1183:
if ( ++p == pe )
- goto _test_eof1141;
-case 1141:
+ goto _test_eof1183;
+case 1183:
if ( (*p) == 56 )
- goto st1142;
- goto tr3271;
-st1142:
+ goto st1184;
+ goto tr3340;
+st1184:
if ( ++p == pe )
- goto _test_eof1142;
-case 1142:
+ goto _test_eof1184;
+case 1184:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88897,25 +90776,25 @@ case 1142:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3507;
- case 32: goto tr3507;
- case 40: goto tr3508;
- case 41: goto tr3509;
- case 2058: goto tr3510;
- case 2107: goto tr3511;
+ case 9: goto tr3577;
+ case 32: goto tr3577;
+ case 40: goto tr3578;
+ case 41: goto tr3579;
+ case 2058: goto tr3580;
+ case 2107: goto tr3581;
}
- goto tr3271;
-st1143:
+ goto tr3340;
+st1185:
if ( ++p == pe )
- goto _test_eof1143;
-case 1143:
+ goto _test_eof1185;
+case 1185:
if ( (*p) == 52 )
- goto st1144;
- goto tr3271;
-st1144:
+ goto st1186;
+ goto tr3340;
+st1186:
if ( ++p == pe )
- goto _test_eof1144;
-case 1144:
+ goto _test_eof1186;
+case 1186:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88929,56 +90808,56 @@ case 1144:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3513;
- case 32: goto tr3513;
- case 40: goto tr3514;
- case 41: goto tr3515;
- case 2058: goto tr3516;
- case 2107: goto tr3517;
+ case 9: goto tr3583;
+ case 32: goto tr3583;
+ case 40: goto tr3584;
+ case 41: goto tr3585;
+ case 2058: goto tr3586;
+ case 2107: goto tr3587;
}
- goto tr3271;
-st1145:
+ goto tr3340;
+st1187:
if ( ++p == pe )
- goto _test_eof1145;
-case 1145:
+ goto _test_eof1187;
+case 1187:
switch( (*p) ) {
- case 73: goto st1146;
- case 84: goto st1150;
- case 105: goto st1146;
- case 116: goto st1150;
+ case 73: goto st1188;
+ case 84: goto st1192;
+ case 105: goto st1188;
+ case 116: goto st1192;
}
- goto tr3271;
-st1146:
+ goto tr3340;
+st1188:
if ( ++p == pe )
- goto _test_eof1146;
-case 1146:
+ goto _test_eof1188;
+case 1188:
switch( (*p) ) {
- case 78: goto st1147;
- case 110: goto st1147;
+ case 78: goto st1189;
+ case 110: goto st1189;
}
- goto tr3271;
-st1147:
+ goto tr3340;
+st1189:
if ( ++p == pe )
- goto _test_eof1147;
-case 1147:
+ goto _test_eof1189;
+case 1189:
switch( (*p) ) {
- case 70: goto st1148;
- case 102: goto st1148;
+ case 70: goto st1190;
+ case 102: goto st1190;
}
- goto tr3271;
-st1148:
+ goto tr3340;
+st1190:
if ( ++p == pe )
- goto _test_eof1148;
-case 1148:
+ goto _test_eof1190;
+case 1190:
switch( (*p) ) {
- case 79: goto st1149;
- case 111: goto st1149;
+ case 79: goto st1191;
+ case 111: goto st1191;
}
- goto tr3271;
-st1149:
+ goto tr3340;
+st1191:
if ( ++p == pe )
- goto _test_eof1149;
-case 1149:
+ goto _test_eof1191;
+case 1191:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -88992,45 +90871,45 @@ case 1149:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3523;
- case 32: goto tr3523;
- case 40: goto tr3524;
- case 41: goto tr3525;
- case 2058: goto tr3526;
- case 2107: goto tr3527;
+ case 9: goto tr3593;
+ case 32: goto tr3593;
+ case 40: goto tr3594;
+ case 41: goto tr3595;
+ case 2058: goto tr3596;
+ case 2107: goto tr3597;
}
- goto tr3271;
-st1150:
+ goto tr3340;
+st1192:
if ( ++p == pe )
- goto _test_eof1150;
-case 1150:
+ goto _test_eof1192;
+case 1192:
switch( (*p) ) {
- case 84: goto st1151;
- case 116: goto st1151;
+ case 84: goto st1193;
+ case 116: goto st1193;
}
- goto tr3271;
-st1151:
+ goto tr3340;
+st1193:
if ( ++p == pe )
- goto _test_eof1151;
-case 1151:
+ goto _test_eof1193;
+case 1193:
switch( (*p) ) {
- case 80: goto st1152;
- case 112: goto st1152;
+ case 80: goto st1194;
+ case 112: goto st1194;
}
- goto tr3271;
-st1152:
+ goto tr3340;
+st1194:
if ( ++p == pe )
- goto _test_eof1152;
-case 1152:
+ goto _test_eof1194;
+case 1194:
switch( (*p) ) {
- case 83: goto st1153;
- case 115: goto st1153;
+ case 83: goto st1195;
+ case 115: goto st1195;
}
- goto tr3271;
-st1153:
+ goto tr3340;
+st1195:
if ( ++p == pe )
- goto _test_eof1153;
-case 1153:
+ goto _test_eof1195;
+case 1195:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89044,81 +90923,81 @@ case 1153:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3531;
- case 32: goto tr3531;
- case 40: goto tr3532;
- case 41: goto tr3533;
- case 2058: goto tr3534;
- case 2107: goto tr3535;
+ case 9: goto tr3601;
+ case 32: goto tr3601;
+ case 40: goto tr3602;
+ case 41: goto tr3603;
+ case 2058: goto tr3604;
+ case 2107: goto tr3605;
}
- goto tr3271;
-st1154:
+ goto tr3340;
+st1196:
if ( ++p == pe )
- goto _test_eof1154;
-case 1154:
+ goto _test_eof1196;
+case 1196:
switch( (*p) ) {
- case 80: goto st1155;
- case 112: goto st1155;
+ case 80: goto st1197;
+ case 112: goto st1197;
}
- goto tr3271;
-st1155:
+ goto tr3340;
+st1197:
if ( ++p == pe )
- goto _test_eof1155;
-case 1155:
+ goto _test_eof1197;
+case 1197:
switch( (*p) ) {
- case 83: goto st1156;
- case 115: goto st1156;
+ case 83: goto st1198;
+ case 115: goto st1198;
}
- goto tr3271;
-st1156:
+ goto tr3340;
+st1198:
if ( ++p == pe )
- goto _test_eof1156;
-case 1156:
+ goto _test_eof1198;
+case 1198:
switch( (*p) ) {
- case 69: goto st1157;
- case 101: goto st1157;
+ case 69: goto st1199;
+ case 101: goto st1199;
}
- goto tr3271;
-st1157:
+ goto tr3340;
+st1199:
if ( ++p == pe )
- goto _test_eof1157;
-case 1157:
+ goto _test_eof1199;
+case 1199:
switch( (*p) ) {
- case 67: goto st1158;
- case 99: goto st1158;
+ case 67: goto st1200;
+ case 99: goto st1200;
}
- goto tr3271;
-st1158:
+ goto tr3340;
+st1200:
if ( ++p == pe )
- goto _test_eof1158;
-case 1158:
+ goto _test_eof1200;
+case 1200:
switch( (*p) ) {
- case 75: goto st1159;
- case 107: goto st1159;
+ case 75: goto st1201;
+ case 107: goto st1201;
}
- goto tr3271;
-st1159:
+ goto tr3340;
+st1201:
if ( ++p == pe )
- goto _test_eof1159;
-case 1159:
+ goto _test_eof1201;
+case 1201:
switch( (*p) ) {
- case 69: goto st1160;
- case 101: goto st1160;
+ case 69: goto st1202;
+ case 101: goto st1202;
}
- goto tr3271;
-st1160:
+ goto tr3340;
+st1202:
if ( ++p == pe )
- goto _test_eof1160;
-case 1160:
+ goto _test_eof1202;
+case 1202:
switch( (*p) ) {
- case 89: goto st1161;
- case 121: goto st1161;
+ case 89: goto st1203;
+ case 121: goto st1203;
}
- goto tr3271;
-st1161:
+ goto tr3340;
+st1203:
if ( ++p == pe )
- goto _test_eof1161;
-case 1161:
+ goto _test_eof1203;
+case 1203:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89132,38 +91011,38 @@ case 1161:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3543;
- case 32: goto tr3543;
- case 40: goto tr3544;
- case 41: goto tr3545;
- case 2058: goto tr3546;
- case 2107: goto tr3547;
+ case 9: goto tr3613;
+ case 32: goto tr3613;
+ case 40: goto tr3614;
+ case 41: goto tr3615;
+ case 2058: goto tr3616;
+ case 2107: goto tr3617;
}
- goto tr3271;
-st1162:
+ goto tr3340;
+st1204:
if ( ++p == pe )
- goto _test_eof1162;
-case 1162:
+ goto _test_eof1204;
+case 1204:
switch( (*p) ) {
- case 69: goto st1163;
- case 88: goto st1165;
- case 101: goto st1163;
- case 120: goto st1165;
+ case 69: goto st1205;
+ case 88: goto st1207;
+ case 101: goto st1205;
+ case 120: goto st1207;
}
- goto tr3271;
-st1163:
+ goto tr3340;
+st1205:
if ( ++p == pe )
- goto _test_eof1163;
-case 1163:
+ goto _test_eof1205;
+case 1205:
switch( (*p) ) {
- case 89: goto st1164;
- case 121: goto st1164;
+ case 89: goto st1206;
+ case 121: goto st1206;
}
- goto tr3271;
-st1164:
+ goto tr3340;
+st1206:
if ( ++p == pe )
- goto _test_eof1164;
-case 1164:
+ goto _test_eof1206;
+case 1206:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89177,18 +91056,18 @@ case 1164:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3551;
- case 32: goto tr3551;
- case 40: goto tr3552;
- case 41: goto tr3553;
- case 2058: goto tr3554;
- case 2107: goto tr3555;
+ case 9: goto tr3621;
+ case 32: goto tr3621;
+ case 40: goto tr3622;
+ case 41: goto tr3623;
+ case 2058: goto tr3624;
+ case 2107: goto tr3625;
}
- goto tr3271;
-st1165:
+ goto tr3340;
+st1207:
if ( ++p == pe )
- goto _test_eof1165;
-case 1165:
+ goto _test_eof1207;
+case 1207:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89202,38 +91081,38 @@ case 1165:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3556;
- case 32: goto tr3556;
- case 40: goto tr3557;
- case 41: goto tr3558;
- case 2058: goto tr3559;
- case 2107: goto tr3560;
+ case 9: goto tr3626;
+ case 32: goto tr3626;
+ case 40: goto tr3627;
+ case 41: goto tr3628;
+ case 2058: goto tr3629;
+ case 2107: goto tr3630;
}
- goto tr3271;
-st1166:
+ goto tr3340;
+st1208:
if ( ++p == pe )
- goto _test_eof1166;
-case 1166:
+ goto _test_eof1208;
+case 1208:
switch( (*p) ) {
- case 51: goto st1167;
- case 54: goto st1169;
- case 79: goto st1171;
- case 80: goto st1173;
- case 111: goto st1171;
- case 112: goto st1173;
+ case 51: goto st1209;
+ case 54: goto st1211;
+ case 79: goto st1213;
+ case 80: goto st1215;
+ case 111: goto st1213;
+ case 112: goto st1215;
}
- goto tr3271;
-st1167:
+ goto tr3340;
+st1209:
if ( ++p == pe )
- goto _test_eof1167;
-case 1167:
+ goto _test_eof1209;
+case 1209:
if ( (*p) == 50 )
- goto st1168;
- goto tr3271;
-st1168:
+ goto st1210;
+ goto tr3340;
+st1210:
if ( ++p == pe )
- goto _test_eof1168;
-case 1168:
+ goto _test_eof1210;
+case 1210:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89247,25 +91126,25 @@ case 1168:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3566;
- case 32: goto tr3566;
- case 40: goto tr3567;
- case 41: goto tr3568;
- case 2058: goto tr3569;
- case 2107: goto tr3570;
+ case 9: goto tr3636;
+ case 32: goto tr3636;
+ case 40: goto tr3637;
+ case 41: goto tr3638;
+ case 2058: goto tr3639;
+ case 2107: goto tr3640;
}
- goto tr3271;
-st1169:
+ goto tr3340;
+st1211:
if ( ++p == pe )
- goto _test_eof1169;
-case 1169:
+ goto _test_eof1211;
+case 1211:
if ( (*p) == 52 )
- goto st1170;
- goto tr3271;
-st1170:
+ goto st1212;
+ goto tr3340;
+st1212:
if ( ++p == pe )
- goto _test_eof1170;
-case 1170:
+ goto _test_eof1212;
+case 1212:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89279,27 +91158,27 @@ case 1170:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3572;
- case 32: goto tr3572;
- case 40: goto tr3573;
- case 41: goto tr3574;
- case 2058: goto tr3575;
- case 2107: goto tr3576;
+ case 9: goto tr3642;
+ case 32: goto tr3642;
+ case 40: goto tr3643;
+ case 41: goto tr3644;
+ case 2058: goto tr3645;
+ case 2107: goto tr3646;
}
- goto tr3271;
-st1171:
+ goto tr3340;
+st1213:
if ( ++p == pe )
- goto _test_eof1171;
-case 1171:
+ goto _test_eof1213;
+case 1213:
switch( (*p) ) {
- case 67: goto st1172;
- case 99: goto st1172;
+ case 67: goto st1214;
+ case 99: goto st1214;
}
- goto tr3271;
-st1172:
+ goto tr3340;
+st1214:
if ( ++p == pe )
- goto _test_eof1172;
-case 1172:
+ goto _test_eof1214;
+case 1214:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89313,18 +91192,18 @@ case 1172:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3578;
- case 32: goto tr3578;
- case 40: goto tr3579;
- case 41: goto tr3580;
- case 2058: goto tr3581;
- case 2107: goto tr3582;
+ case 9: goto tr3648;
+ case 32: goto tr3648;
+ case 40: goto tr3649;
+ case 41: goto tr3650;
+ case 2058: goto tr3651;
+ case 2107: goto tr3652;
}
- goto tr3271;
-st1173:
+ goto tr3340;
+st1215:
if ( ++p == pe )
- goto _test_eof1173;
-case 1173:
+ goto _test_eof1215;
+case 1215:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89338,56 +91217,56 @@ case 1173:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3583;
- case 32: goto tr3583;
- case 40: goto tr3584;
- case 41: goto tr3585;
- case 2058: goto tr3586;
- case 2107: goto tr3587;
+ case 9: goto tr3653;
+ case 32: goto tr3653;
+ case 40: goto tr3654;
+ case 41: goto tr3655;
+ case 2058: goto tr3656;
+ case 2107: goto tr3657;
}
- goto tr3271;
-st1174:
+ goto tr3340;
+st1216:
if ( ++p == pe )
- goto _test_eof1174;
-case 1174:
+ goto _test_eof1216;
+case 1216:
switch( (*p) ) {
- case 73: goto st1175;
- case 88: goto st1179;
- case 105: goto st1175;
- case 120: goto st1179;
+ case 73: goto st1217;
+ case 88: goto st1221;
+ case 105: goto st1217;
+ case 120: goto st1221;
}
- goto tr3271;
-st1175:
+ goto tr3340;
+st1217:
if ( ++p == pe )
- goto _test_eof1175;
-case 1175:
+ goto _test_eof1217;
+case 1217:
switch( (*p) ) {
- case 78: goto st1176;
- case 110: goto st1176;
+ case 78: goto st1218;
+ case 110: goto st1218;
}
- goto tr3271;
-st1176:
+ goto tr3340;
+st1218:
if ( ++p == pe )
- goto _test_eof1176;
-case 1176:
+ goto _test_eof1218;
+case 1218:
switch( (*p) ) {
- case 70: goto st1177;
- case 102: goto st1177;
+ case 70: goto st1219;
+ case 102: goto st1219;
}
- goto tr3271;
-st1177:
+ goto tr3340;
+st1219:
if ( ++p == pe )
- goto _test_eof1177;
-case 1177:
+ goto _test_eof1219;
+case 1219:
switch( (*p) ) {
- case 79: goto st1178;
- case 111: goto st1178;
+ case 79: goto st1220;
+ case 111: goto st1220;
}
- goto tr3271;
-st1178:
+ goto tr3340;
+st1220:
if ( ++p == pe )
- goto _test_eof1178;
-case 1178:
+ goto _test_eof1220;
+case 1220:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89401,18 +91280,18 @@ case 1178:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3593;
- case 32: goto tr3593;
- case 40: goto tr3594;
- case 41: goto tr3595;
- case 2058: goto tr3596;
- case 2107: goto tr3597;
+ case 9: goto tr3663;
+ case 32: goto tr3663;
+ case 40: goto tr3664;
+ case 41: goto tr3665;
+ case 2058: goto tr3666;
+ case 2107: goto tr3667;
}
- goto tr3271;
-st1179:
+ goto tr3340;
+st1221:
if ( ++p == pe )
- goto _test_eof1179;
-case 1179:
+ goto _test_eof1221;
+case 1221:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89426,58 +91305,58 @@ case 1179:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3598;
- case 32: goto tr3598;
- case 40: goto tr3599;
- case 41: goto tr3600;
- case 2058: goto tr3601;
- case 2107: goto tr3602;
+ case 9: goto tr3668;
+ case 32: goto tr3668;
+ case 40: goto tr3669;
+ case 41: goto tr3670;
+ case 2058: goto tr3671;
+ case 2107: goto tr3672;
}
- goto tr3271;
-st1180:
+ goto tr3340;
+st1222:
if ( ++p == pe )
- goto _test_eof1180;
-case 1180:
+ goto _test_eof1222;
+case 1222:
switch( (*p) ) {
- case 65: goto st1181;
- case 73: goto st1185;
- case 83: goto st1187;
- case 97: goto st1181;
- case 105: goto st1185;
- case 115: goto st1187;
+ case 65: goto st1223;
+ case 73: goto st1227;
+ case 83: goto st1229;
+ case 97: goto st1223;
+ case 105: goto st1227;
+ case 115: goto st1229;
}
- goto tr3271;
-st1181:
+ goto tr3340;
+st1223:
if ( ++p == pe )
- goto _test_eof1181;
-case 1181:
+ goto _test_eof1223;
+case 1223:
switch( (*p) ) {
- case 80: goto st1182;
- case 112: goto st1182;
+ case 80: goto st1224;
+ case 112: goto st1224;
}
- goto tr3271;
-st1182:
+ goto tr3340;
+st1224:
if ( ++p == pe )
- goto _test_eof1182;
-case 1182:
+ goto _test_eof1224;
+case 1224:
switch( (*p) ) {
- case 84: goto st1183;
- case 116: goto st1183;
+ case 84: goto st1225;
+ case 116: goto st1225;
}
- goto tr3271;
-st1183:
+ goto tr3340;
+st1225:
if ( ++p == pe )
- goto _test_eof1183;
-case 1183:
+ goto _test_eof1225;
+case 1225:
switch( (*p) ) {
- case 82: goto st1184;
- case 114: goto st1184;
+ case 82: goto st1226;
+ case 114: goto st1226;
}
- goto tr3271;
-st1184:
+ goto tr3340;
+st1226:
if ( ++p == pe )
- goto _test_eof1184;
-case 1184:
+ goto _test_eof1226;
+case 1226:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89491,27 +91370,27 @@ case 1184:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3609;
- case 32: goto tr3609;
- case 40: goto tr3610;
- case 41: goto tr3611;
- case 2058: goto tr3612;
- case 2107: goto tr3613;
+ case 9: goto tr3679;
+ case 32: goto tr3679;
+ case 40: goto tr3680;
+ case 41: goto tr3681;
+ case 2058: goto tr3682;
+ case 2107: goto tr3683;
}
- goto tr3271;
-st1185:
+ goto tr3340;
+st1227:
if ( ++p == pe )
- goto _test_eof1185;
-case 1185:
+ goto _test_eof1227;
+case 1227:
switch( (*p) ) {
- case 68: goto st1186;
- case 100: goto st1186;
+ case 68: goto st1228;
+ case 100: goto st1228;
}
- goto tr3271;
-st1186:
+ goto tr3340;
+st1228:
if ( ++p == pe )
- goto _test_eof1186;
-case 1186:
+ goto _test_eof1228;
+case 1228:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89525,18 +91404,18 @@ case 1186:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3615;
- case 32: goto tr3615;
- case 40: goto tr3616;
- case 41: goto tr3617;
- case 2058: goto tr3618;
- case 2107: goto tr3619;
+ case 9: goto tr3685;
+ case 32: goto tr3685;
+ case 40: goto tr3686;
+ case 41: goto tr3687;
+ case 2058: goto tr3688;
+ case 2107: goto tr3689;
}
- goto tr3271;
-st1187:
+ goto tr3340;
+st1229:
if ( ++p == pe )
- goto _test_eof1187;
-case 1187:
+ goto _test_eof1229;
+case 1229:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89550,29 +91429,29 @@ case 1187:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3620;
- case 32: goto tr3620;
- case 40: goto tr3621;
- case 41: goto tr3622;
- case 69: goto st1188;
- case 101: goto st1188;
- case 2058: goto tr3624;
- case 2107: goto tr3625;
+ case 9: goto tr3690;
+ case 32: goto tr3690;
+ case 40: goto tr3691;
+ case 41: goto tr3692;
+ case 69: goto st1230;
+ case 101: goto st1230;
+ case 2058: goto tr3694;
+ case 2107: goto tr3695;
}
- goto tr3271;
-st1188:
+ goto tr3340;
+st1230:
if ( ++p == pe )
- goto _test_eof1188;
-case 1188:
+ goto _test_eof1230;
+case 1230:
switch( (*p) ) {
- case 67: goto st1189;
- case 99: goto st1189;
+ case 67: goto st1231;
+ case 99: goto st1231;
}
- goto tr3271;
-st1189:
+ goto tr3340;
+st1231:
if ( ++p == pe )
- goto _test_eof1189;
-case 1189:
+ goto _test_eof1231;
+case 1231:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89586,19 +91465,19 @@ case 1189:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3627;
- case 32: goto tr3627;
- case 40: goto tr3628;
- case 41: goto tr3629;
- case 51: goto st1190;
- case 2058: goto tr3631;
- case 2107: goto tr3632;
+ case 9: goto tr3697;
+ case 32: goto tr3697;
+ case 40: goto tr3698;
+ case 41: goto tr3699;
+ case 51: goto st1232;
+ case 2058: goto tr3701;
+ case 2107: goto tr3702;
}
- goto tr3271;
-st1190:
+ goto tr3340;
+st1232:
if ( ++p == pe )
- goto _test_eof1190;
-case 1190:
+ goto _test_eof1232;
+case 1232:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89612,56 +91491,56 @@ case 1190:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3633;
- case 32: goto tr3633;
- case 40: goto tr3634;
- case 41: goto tr3635;
- case 80: goto st1191;
- case 112: goto st1191;
- case 2058: goto tr3637;
- case 2107: goto tr3638;
+ case 9: goto tr3703;
+ case 32: goto tr3703;
+ case 40: goto tr3704;
+ case 41: goto tr3705;
+ case 80: goto st1233;
+ case 112: goto st1233;
+ case 2058: goto tr3707;
+ case 2107: goto tr3708;
}
- goto tr3271;
-st1191:
+ goto tr3340;
+st1233:
if ( ++p == pe )
- goto _test_eof1191;
-case 1191:
+ goto _test_eof1233;
+case 1233:
switch( (*p) ) {
- case 65: goto st1192;
- case 97: goto st1192;
+ case 65: goto st1234;
+ case 97: goto st1234;
}
- goto tr3271;
-st1192:
+ goto tr3340;
+st1234:
if ( ++p == pe )
- goto _test_eof1192;
-case 1192:
+ goto _test_eof1234;
+case 1234:
switch( (*p) ) {
- case 82: goto st1193;
- case 114: goto st1193;
+ case 82: goto st1235;
+ case 114: goto st1235;
}
- goto tr3271;
-st1193:
+ goto tr3340;
+st1235:
if ( ++p == pe )
- goto _test_eof1193;
-case 1193:
+ goto _test_eof1235;
+case 1235:
switch( (*p) ) {
- case 65: goto st1194;
- case 97: goto st1194;
+ case 65: goto st1236;
+ case 97: goto st1236;
}
- goto tr3271;
-st1194:
+ goto tr3340;
+st1236:
if ( ++p == pe )
- goto _test_eof1194;
-case 1194:
+ goto _test_eof1236;
+case 1236:
switch( (*p) ) {
- case 77: goto st1195;
- case 109: goto st1195;
+ case 77: goto st1237;
+ case 109: goto st1237;
}
- goto tr3271;
-st1195:
+ goto tr3340;
+st1237:
if ( ++p == pe )
- goto _test_eof1195;
-case 1195:
+ goto _test_eof1237;
+case 1237:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89675,99 +91554,99 @@ case 1195:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3643;
- case 32: goto tr3643;
- case 40: goto tr3644;
- case 41: goto tr3645;
- case 2058: goto tr3646;
- case 2107: goto tr3647;
+ case 9: goto tr3713;
+ case 32: goto tr3713;
+ case 40: goto tr3714;
+ case 41: goto tr3715;
+ case 2058: goto tr3716;
+ case 2107: goto tr3717;
}
- goto tr3271;
-st1196:
+ goto tr3340;
+st1238:
if ( ++p == pe )
- goto _test_eof1196;
-case 1196:
+ goto _test_eof1238;
+case 1238:
switch( (*p) ) {
- case 80: goto st1197;
- case 112: goto st1197;
+ case 80: goto st1239;
+ case 112: goto st1239;
}
- goto tr3271;
-st1197:
+ goto tr3340;
+st1239:
if ( ++p == pe )
- goto _test_eof1197;
-case 1197:
+ goto _test_eof1239;
+case 1239:
switch( (*p) ) {
- case 69: goto st1198;
- case 101: goto st1198;
+ case 69: goto st1240;
+ case 101: goto st1240;
}
- goto tr3271;
-st1198:
+ goto tr3340;
+st1240:
if ( ++p == pe )
- goto _test_eof1198;
-case 1198:
+ goto _test_eof1240;
+case 1240:
switch( (*p) ) {
- case 78: goto st1199;
- case 110: goto st1199;
+ case 78: goto st1241;
+ case 110: goto st1241;
}
- goto tr3271;
-st1199:
+ goto tr3340;
+st1241:
if ( ++p == pe )
- goto _test_eof1199;
-case 1199:
+ goto _test_eof1241;
+case 1241:
switch( (*p) ) {
- case 80: goto st1200;
- case 112: goto st1200;
+ case 80: goto st1242;
+ case 112: goto st1242;
}
- goto tr3271;
-st1200:
+ goto tr3340;
+st1242:
if ( ++p == pe )
- goto _test_eof1200;
-case 1200:
+ goto _test_eof1242;
+case 1242:
switch( (*p) ) {
- case 71: goto st1201;
- case 103: goto st1201;
+ case 71: goto st1243;
+ case 103: goto st1243;
}
- goto tr3271;
-st1201:
+ goto tr3340;
+st1243:
if ( ++p == pe )
- goto _test_eof1201;
-case 1201:
+ goto _test_eof1243;
+case 1243:
switch( (*p) ) {
- case 80: goto st1202;
- case 112: goto st1202;
+ case 80: goto st1244;
+ case 112: goto st1244;
}
- goto tr3271;
-st1202:
+ goto tr3340;
+st1244:
if ( ++p == pe )
- goto _test_eof1202;
-case 1202:
+ goto _test_eof1244;
+case 1244:
switch( (*p) ) {
- case 75: goto st1203;
- case 107: goto st1203;
+ case 75: goto st1245;
+ case 107: goto st1245;
}
- goto tr3271;
-st1203:
+ goto tr3340;
+st1245:
if ( ++p == pe )
- goto _test_eof1203;
-case 1203:
+ goto _test_eof1245;
+case 1245:
switch( (*p) ) {
- case 69: goto st1204;
- case 101: goto st1204;
+ case 69: goto st1246;
+ case 101: goto st1246;
}
- goto tr3271;
-st1204:
+ goto tr3340;
+st1246:
if ( ++p == pe )
- goto _test_eof1204;
-case 1204:
+ goto _test_eof1246;
+case 1246:
switch( (*p) ) {
- case 89: goto st1205;
- case 121: goto st1205;
+ case 89: goto st1247;
+ case 121: goto st1247;
}
- goto tr3271;
-st1205:
+ goto tr3340;
+st1247:
if ( ++p == pe )
- goto _test_eof1205;
-case 1205:
+ goto _test_eof1247;
+case 1247:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89781,36 +91660,36 @@ case 1205:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3657;
- case 32: goto tr3657;
- case 40: goto tr3658;
- case 41: goto tr3659;
- case 2058: goto tr3660;
- case 2107: goto tr3661;
+ case 9: goto tr3727;
+ case 32: goto tr3727;
+ case 40: goto tr3728;
+ case 41: goto tr3729;
+ case 2058: goto tr3730;
+ case 2107: goto tr3731;
}
- goto tr3271;
-st1206:
+ goto tr3340;
+st1248:
if ( ++p == pe )
- goto _test_eof1206;
-case 1206:
+ goto _test_eof1248;
+case 1248:
switch( (*p) ) {
- case 84: goto st1207;
- case 116: goto st1207;
+ case 84: goto st1249;
+ case 116: goto st1249;
}
- goto tr3271;
-st1207:
+ goto tr3340;
+st1249:
if ( ++p == pe )
- goto _test_eof1207;
-case 1207:
+ goto _test_eof1249;
+case 1249:
switch( (*p) ) {
- case 82: goto st1208;
- case 114: goto st1208;
+ case 82: goto st1250;
+ case 114: goto st1250;
}
- goto tr3271;
-st1208:
+ goto tr3340;
+st1250:
if ( ++p == pe )
- goto _test_eof1208;
-case 1208:
+ goto _test_eof1250;
+case 1250:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89824,31 +91703,31 @@ case 1208:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3664;
- case 32: goto tr3664;
- case 40: goto tr3665;
- case 41: goto tr3666;
- case 2058: goto tr3667;
- case 2107: goto tr3668;
+ case 9: goto tr3734;
+ case 32: goto tr3734;
+ case 40: goto tr3735;
+ case 41: goto tr3736;
+ case 2058: goto tr3737;
+ case 2107: goto tr3738;
}
- goto tr3271;
-st1209:
+ goto tr3340;
+st1251:
if ( ++p == pe )
- goto _test_eof1209;
-case 1209:
+ goto _test_eof1251;
+case 1251:
switch( (*p) ) {
- case 80: goto st1210;
- case 82: goto st1211;
- case 84: goto st1215;
- case 112: goto st1210;
- case 114: goto st1211;
- case 116: goto st1215;
+ case 80: goto st1252;
+ case 82: goto st1253;
+ case 84: goto st1257;
+ case 112: goto st1252;
+ case 114: goto st1253;
+ case 116: goto st1257;
}
- goto tr3271;
-st1210:
+ goto tr3340;
+st1252:
if ( ++p == pe )
- goto _test_eof1210;
-case 1210:
+ goto _test_eof1252;
+case 1252:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89862,45 +91741,45 @@ case 1210:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3672;
- case 32: goto tr3672;
- case 40: goto tr3673;
- case 41: goto tr3674;
- case 2058: goto tr3675;
- case 2107: goto tr3676;
+ case 9: goto tr3742;
+ case 32: goto tr3742;
+ case 40: goto tr3743;
+ case 41: goto tr3744;
+ case 2058: goto tr3745;
+ case 2107: goto tr3746;
}
- goto tr3271;
-st1211:
+ goto tr3340;
+st1253:
if ( ++p == pe )
- goto _test_eof1211;
-case 1211:
+ goto _test_eof1253;
+case 1253:
switch( (*p) ) {
- case 83: goto st1212;
- case 115: goto st1212;
+ case 83: goto st1254;
+ case 115: goto st1254;
}
- goto tr3271;
-st1212:
+ goto tr3340;
+st1254:
if ( ++p == pe )
- goto _test_eof1212;
-case 1212:
+ goto _test_eof1254;
+case 1254:
switch( (*p) ) {
- case 73: goto st1213;
- case 105: goto st1213;
+ case 73: goto st1255;
+ case 105: goto st1255;
}
- goto tr3271;
-st1213:
+ goto tr3340;
+st1255:
if ( ++p == pe )
- goto _test_eof1213;
-case 1213:
+ goto _test_eof1255;
+case 1255:
switch( (*p) ) {
- case 71: goto st1214;
- case 103: goto st1214;
+ case 71: goto st1256;
+ case 103: goto st1256;
}
- goto tr3271;
-st1214:
+ goto tr3340;
+st1256:
if ( ++p == pe )
- goto _test_eof1214;
-case 1214:
+ goto _test_eof1256;
+case 1256:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89914,18 +91793,18 @@ case 1214:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3680;
- case 32: goto tr3680;
- case 40: goto tr3681;
- case 41: goto tr3682;
- case 2058: goto tr3683;
- case 2107: goto tr3684;
+ case 9: goto tr3750;
+ case 32: goto tr3750;
+ case 40: goto tr3751;
+ case 41: goto tr3752;
+ case 2058: goto tr3753;
+ case 2107: goto tr3754;
}
- goto tr3271;
-st1215:
+ goto tr3340;
+st1257:
if ( ++p == pe )
- goto _test_eof1215;
-case 1215:
+ goto _test_eof1257;
+case 1257:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -89939,73 +91818,73 @@ case 1215:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3685;
- case 32: goto tr3685;
- case 40: goto tr3686;
- case 41: goto tr3687;
- case 2058: goto tr3688;
- case 2107: goto tr3689;
+ case 9: goto tr3755;
+ case 32: goto tr3755;
+ case 40: goto tr3756;
+ case 41: goto tr3757;
+ case 2058: goto tr3758;
+ case 2107: goto tr3759;
}
- goto tr3271;
-st1216:
+ goto tr3340;
+st1258:
if ( ++p == pe )
- goto _test_eof1216;
-case 1216:
+ goto _test_eof1258;
+case 1258:
switch( (*p) ) {
- case 77: goto st1217;
- case 79: goto st1222;
- case 80: goto st1224;
- case 82: goto st1226;
- case 83: goto st1228;
- case 86: goto st1232;
- case 109: goto st1217;
- case 111: goto st1222;
- case 112: goto st1224;
- case 114: goto st1226;
- case 115: goto st1228;
- case 118: goto st1232;
- }
- goto tr3271;
-st1217:
+ case 77: goto st1259;
+ case 79: goto st1264;
+ case 80: goto st1266;
+ case 82: goto st1268;
+ case 83: goto st1270;
+ case 86: goto st1274;
+ case 109: goto st1259;
+ case 111: goto st1264;
+ case 112: goto st1266;
+ case 114: goto st1268;
+ case 115: goto st1270;
+ case 118: goto st1274;
+ }
+ goto tr3340;
+st1259:
if ( ++p == pe )
- goto _test_eof1217;
-case 1217:
+ goto _test_eof1259;
+case 1259:
switch( (*p) ) {
- case 73: goto st1218;
- case 105: goto st1218;
+ case 73: goto st1260;
+ case 105: goto st1260;
}
- goto tr3271;
-st1218:
+ goto tr3340;
+st1260:
if ( ++p == pe )
- goto _test_eof1218;
-case 1218:
+ goto _test_eof1260;
+case 1260:
switch( (*p) ) {
- case 77: goto st1219;
- case 109: goto st1219;
+ case 77: goto st1261;
+ case 109: goto st1261;
}
- goto tr3271;
-st1219:
+ goto tr3340;
+st1261:
if ( ++p == pe )
- goto _test_eof1219;
-case 1219:
+ goto _test_eof1261;
+case 1261:
switch( (*p) ) {
- case 69: goto st1220;
- case 101: goto st1220;
+ case 69: goto st1262;
+ case 101: goto st1262;
}
- goto tr3271;
-st1220:
+ goto tr3340;
+st1262:
if ( ++p == pe )
- goto _test_eof1220;
-case 1220:
+ goto _test_eof1262;
+case 1262:
switch( (*p) ) {
- case 65: goto st1221;
- case 97: goto st1221;
+ case 65: goto st1263;
+ case 97: goto st1263;
}
- goto tr3271;
-st1221:
+ goto tr3340;
+st1263:
if ( ++p == pe )
- goto _test_eof1221;
-case 1221:
+ goto _test_eof1263;
+case 1263:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90019,27 +91898,27 @@ case 1221:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3700;
- case 32: goto tr3700;
- case 40: goto tr3701;
- case 41: goto tr3702;
- case 2058: goto tr3703;
- case 2107: goto tr3704;
+ case 9: goto tr3770;
+ case 32: goto tr3770;
+ case 40: goto tr3771;
+ case 41: goto tr3772;
+ case 2058: goto tr3773;
+ case 2107: goto tr3774;
}
- goto tr3271;
-st1222:
+ goto tr3340;
+st1264:
if ( ++p == pe )
- goto _test_eof1222;
-case 1222:
+ goto _test_eof1264;
+case 1264:
switch( (*p) ) {
- case 65: goto st1223;
- case 97: goto st1223;
+ case 65: goto st1265;
+ case 97: goto st1265;
}
- goto tr3271;
-st1223:
+ goto tr3340;
+st1265:
if ( ++p == pe )
- goto _test_eof1223;
-case 1223:
+ goto _test_eof1265;
+case 1265:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90053,27 +91932,27 @@ case 1223:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3706;
- case 32: goto tr3706;
- case 40: goto tr3707;
- case 41: goto tr3708;
- case 2058: goto tr3709;
- case 2107: goto tr3710;
+ case 9: goto tr3776;
+ case 32: goto tr3776;
+ case 40: goto tr3777;
+ case 41: goto tr3778;
+ case 2058: goto tr3779;
+ case 2107: goto tr3780;
}
- goto tr3271;
-st1224:
+ goto tr3340;
+st1266:
if ( ++p == pe )
- goto _test_eof1224;
-case 1224:
+ goto _test_eof1266;
+case 1266:
switch( (*p) ) {
- case 70: goto st1225;
- case 102: goto st1225;
+ case 70: goto st1267;
+ case 102: goto st1267;
}
- goto tr3271;
-st1225:
+ goto tr3340;
+st1267:
if ( ++p == pe )
- goto _test_eof1225;
-case 1225:
+ goto _test_eof1267;
+case 1267:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90087,27 +91966,27 @@ case 1225:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3712;
- case 32: goto tr3712;
- case 40: goto tr3713;
- case 41: goto tr3714;
- case 2058: goto tr3715;
- case 2107: goto tr3716;
+ case 9: goto tr3782;
+ case 32: goto tr3782;
+ case 40: goto tr3783;
+ case 41: goto tr3784;
+ case 2058: goto tr3785;
+ case 2107: goto tr3786;
}
- goto tr3271;
-st1226:
+ goto tr3340;
+st1268:
if ( ++p == pe )
- goto _test_eof1226;
-case 1226:
+ goto _test_eof1268;
+case 1268:
switch( (*p) ) {
- case 86: goto st1227;
- case 118: goto st1227;
+ case 86: goto st1269;
+ case 118: goto st1269;
}
- goto tr3271;
-st1227:
+ goto tr3340;
+st1269:
if ( ++p == pe )
- goto _test_eof1227;
-case 1227:
+ goto _test_eof1269;
+case 1269:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90121,45 +92000,45 @@ case 1227:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3718;
- case 32: goto tr3718;
- case 40: goto tr3719;
- case 41: goto tr3720;
- case 2058: goto tr3721;
- case 2107: goto tr3722;
+ case 9: goto tr3788;
+ case 32: goto tr3788;
+ case 40: goto tr3789;
+ case 41: goto tr3790;
+ case 2058: goto tr3791;
+ case 2107: goto tr3792;
}
- goto tr3271;
-st1228:
+ goto tr3340;
+st1270:
if ( ++p == pe )
- goto _test_eof1228;
-case 1228:
+ goto _test_eof1270;
+case 1270:
switch( (*p) ) {
- case 72: goto st1229;
- case 104: goto st1229;
+ case 72: goto st1271;
+ case 104: goto st1271;
}
- goto tr3271;
-st1229:
+ goto tr3340;
+st1271:
if ( ++p == pe )
- goto _test_eof1229;
-case 1229:
+ goto _test_eof1271;
+case 1271:
switch( (*p) ) {
- case 70: goto st1230;
- case 102: goto st1230;
+ case 70: goto st1272;
+ case 102: goto st1272;
}
- goto tr3271;
-st1230:
+ goto tr3340;
+st1272:
if ( ++p == pe )
- goto _test_eof1230;
-case 1230:
+ goto _test_eof1272;
+case 1272:
switch( (*p) ) {
- case 80: goto st1231;
- case 112: goto st1231;
+ case 80: goto st1273;
+ case 112: goto st1273;
}
- goto tr3271;
-st1231:
+ goto tr3340;
+st1273:
if ( ++p == pe )
- goto _test_eof1231;
-case 1231:
+ goto _test_eof1273;
+case 1273:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90173,36 +92052,36 @@ case 1231:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3726;
- case 32: goto tr3726;
- case 40: goto tr3727;
- case 41: goto tr3728;
- case 2058: goto tr3729;
- case 2107: goto tr3730;
+ case 9: goto tr3796;
+ case 32: goto tr3796;
+ case 40: goto tr3797;
+ case 41: goto tr3798;
+ case 2058: goto tr3799;
+ case 2107: goto tr3800;
}
- goto tr3271;
-st1232:
+ goto tr3340;
+st1274:
if ( ++p == pe )
- goto _test_eof1232;
-case 1232:
+ goto _test_eof1274;
+case 1274:
switch( (*p) ) {
- case 67: goto st1233;
- case 99: goto st1233;
+ case 67: goto st1275;
+ case 99: goto st1275;
}
- goto tr3271;
-st1233:
+ goto tr3340;
+st1275:
if ( ++p == pe )
- goto _test_eof1233;
-case 1233:
+ goto _test_eof1275;
+case 1275:
switch( (*p) ) {
- case 66: goto st1234;
- case 98: goto st1234;
+ case 66: goto st1276;
+ case 98: goto st1276;
}
- goto tr3271;
-st1234:
+ goto tr3340;
+st1276:
if ( ++p == pe )
- goto _test_eof1234;
-case 1234:
+ goto _test_eof1276;
+case 1276:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90216,49 +92095,49 @@ case 1234:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3733;
- case 32: goto tr3733;
- case 40: goto tr3734;
- case 41: goto tr3735;
- case 2058: goto tr3736;
- case 2107: goto tr3737;
+ case 9: goto tr3803;
+ case 32: goto tr3803;
+ case 40: goto tr3804;
+ case 41: goto tr3805;
+ case 2058: goto tr3806;
+ case 2107: goto tr3807;
}
- goto tr3271;
-st1235:
+ goto tr3340;
+st1277:
if ( ++p == pe )
- goto _test_eof1235;
-case 1235:
+ goto _test_eof1277;
+case 1277:
switch( (*p) ) {
- case 76: goto st1236;
- case 88: goto st1239;
- case 89: goto st1241;
- case 108: goto st1236;
- case 120: goto st1239;
- case 121: goto st1241;
+ case 76: goto st1278;
+ case 88: goto st1281;
+ case 89: goto st1283;
+ case 108: goto st1278;
+ case 120: goto st1281;
+ case 121: goto st1283;
}
- goto tr3271;
-st1236:
+ goto tr3340;
+st1278:
if ( ++p == pe )
- goto _test_eof1236;
-case 1236:
+ goto _test_eof1278;
+case 1278:
switch( (*p) ) {
- case 83: goto st1237;
- case 115: goto st1237;
+ case 83: goto st1279;
+ case 115: goto st1279;
}
- goto tr3271;
-st1237:
+ goto tr3340;
+st1279:
if ( ++p == pe )
- goto _test_eof1237;
-case 1237:
+ goto _test_eof1279;
+case 1279:
switch( (*p) ) {
- case 65: goto st1238;
- case 97: goto st1238;
+ case 65: goto st1280;
+ case 97: goto st1280;
}
- goto tr3271;
-st1238:
+ goto tr3340;
+st1280:
if ( ++p == pe )
- goto _test_eof1238;
-case 1238:
+ goto _test_eof1280;
+case 1280:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90272,27 +92151,27 @@ case 1238:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3743;
- case 32: goto tr3743;
- case 40: goto tr3744;
- case 41: goto tr3745;
- case 2058: goto tr3746;
- case 2107: goto tr3747;
+ case 9: goto tr3813;
+ case 32: goto tr3813;
+ case 40: goto tr3814;
+ case 41: goto tr3815;
+ case 2058: goto tr3816;
+ case 2107: goto tr3817;
}
- goto tr3271;
-st1239:
+ goto tr3340;
+st1281:
if ( ++p == pe )
- goto _test_eof1239;
-case 1239:
+ goto _test_eof1281;
+case 1281:
switch( (*p) ) {
- case 84: goto st1240;
- case 116: goto st1240;
+ case 84: goto st1282;
+ case 116: goto st1282;
}
- goto tr3271;
-st1240:
+ goto tr3340;
+st1282:
if ( ++p == pe )
- goto _test_eof1240;
-case 1240:
+ goto _test_eof1282;
+case 1282:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90306,40 +92185,40 @@ case 1240:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3749;
- case 32: goto tr3749;
- case 40: goto tr3750;
- case 41: goto tr3751;
- case 2058: goto tr3752;
- case 2107: goto tr3753;
+ case 9: goto tr3819;
+ case 32: goto tr3819;
+ case 40: goto tr3820;
+ case 41: goto tr3821;
+ case 2058: goto tr3822;
+ case 2107: goto tr3823;
}
- goto tr3271;
-st1241:
+ goto tr3340;
+st1283:
if ( ++p == pe )
- goto _test_eof1241;
-case 1241:
+ goto _test_eof1283;
+case 1283:
switch( (*p) ) {
- case 80: goto st1242;
- case 112: goto st1242;
+ case 80: goto st1284;
+ case 112: goto st1284;
}
- goto tr3271;
-st1242:
+ goto tr3340;
+st1284:
if ( ++p == pe )
- goto _test_eof1242;
-case 1242:
+ goto _test_eof1284;
+case 1284:
switch( (*p) ) {
- case 69: goto st1243;
- case 101: goto st1243;
+ case 69: goto st1285;
+ case 101: goto st1285;
}
- goto tr3271;
-st1243:
+ goto tr3340;
+st1285:
if ( ++p == pe )
- goto _test_eof1243;
-case 1243:
+ goto _test_eof1285;
+case 1285:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3757;
- goto tr3756;
-tr3757:
+ goto tr3827;
+ goto tr3826;
+tr3827:
{
s->number64 = 0;
}
@@ -90354,11 +92233,11 @@ tr3757:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1244;
-tr3761:
+ goto st1286;
+tr3831:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -90370,14 +92249,14 @@ tr3761:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1244;
-st1244:
+ goto st1286;
+st1286:
if ( ++p == pe )
- goto _test_eof1244;
-case 1244:
+ goto _test_eof1286;
+case 1286:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90391,38 +92270,38 @@ case 1244:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3758;
- case 32: goto tr3758;
- case 40: goto tr3759;
- case 41: goto tr3760;
- case 2058: goto tr3762;
- case 2107: goto tr3763;
+ case 9: goto tr3828;
+ case 32: goto tr3828;
+ case 40: goto tr3829;
+ case 41: goto tr3830;
+ case 2058: goto tr3832;
+ case 2107: goto tr3833;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3761;
- goto tr3756;
-st1245:
+ goto tr3831;
+ goto tr3826;
+st1287:
if ( ++p == pe )
- goto _test_eof1245;
-case 1245:
+ goto _test_eof1287;
+case 1287:
switch( (*p) ) {
- case 82: goto st1246;
- case 114: goto st1246;
+ case 82: goto st1288;
+ case 114: goto st1288;
}
- goto tr3271;
-st1246:
+ goto tr3340;
+st1288:
if ( ++p == pe )
- goto _test_eof1246;
-case 1246:
+ goto _test_eof1288;
+case 1288:
switch( (*p) ) {
- case 73: goto st1247;
- case 105: goto st1247;
+ case 73: goto st1289;
+ case 105: goto st1289;
}
- goto tr3271;
-st1247:
+ goto tr3340;
+st1289:
if ( ++p == pe )
- goto _test_eof1247;
-case 1247:
+ goto _test_eof1289;
+case 1289:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90436,63 +92315,63 @@ case 1247:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3766;
- case 32: goto tr3766;
- case 40: goto tr3767;
- case 41: goto tr3768;
- case 2058: goto tr3769;
- case 2107: goto tr3770;
+ case 9: goto tr3836;
+ case 32: goto tr3836;
+ case 40: goto tr3837;
+ case 41: goto tr3838;
+ case 2058: goto tr3839;
+ case 2107: goto tr3840;
}
- goto tr3271;
-st1248:
+ goto tr3340;
+st1290:
if ( ++p == pe )
- goto _test_eof1248;
-case 1248:
+ goto _test_eof1290;
+case 1290:
switch( (*p) ) {
- case 79: goto st1249;
- case 111: goto st1249;
+ case 65: goto st1291;
+ case 97: goto st1291;
}
- goto tr3271;
-st1249:
+ goto tr3340;
+st1291:
if ( ++p == pe )
- goto _test_eof1249;
-case 1249:
+ goto _test_eof1291;
+case 1291:
switch( (*p) ) {
- case 78: goto st1250;
- case 110: goto st1250;
+ case 76: goto st1292;
+ case 108: goto st1292;
}
- goto tr3271;
-st1250:
+ goto tr3340;
+st1292:
if ( ++p == pe )
- goto _test_eof1250;
-case 1250:
+ goto _test_eof1292;
+case 1292:
switch( (*p) ) {
- case 69: goto st1251;
- case 101: goto st1251;
+ case 76: goto st1293;
+ case 108: goto st1293;
}
- goto tr3271;
-st1251:
+ goto tr3340;
+st1293:
if ( ++p == pe )
- goto _test_eof1251;
-case 1251:
+ goto _test_eof1293;
+case 1293:
switch( (*p) ) {
- case 77: goto st1252;
- case 109: goto st1252;
+ case 69: goto st1294;
+ case 101: goto st1294;
}
- goto tr3271;
-st1252:
+ goto tr3340;
+st1294:
if ( ++p == pe )
- goto _test_eof1252;
-case 1252:
+ goto _test_eof1294;
+case 1294:
switch( (*p) ) {
- case 68: goto st1253;
- case 100: goto st1253;
+ case 84: goto st1295;
+ case 116: goto st1295;
}
- goto tr3271;
-st1253:
+ goto tr3340;
+st1295:
if ( ++p == pe )
- goto _test_eof1253;
-case 1253:
+ goto _test_eof1295;
+case 1295:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90506,90 +92385,160 @@ case 1253:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3776;
- case 32: goto tr3776;
- case 40: goto tr3777;
- case 41: goto tr3778;
- case 2058: goto tr3779;
- case 2107: goto tr3780;
+ case 9: goto tr3846;
+ case 32: goto tr3846;
+ case 40: goto tr3847;
+ case 41: goto tr3848;
+ case 2058: goto tr3849;
+ case 2107: goto tr3850;
}
- goto tr3271;
-st1254:
+ goto tr3340;
+st1296:
if ( ++p == pe )
- goto _test_eof1254;
-case 1254:
+ goto _test_eof1296;
+case 1296:
+ switch( (*p) ) {
+ case 79: goto st1297;
+ case 111: goto st1297;
+ }
+ goto tr3340;
+st1297:
+ if ( ++p == pe )
+ goto _test_eof1297;
+case 1297:
+ switch( (*p) ) {
+ case 78: goto st1298;
+ case 110: goto st1298;
+ }
+ goto tr3340;
+st1298:
+ if ( ++p == pe )
+ goto _test_eof1298;
+case 1298:
+ switch( (*p) ) {
+ case 69: goto st1299;
+ case 101: goto st1299;
+ }
+ goto tr3340;
+st1299:
+ if ( ++p == pe )
+ goto _test_eof1299;
+case 1299:
+ switch( (*p) ) {
+ case 77: goto st1300;
+ case 109: goto st1300;
+ }
+ goto tr3340;
+st1300:
+ if ( ++p == pe )
+ goto _test_eof1300;
+case 1300:
+ switch( (*p) ) {
+ case 68: goto st1301;
+ case 100: goto st1301;
+ }
+ goto tr3340;
+st1301:
+ if ( ++p == pe )
+ goto _test_eof1301;
+case 1301:
+ _widec = (*p);
+ if ( (*p) > 10 ) {
+ if ( 59 <= (*p) && (*p) <= 59 ) {
+ _widec = (short)(1664 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ }
+ } else if ( (*p) >= 10 ) {
+ _widec = (short)(1664 + ((*p) - -128));
+ if (
+ s->multiline ) _widec += 256;
+ }
+ switch( _widec ) {
+ case 9: goto tr3856;
+ case 32: goto tr3856;
+ case 40: goto tr3857;
+ case 41: goto tr3858;
+ case 2058: goto tr3859;
+ case 2107: goto tr3860;
+ }
+ goto tr3340;
+st1302:
+ if ( ++p == pe )
+ goto _test_eof1302;
+case 1302:
switch( (*p) ) {
- case 42: goto tr3781;
- case 92: goto tr3781;
- case 95: goto tr3781;
+ case 42: goto tr3861;
+ case 92: goto tr3861;
+ case 95: goto tr3861;
}
if ( (*p) < 64 ) {
if ( 45 <= (*p) && (*p) <= 57 )
- goto tr3781;
+ goto tr3861;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr3781;
+ goto tr3861;
} else
- goto tr3781;
- goto tr75;
-tr3781:
+ goto tr3861;
+ goto tr77;
+tr3861:
{
s->dname = rdata_tail;
}
- { p--; {stack[top++] = 1255;goto st309;} }
- goto st1255;
-st1255:
+ { p--; {stack[top++] = 1303;goto st318;} }
+ goto st1303;
+st1303:
if ( ++p == pe )
- goto _test_eof1255;
-case 1255:
+ goto _test_eof1303;
+case 1303:
switch( (*p) ) {
- case 32: goto tr3782;
- case 59: goto tr3782;
+ case 32: goto tr3862;
+ case 59: goto tr3862;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr3782;
+ goto tr3862;
} else if ( (*p) >= 9 )
- goto tr3782;
- goto tr75;
-tr3782:
+ goto tr3862;
+ goto tr77;
+tr3862:
{
rdata_tail += s->dname_tmp_length;
}
- { p--; {stack[top++] = 1256;goto st376;} }
- goto st1256;
-st1256:
+ { p--; {stack[top++] = 1304;goto st385;} }
+ goto st1304;
+st1304:
if ( ++p == pe )
- goto _test_eof1256;
-case 1256:
+ goto _test_eof1304;
+case 1304:
switch( (*p) ) {
- case 32: goto tr3783;
- case 59: goto tr3783;
+ case 32: goto tr3863;
+ case 59: goto tr3863;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr3783;
+ goto tr3863;
} else if ( (*p) >= 9 )
- goto tr3783;
- goto tr75;
-tr3783:
+ goto tr3863;
+ goto tr77;
+tr3863:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1474;
-st1474:
+ goto st1522;
+st1522:
if ( ++p == pe )
- goto _test_eof1474;
-case 1474:
+ goto _test_eof1522;
+case 1522:
goto st0;
-st1257:
+st1305:
if ( ++p == pe )
- goto _test_eof1257;
-case 1257:
+ goto _test_eof1305;
+case 1305:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3784;
- goto tr2327;
-tr3784:
+ goto tr3864;
+ goto tr2396;
+tr3864:
{
s->number64 = 0;
}
@@ -90604,11 +92553,11 @@ tr3784:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1258;
-tr3788:
+ goto st1306;
+tr3868:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -90620,14 +92569,14 @@ tr3788:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1258;
-st1258:
+ goto st1306;
+st1306:
if ( ++p == pe )
- goto _test_eof1258;
-case 1258:
+ goto _test_eof1306;
+case 1306:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90641,40 +92590,40 @@ case 1258:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3785;
- case 32: goto tr3785;
- case 40: goto tr3786;
- case 41: goto tr3787;
- case 2058: goto tr3789;
- case 2107: goto tr3790;
+ case 9: goto tr3865;
+ case 32: goto tr3865;
+ case 40: goto tr3866;
+ case 41: goto tr3867;
+ case 2058: goto tr3869;
+ case 2107: goto tr3870;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3788;
- goto tr2327;
-tr3792:
+ goto tr3868;
+ goto tr2396;
+tr3872:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1259;
-tr3793:
+ goto st1307;
+tr3873:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1259;
-tr3795:
+ goto st1307;
+tr3875:
{
s->line_counter++;
}
- goto st1259;
-tr3821:
+ goto st1307;
+tr3901:
{
s->buffer[s->buffer_length++] = 0;
@@ -90684,15 +92633,15 @@ tr3821:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1259; goto _out;}
+ {p++; cs = 1307; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1259;
-tr3785:
+ goto st1307;
+tr3865:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -90700,11 +92649,11 @@ tr3785:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1259;
-tr3786:
+ goto st1307;
+tr3866:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -90712,18 +92661,18 @@ tr3786:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1259;
-tr3787:
+ goto st1307;
+tr3867:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -90731,18 +92680,18 @@ tr3787:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1259;
-tr3789:
+ goto st1307;
+tr3869:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -90750,17 +92699,17 @@ tr3789:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1259;
-st1259:
+ goto st1307;
+st1307:
if ( ++p == pe )
- goto _test_eof1259;
-case 1259:
+ goto _test_eof1307;
+case 1307:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90774,17 +92723,17 @@ case 1259:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1259;
- case 32: goto st1259;
- case 40: goto tr3792;
- case 41: goto tr3793;
- case 2058: goto tr3795;
- case 2107: goto tr3796;
+ case 9: goto st1307;
+ case 32: goto st1307;
+ case 40: goto tr3872;
+ case 41: goto tr3873;
+ case 2058: goto tr3875;
+ case 2107: goto tr3876;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3794;
- goto tr2327;
-tr3794:
+ goto tr3874;
+ goto tr2396;
+tr3874:
{
s->number64 = 0;
}
@@ -90799,11 +92748,11 @@ tr3794:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1260;
-tr3800:
+ goto st1308;
+tr3880:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -90815,14 +92764,14 @@ tr3800:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1260;
-st1260:
+ goto st1308;
+st1308:
if ( ++p == pe )
- goto _test_eof1260;
-case 1260:
+ goto _test_eof1308;
+case 1308:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90836,40 +92785,40 @@ case 1260:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3797;
- case 32: goto tr3797;
- case 40: goto tr3798;
- case 41: goto tr3799;
- case 2058: goto tr3801;
- case 2107: goto tr3802;
+ case 9: goto tr3877;
+ case 32: goto tr3877;
+ case 40: goto tr3878;
+ case 41: goto tr3879;
+ case 2058: goto tr3881;
+ case 2107: goto tr3882;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3800;
- goto tr2327;
-tr3804:
+ goto tr3880;
+ goto tr2396;
+tr3884:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1261;
-tr3805:
+ goto st1309;
+tr3885:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1261;
-tr3807:
+ goto st1309;
+tr3887:
{
s->line_counter++;
}
- goto st1261;
-tr3819:
+ goto st1309;
+tr3899:
{
s->buffer[s->buffer_length++] = 0;
@@ -90879,79 +92828,79 @@ tr3819:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1261; goto _out;}
+ {p++; cs = 1309; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1261;
-tr3797:
+ goto st1309;
+tr3877:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1261;
-tr3798:
+ goto st1309;
+tr3878:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1261;
-tr3799:
+ goto st1309;
+tr3879:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1261;
-tr3801:
+ goto st1309;
+tr3881:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1261;
-st1261:
+ goto st1309;
+st1309:
if ( ++p == pe )
- goto _test_eof1261;
-case 1261:
+ goto _test_eof1309;
+case 1309:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -90965,29 +92914,29 @@ case 1261:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1261;
- case 32: goto st1261;
- case 40: goto tr3804;
- case 41: goto tr3805;
- case 2058: goto tr3807;
- case 2107: goto tr3808;
+ case 9: goto st1309;
+ case 32: goto st1309;
+ case 40: goto tr3884;
+ case 41: goto tr3885;
+ case 2058: goto tr3887;
+ case 2107: goto tr3888;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3806;
+ goto tr3886;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr3806;
+ goto tr3886;
} else
- goto tr3806;
- goto tr75;
-tr3806:
- { p--; {stack[top++] = 1262;goto st699;} }
- goto st1262;
-st1262:
+ goto tr3886;
+ goto tr77;
+tr3886:
+ { p--; {stack[top++] = 1310;goto st741;} }
+ goto st1310;
+st1310:
if ( ++p == pe )
- goto _test_eof1262;
-case 1262:
+ goto _test_eof1310;
+case 1310:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -91001,38 +92950,38 @@ case 1262:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1263;
- case 32: goto st1263;
- case 40: goto tr3810;
- case 41: goto tr3811;
- case 2058: goto tr3812;
- case 2107: goto tr3813;
+ case 9: goto st1311;
+ case 32: goto st1311;
+ case 40: goto tr3890;
+ case 41: goto tr3891;
+ case 2058: goto tr3892;
+ case 2107: goto tr3893;
}
- goto tr75;
-tr3810:
+ goto tr77;
+tr3890:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1263;
-tr3811:
+ goto st1311;
+tr3891:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1263;
-tr3812:
+ goto st1311;
+tr3892:
{
s->line_counter++;
}
- goto st1263;
-tr3817:
+ goto st1311;
+tr3897:
{
s->buffer[s->buffer_length++] = 0;
@@ -91042,18 +92991,18 @@ tr3817:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1263; goto _out;}
+ {p++; cs = 1311; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1263;
-st1263:
+ goto st1311;
+st1311:
if ( ++p == pe )
- goto _test_eof1263;
-case 1263:
+ goto _test_eof1311;
+case 1311:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -91067,30 +93016,30 @@ case 1263:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1263;
- case 32: goto st1263;
- case 40: goto tr3810;
- case 41: goto tr3811;
- case 43: goto tr3814;
- case 2058: goto tr3812;
- case 2107: goto tr3813;
+ case 9: goto st1311;
+ case 32: goto st1311;
+ case 40: goto tr3890;
+ case 41: goto tr3891;
+ case 43: goto tr3894;
+ case 2058: goto tr3892;
+ case 2107: goto tr3893;
}
if ( _widec < 65 ) {
if ( 47 <= _widec && _widec <= 57 )
- goto tr3814;
+ goto tr3894;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr3814;
+ goto tr3894;
} else
- goto tr3814;
- goto tr75;
-tr3814:
- { p--; {stack[top++] = 1264;goto st369;} }
- goto st1264;
-st1264:
+ goto tr3894;
+ goto tr77;
+tr3894:
+ { p--; {stack[top++] = 1312;goto st378;} }
+ goto st1312;
+st1312:
if ( ++p == pe )
- goto _test_eof1264;
-case 1264:
+ goto _test_eof1312;
+case 1312:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -91104,36 +93053,36 @@ case 1264:
!s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 2570: goto tr3815;
- case 2619: goto tr3815;
+ case 2570: goto tr3895;
+ case 2619: goto tr3895;
}
- goto tr75;
-tr3815:
+ goto tr77;
+tr3895:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1475;
-st1475:
+ goto st1523;
+st1523:
if ( ++p == pe )
- goto _test_eof1475;
-case 1475:
+ goto _test_eof1523;
+case 1523:
goto st0;
-tr3813:
+tr3893:
{
s->buffer_length = 0;
}
- goto st1265;
-tr3816:
+ goto st1313;
+tr3896:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1265;
-st1265:
+ goto st1313;
+st1313:
if ( ++p == pe )
- goto _test_eof1265;
-case 1265:
+ goto _test_eof1313;
+case 1313:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -91153,40 +93102,40 @@ case 1265:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3817;
+ goto tr3897;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3816;
- goto tr75;
-tr3808:
+ goto tr3896;
+ goto tr77;
+tr3888:
{
s->buffer_length = 0;
}
- goto st1266;
-tr3818:
+ goto st1314;
+tr3898:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1266;
-tr3802:
+ goto st1314;
+tr3882:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1266;
-st1266:
+ goto st1314;
+st1314:
if ( ++p == pe )
- goto _test_eof1266;
-case 1266:
+ goto _test_eof1314;
+case 1314:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -91206,23 +93155,23 @@ case 1266:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3819;
+ goto tr3899;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3818;
- goto tr75;
-tr3796:
+ goto tr3898;
+ goto tr77;
+tr3876:
{
s->buffer_length = 0;
}
- goto st1267;
-tr3820:
+ goto st1315;
+tr3900:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1267;
-tr3790:
+ goto st1315;
+tr3870:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -91230,17 +93179,17 @@ tr3790:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1267;
-st1267:
+ goto st1315;
+st1315:
if ( ++p == pe )
- goto _test_eof1267;
-case 1267:
+ goto _test_eof1315;
+case 1315:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -91260,32 +93209,32 @@ case 1267:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3821;
+ goto tr3901;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3820;
- goto tr75;
-st1268:
+ goto tr3900;
+ goto tr77;
+st1316:
if ( ++p == pe )
- goto _test_eof1268;
-case 1268:
+ goto _test_eof1316;
+case 1316:
if ( (*p) == 43 )
- goto tr3822;
+ goto tr3902;
if ( (*p) < 65 ) {
if ( 47 <= (*p) && (*p) <= 57 )
- goto tr3822;
+ goto tr3902;
} else if ( (*p) > 90 ) {
if ( 97 <= (*p) && (*p) <= 122 )
- goto tr3822;
+ goto tr3902;
} else
- goto tr3822;
- goto tr75;
-tr3822:
- { p--; {stack[top++] = 1269;goto st369;} }
- goto st1269;
-st1269:
+ goto tr3902;
+ goto tr77;
+tr3902:
+ { p--; {stack[top++] = 1317;goto st378;} }
+ goto st1317;
+st1317:
if ( ++p == pe )
- goto _test_eof1269;
-case 1269:
+ goto _test_eof1317;
+case 1317:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -91299,28 +93248,28 @@ case 1269:
!s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 2570: goto tr3823;
- case 2619: goto tr3823;
+ case 2570: goto tr3903;
+ case 2619: goto tr3903;
}
- goto tr75;
-tr3823:
+ goto tr77;
+tr3903:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1476;
-st1476:
+ goto st1524;
+st1524:
if ( ++p == pe )
- goto _test_eof1476;
-case 1476:
+ goto _test_eof1524;
+case 1524:
goto st0;
-st1270:
+st1318:
if ( ++p == pe )
- goto _test_eof1270;
-case 1270:
+ goto _test_eof1318;
+case 1318:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3824;
- goto tr2327;
-tr3824:
+ goto tr3904;
+ goto tr2396;
+tr3904:
{
s->number64 = 0;
}
@@ -91335,11 +93284,11 @@ tr3824:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1271;
-tr3828:
+ goto st1319;
+tr3908:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -91351,14 +93300,14 @@ tr3828:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1271;
-st1271:
+ goto st1319;
+st1319:
if ( ++p == pe )
- goto _test_eof1271;
-case 1271:
+ goto _test_eof1319;
+case 1319:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -91372,40 +93321,40 @@ case 1271:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3825;
- case 32: goto tr3825;
- case 40: goto tr3826;
- case 41: goto tr3827;
- case 2058: goto tr3829;
- case 2107: goto tr3830;
+ case 9: goto tr3905;
+ case 32: goto tr3905;
+ case 40: goto tr3906;
+ case 41: goto tr3907;
+ case 2058: goto tr3909;
+ case 2107: goto tr3910;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3828;
- goto tr2327;
-tr3832:
+ goto tr3908;
+ goto tr2396;
+tr3912:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1272;
-tr3833:
+ goto st1320;
+tr3913:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1272;
-tr3835:
+ goto st1320;
+tr3915:
{
s->line_counter++;
}
- goto st1272;
-tr3899:
+ goto st1320;
+tr3979:
{
s->buffer[s->buffer_length++] = 0;
@@ -91415,79 +93364,79 @@ tr3899:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1272; goto _out;}
+ {p++; cs = 1320; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1272;
-tr3825:
+ goto st1320;
+tr3905:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1272;
-tr3826:
+ goto st1320;
+tr3906:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1272;
-tr3827:
+ goto st1320;
+tr3907:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1272;
-tr3829:
+ goto st1320;
+tr3909:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1272;
-st1272:
+ goto st1320;
+st1320:
if ( ++p == pe )
- goto _test_eof1272;
-case 1272:
+ goto _test_eof1320;
+case 1320:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -91501,17 +93450,17 @@ case 1272:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1272;
- case 32: goto st1272;
- case 40: goto tr3832;
- case 41: goto tr3833;
- case 2058: goto tr3835;
- case 2107: goto tr3836;
+ case 9: goto st1320;
+ case 32: goto st1320;
+ case 40: goto tr3912;
+ case 41: goto tr3913;
+ case 2058: goto tr3915;
+ case 2107: goto tr3916;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3834;
- goto tr2327;
-tr3834:
+ goto tr3914;
+ goto tr2396;
+tr3914:
{
s->number64 = 0;
}
@@ -91526,11 +93475,11 @@ tr3834:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1273;
-tr3840:
+ goto st1321;
+tr3920:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -91542,14 +93491,14 @@ tr3840:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1273;
-st1273:
+ goto st1321;
+st1321:
if ( ++p == pe )
- goto _test_eof1273;
-case 1273:
+ goto _test_eof1321;
+case 1321:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -91563,40 +93512,40 @@ case 1273:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3837;
- case 32: goto tr3837;
- case 40: goto tr3838;
- case 41: goto tr3839;
- case 2058: goto tr3841;
- case 2107: goto tr3842;
+ case 9: goto tr3917;
+ case 32: goto tr3917;
+ case 40: goto tr3918;
+ case 41: goto tr3919;
+ case 2058: goto tr3921;
+ case 2107: goto tr3922;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3840;
- goto tr2327;
-tr3844:
+ goto tr3920;
+ goto tr2396;
+tr3924:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1274;
-tr3845:
+ goto st1322;
+tr3925:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1274;
-tr3847:
+ goto st1322;
+tr3927:
{
s->line_counter++;
}
- goto st1274;
-tr3897:
+ goto st1322;
+tr3977:
{
s->buffer[s->buffer_length++] = 0;
@@ -91606,79 +93555,79 @@ tr3897:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1274; goto _out;}
+ {p++; cs = 1322; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1274;
-tr3837:
+ goto st1322;
+tr3917:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1274;
-tr3838:
+ goto st1322;
+tr3918:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1274;
-tr3839:
+ goto st1322;
+tr3919:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1274;
-tr3841:
+ goto st1322;
+tr3921:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1274;
-st1274:
+ goto st1322;
+st1322:
if ( ++p == pe )
- goto _test_eof1274;
-case 1274:
+ goto _test_eof1322;
+case 1322:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -91692,17 +93641,17 @@ case 1274:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1274;
- case 32: goto st1274;
- case 40: goto tr3844;
- case 41: goto tr3845;
- case 2058: goto tr3847;
- case 2107: goto tr3848;
+ case 9: goto st1322;
+ case 32: goto st1322;
+ case 40: goto tr3924;
+ case 41: goto tr3925;
+ case 2058: goto tr3927;
+ case 2107: goto tr3928;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3846;
- goto tr2327;
-tr3846:
+ goto tr3926;
+ goto tr2396;
+tr3926:
{
s->number64 = 0;
}
@@ -91717,11 +93666,11 @@ tr3846:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1275;
-tr3852:
+ goto st1323;
+tr3932:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -91733,14 +93682,14 @@ tr3852:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1275;
-st1275:
+ goto st1323;
+st1323:
if ( ++p == pe )
- goto _test_eof1275;
-case 1275:
+ goto _test_eof1323;
+case 1323:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -91754,40 +93703,40 @@ case 1275:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3849;
- case 32: goto tr3849;
- case 40: goto tr3850;
- case 41: goto tr3851;
- case 2058: goto tr3853;
- case 2107: goto tr3854;
+ case 9: goto tr3929;
+ case 32: goto tr3929;
+ case 40: goto tr3930;
+ case 41: goto tr3931;
+ case 2058: goto tr3933;
+ case 2107: goto tr3934;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3852;
- goto tr2327;
-tr3856:
+ goto tr3932;
+ goto tr2396;
+tr3936:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1276;
-tr3857:
+ goto st1324;
+tr3937:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1276;
-tr3860:
+ goto st1324;
+tr3940:
{
s->line_counter++;
}
- goto st1276;
-tr3895:
+ goto st1324;
+tr3975:
{
s->buffer[s->buffer_length++] = 0;
@@ -91797,15 +93746,15 @@ tr3895:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1276; goto _out;}
+ {p++; cs = 1324; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1276;
-tr3849:
+ goto st1324;
+tr3929:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -91813,11 +93762,11 @@ tr3849:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1276;
-tr3850:
+ goto st1324;
+tr3930:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -91825,18 +93774,18 @@ tr3850:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1276;
-tr3851:
+ goto st1324;
+tr3931:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -91844,18 +93793,18 @@ tr3851:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1276;
-tr3853:
+ goto st1324;
+tr3933:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -91863,17 +93812,17 @@ tr3853:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1276;
-st1276:
+ goto st1324;
+st1324:
if ( ++p == pe )
- goto _test_eof1276;
-case 1276:
+ goto _test_eof1324;
+case 1324:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -91887,37 +93836,37 @@ case 1276:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1276;
- case 32: goto st1276;
- case 40: goto tr3856;
- case 41: goto tr3857;
- case 45: goto tr3858;
- case 2058: goto tr3860;
- case 2107: goto tr3861;
+ case 9: goto st1324;
+ case 32: goto st1324;
+ case 40: goto tr3936;
+ case 41: goto tr3937;
+ case 45: goto tr3938;
+ case 2058: goto tr3940;
+ case 2107: goto tr3941;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3859;
+ goto tr3939;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3859;
+ goto tr3939;
} else
- goto tr3859;
- goto tr2998;
-tr3858:
+ goto tr3939;
+ goto tr3067;
+tr3938:
{
if (rdata_tail <= rdata_stop) {
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1277;
-st1277:
+ goto st1325;
+st1325:
if ( ++p == pe )
- goto _test_eof1277;
-case 1277:
+ goto _test_eof1325;
+case 1325:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -91931,38 +93880,38 @@ case 1277:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3862;
- case 32: goto tr3862;
- case 40: goto tr3863;
- case 41: goto tr3864;
- case 2058: goto tr3865;
- case 2107: goto tr3866;
+ case 9: goto tr3942;
+ case 32: goto tr3942;
+ case 40: goto tr3943;
+ case 41: goto tr3944;
+ case 2058: goto tr3945;
+ case 2107: goto tr3946;
}
- goto tr2998;
-tr3869:
+ goto tr3067;
+tr3949:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1278;
-tr3870:
+ goto st1326;
+tr3950:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1278;
-tr3872:
+ goto st1326;
+tr3952:
{
s->line_counter++;
}
- goto st1278;
-tr3891:
+ goto st1326;
+tr3971:
{
s->buffer[s->buffer_length++] = 0;
@@ -91972,95 +93921,95 @@ tr3891:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1278; goto _out;}
+ {p++; cs = 1326; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1278;
-tr3862:
+ goto st1326;
+tr3942:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1278;
-tr3863:
+ goto st1326;
+tr3943:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1278;
-tr3864:
+ goto st1326;
+tr3944:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1278;
-tr3865:
+ goto st1326;
+tr3945:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1278;
-st1278:
+ goto st1326;
+st1326:
if ( ++p == pe )
- goto _test_eof1278;
-case 1278:
+ goto _test_eof1326;
+case 1326:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -92074,29 +94023,29 @@ case 1278:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1278;
- case 32: goto st1278;
- case 40: goto tr3869;
- case 41: goto tr3870;
- case 2058: goto tr3872;
- case 2107: goto tr3873;
+ case 9: goto st1326;
+ case 32: goto st1326;
+ case 40: goto tr3949;
+ case 41: goto tr3950;
+ case 2058: goto tr3952;
+ case 2107: goto tr3953;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3871;
+ goto tr3951;
} else if ( _widec > 86 ) {
if ( 97 <= _widec && _widec <= 118 )
- goto tr3871;
+ goto tr3951;
} else
- goto tr3871;
- goto tr3867;
-tr3871:
+ goto tr3951;
+ goto tr3947;
+tr3951:
{
if (rdata_tail <= rdata_stop) {
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -92104,34 +94053,34 @@ tr3871:
*rdata_tail = first_base32hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1279;
-tr3886:
+ goto st1327;
+tr3966:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_base32hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1279;
-st1279:
+ goto st1327;
+st1327:
if ( ++p == pe )
- goto _test_eof1279;
-case 1279:
+ goto _test_eof1327;
+case 1327:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3874;
+ goto tr3954;
} else if ( (*p) > 86 ) {
if ( 97 <= (*p) && (*p) <= 118 )
- goto tr3874;
+ goto tr3954;
} else
- goto tr3874;
- goto tr3867;
-tr3874:
+ goto tr3954;
+ goto tr3947;
+tr3954:
{
*(rdata_tail++) += second_left_base32hex_to_num[(uint8_t)(*p)];
@@ -92139,44 +94088,44 @@ tr3874:
*rdata_tail = second_right_base32hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1280;
-st1280:
+ goto st1328;
+st1328:
if ( ++p == pe )
- goto _test_eof1280;
-case 1280:
+ goto _test_eof1328;
+case 1328:
if ( (*p) == 61 )
- goto st1291;
+ goto st1339;
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3875;
+ goto tr3955;
} else if ( (*p) > 86 ) {
if ( 97 <= (*p) && (*p) <= 118 )
- goto tr3875;
+ goto tr3955;
} else
- goto tr3875;
- goto tr3867;
-tr3875:
+ goto tr3955;
+ goto tr3947;
+tr3955:
{
*rdata_tail += third_base32hex_to_num[(uint8_t)(*p)];
}
- goto st1281;
-st1281:
+ goto st1329;
+st1329:
if ( ++p == pe )
- goto _test_eof1281;
-case 1281:
+ goto _test_eof1329;
+case 1329:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3877;
+ goto tr3957;
} else if ( (*p) > 86 ) {
if ( 97 <= (*p) && (*p) <= 118 )
- goto tr3877;
+ goto tr3957;
} else
- goto tr3877;
- goto tr3867;
-tr3877:
+ goto tr3957;
+ goto tr3947;
+tr3957:
{
*(rdata_tail++) += fourth_left_base32hex_to_num[(uint8_t)(*p)];
@@ -92184,26 +94133,26 @@ tr3877:
*rdata_tail = fourth_right_base32hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1282;
-st1282:
+ goto st1330;
+st1330:
if ( ++p == pe )
- goto _test_eof1282;
-case 1282:
+ goto _test_eof1330;
+case 1330:
if ( (*p) == 61 )
- goto st1290;
+ goto st1338;
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3878;
+ goto tr3958;
} else if ( (*p) > 86 ) {
if ( 97 <= (*p) && (*p) <= 118 )
- goto tr3878;
+ goto tr3958;
} else
- goto tr3878;
- goto tr3867;
-tr3878:
+ goto tr3958;
+ goto tr3947;
+tr3958:
{
*(rdata_tail++) += fifth_left_base32hex_to_num[(uint8_t)(*p)];
@@ -92211,44 +94160,44 @@ tr3878:
*rdata_tail = fifth_right_base32hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1283;
-st1283:
+ goto st1331;
+st1331:
if ( ++p == pe )
- goto _test_eof1283;
-case 1283:
+ goto _test_eof1331;
+case 1331:
if ( (*p) == 61 )
- goto st1288;
+ goto st1336;
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3880;
+ goto tr3960;
} else if ( (*p) > 86 ) {
if ( 97 <= (*p) && (*p) <= 118 )
- goto tr3880;
+ goto tr3960;
} else
- goto tr3880;
- goto tr3867;
-tr3880:
+ goto tr3960;
+ goto tr3947;
+tr3960:
{
*rdata_tail += sixth_base32hex_to_num[(uint8_t)(*p)];
}
- goto st1284;
-st1284:
+ goto st1332;
+st1332:
if ( ++p == pe )
- goto _test_eof1284;
-case 1284:
+ goto _test_eof1332;
+case 1332:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3882;
+ goto tr3962;
} else if ( (*p) > 86 ) {
if ( 97 <= (*p) && (*p) <= 118 )
- goto tr3882;
+ goto tr3962;
} else
- goto tr3882;
- goto tr3867;
-tr3882:
+ goto tr3962;
+ goto tr3947;
+tr3962:
{
*(rdata_tail++) += seventh_left_base32hex_to_num[(uint8_t)(*p)];
@@ -92256,162 +94205,162 @@ tr3882:
*rdata_tail = seventh_right_base32hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1285;
-st1285:
+ goto st1333;
+st1333:
if ( ++p == pe )
- goto _test_eof1285;
-case 1285:
+ goto _test_eof1333;
+case 1333:
if ( (*p) == 61 )
- goto st1286;
+ goto st1334;
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3883;
+ goto tr3963;
} else if ( (*p) > 86 ) {
if ( 97 <= (*p) && (*p) <= 118 )
- goto tr3883;
+ goto tr3963;
} else
- goto tr3883;
- goto tr3867;
-tr3883:
+ goto tr3963;
+ goto tr3947;
+tr3963:
{
*(rdata_tail++) += eighth_base32hex_to_num[(uint8_t)(*p)];
}
- goto st1286;
-st1286:
+ goto st1334;
+st1334:
if ( ++p == pe )
- goto _test_eof1286;
-case 1286:
+ goto _test_eof1334;
+case 1334:
switch( (*p) ) {
- case 32: goto tr3885;
- case 59: goto tr3885;
+ case 32: goto tr3965;
+ case 59: goto tr3965;
}
if ( (*p) < 48 ) {
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr3885;
+ goto tr3965;
} else if ( (*p) >= 9 )
- goto tr3885;
+ goto tr3965;
} else if ( (*p) > 57 ) {
if ( (*p) > 86 ) {
if ( 97 <= (*p) && (*p) <= 118 )
- goto tr3886;
+ goto tr3966;
} else if ( (*p) >= 65 )
- goto tr3886;
+ goto tr3966;
} else
- goto tr3886;
- goto tr3867;
-tr3885:
+ goto tr3966;
+ goto tr3947;
+tr3965:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 1287;goto st376;} }
- goto st1287;
-st1287:
+ { p--; {stack[top++] = 1335;goto st385;} }
+ goto st1335;
+st1335:
if ( ++p == pe )
- goto _test_eof1287;
-case 1287:
+ goto _test_eof1335;
+case 1335:
switch( (*p) ) {
- case 32: goto tr3887;
- case 59: goto tr3887;
+ case 32: goto tr3967;
+ case 59: goto tr3967;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr3887;
+ goto tr3967;
} else if ( (*p) >= 9 )
- goto tr3887;
- goto tr75;
-tr3887:
+ goto tr3967;
+ goto tr77;
+tr3967:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1477;
-st1477:
+ goto st1525;
+st1525:
if ( ++p == pe )
- goto _test_eof1477;
-case 1477:
+ goto _test_eof1525;
+case 1525:
goto st0;
-st1288:
+st1336:
if ( ++p == pe )
- goto _test_eof1288;
-case 1288:
+ goto _test_eof1336;
+case 1336:
if ( (*p) == 61 )
- goto st1289;
- goto tr3867;
-st1289:
+ goto st1337;
+ goto tr3947;
+st1337:
if ( ++p == pe )
- goto _test_eof1289;
-case 1289:
+ goto _test_eof1337;
+case 1337:
if ( (*p) == 61 )
- goto st1286;
- goto tr3867;
-st1290:
+ goto st1334;
+ goto tr3947;
+st1338:
if ( ++p == pe )
- goto _test_eof1290;
-case 1290:
+ goto _test_eof1338;
+case 1338:
if ( (*p) == 61 )
- goto st1288;
- goto tr3867;
-st1291:
+ goto st1336;
+ goto tr3947;
+st1339:
if ( ++p == pe )
- goto _test_eof1291;
-case 1291:
+ goto _test_eof1339;
+case 1339:
if ( (*p) == 61 )
- goto st1292;
- goto tr3867;
-st1292:
+ goto st1340;
+ goto tr3947;
+st1340:
if ( ++p == pe )
- goto _test_eof1292;
-case 1292:
+ goto _test_eof1340;
+case 1340:
if ( (*p) == 61 )
- goto st1290;
- goto tr3867;
-tr3873:
+ goto st1338;
+ goto tr3947;
+tr3953:
{
s->buffer_length = 0;
}
- goto st1293;
-tr3890:
+ goto st1341;
+tr3970:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1293;
-tr3866:
+ goto st1341;
+tr3946:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1293;
-st1293:
+ goto st1341;
+st1341:
if ( ++p == pe )
- goto _test_eof1293;
-case 1293:
+ goto _test_eof1341;
+case 1341:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -92431,27 +94380,27 @@ case 1293:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3891;
+ goto tr3971;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3890;
- goto tr75;
-tr3893:
+ goto tr3970;
+ goto tr77;
+tr3973:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1294;
-tr3859:
+ goto st1342;
+tr3939:
{
if (rdata_tail <= rdata_stop) {
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -92459,33 +94408,33 @@ tr3859:
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1294;
-st1294:
+ goto st1342;
+st1342:
if ( ++p == pe )
- goto _test_eof1294;
-case 1294:
+ goto _test_eof1342;
+case 1342:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3892;
+ goto tr3972;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr3892;
+ goto tr3972;
} else
- goto tr3892;
- goto tr2998;
-tr3892:
+ goto tr3972;
+ goto tr3067;
+tr3972:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1295;
-st1295:
+ goto st1343;
+st1343:
if ( ++p == pe )
- goto _test_eof1295;
-case 1295:
+ goto _test_eof1343;
+case 1343:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -92499,35 +94448,35 @@ case 1295:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3862;
- case 32: goto tr3862;
- case 40: goto tr3863;
- case 41: goto tr3864;
- case 2058: goto tr3865;
- case 2107: goto tr3866;
+ case 9: goto tr3942;
+ case 32: goto tr3942;
+ case 40: goto tr3943;
+ case 41: goto tr3944;
+ case 2058: goto tr3945;
+ case 2107: goto tr3946;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3893;
+ goto tr3973;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3893;
+ goto tr3973;
} else
- goto tr3893;
- goto tr2998;
-tr3861:
+ goto tr3973;
+ goto tr3067;
+tr3941:
{
s->buffer_length = 0;
}
- goto st1296;
-tr3894:
+ goto st1344;
+tr3974:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1296;
-tr3854:
+ goto st1344;
+tr3934:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -92535,17 +94484,17 @@ tr3854:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1296;
-st1296:
+ goto st1344;
+st1344:
if ( ++p == pe )
- goto _test_eof1296;
-case 1296:
+ goto _test_eof1344;
+case 1344:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -92565,40 +94514,40 @@ case 1296:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3895;
+ goto tr3975;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3894;
- goto tr75;
-tr3848:
+ goto tr3974;
+ goto tr77;
+tr3928:
{
s->buffer_length = 0;
}
- goto st1297;
-tr3896:
+ goto st1345;
+tr3976:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1297;
-tr3842:
+ goto st1345;
+tr3922:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1297;
-st1297:
+ goto st1345;
+st1345:
if ( ++p == pe )
- goto _test_eof1297;
-case 1297:
+ goto _test_eof1345;
+case 1345:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -92618,40 +94567,40 @@ case 1297:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3897;
+ goto tr3977;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3896;
- goto tr75;
-tr3836:
+ goto tr3976;
+ goto tr77;
+tr3916:
{
s->buffer_length = 0;
}
- goto st1298;
-tr3898:
+ goto st1346;
+tr3978:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1298;
-tr3830:
+ goto st1346;
+tr3910:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1298;
-st1298:
+ goto st1346;
+st1346:
if ( ++p == pe )
- goto _test_eof1298;
-case 1298:
+ goto _test_eof1346;
+case 1346:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -92671,18 +94620,18 @@ case 1298:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3899;
+ goto tr3979;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3898;
- goto tr75;
-st1299:
+ goto tr3978;
+ goto tr77;
+st1347:
if ( ++p == pe )
- goto _test_eof1299;
-case 1299:
+ goto _test_eof1347;
+case 1347:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3900;
- goto tr2327;
-tr3900:
+ goto tr3980;
+ goto tr2396;
+tr3980:
{
s->number64 = 0;
}
@@ -92697,11 +94646,11 @@ tr3900:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1300;
-tr3904:
+ goto st1348;
+tr3984:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -92713,14 +94662,14 @@ tr3904:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1300;
-st1300:
+ goto st1348;
+st1348:
if ( ++p == pe )
- goto _test_eof1300;
-case 1300:
+ goto _test_eof1348;
+case 1348:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -92734,40 +94683,40 @@ case 1300:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3901;
- case 32: goto tr3901;
- case 40: goto tr3902;
- case 41: goto tr3903;
- case 2058: goto tr3905;
- case 2107: goto tr3906;
+ case 9: goto tr3981;
+ case 32: goto tr3981;
+ case 40: goto tr3982;
+ case 41: goto tr3983;
+ case 2058: goto tr3985;
+ case 2107: goto tr3986;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3904;
- goto tr2327;
-tr3908:
+ goto tr3984;
+ goto tr2396;
+tr3988:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1301;
-tr3909:
+ goto st1349;
+tr3989:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1301;
-tr3911:
+ goto st1349;
+tr3991:
{
s->line_counter++;
}
- goto st1301;
-tr3946:
+ goto st1349;
+tr4026:
{
s->buffer[s->buffer_length++] = 0;
@@ -92777,79 +94726,79 @@ tr3946:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1301; goto _out;}
+ {p++; cs = 1349; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1301;
-tr3901:
+ goto st1349;
+tr3981:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1301;
-tr3902:
+ goto st1349;
+tr3982:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1301;
-tr3903:
+ goto st1349;
+tr3983:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1301;
-tr3905:
+ goto st1349;
+tr3985:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1301;
-st1301:
+ goto st1349;
+st1349:
if ( ++p == pe )
- goto _test_eof1301;
-case 1301:
+ goto _test_eof1349;
+case 1349:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -92863,17 +94812,17 @@ case 1301:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1301;
- case 32: goto st1301;
- case 40: goto tr3908;
- case 41: goto tr3909;
- case 2058: goto tr3911;
- case 2107: goto tr3912;
+ case 9: goto st1349;
+ case 32: goto st1349;
+ case 40: goto tr3988;
+ case 41: goto tr3989;
+ case 2058: goto tr3991;
+ case 2107: goto tr3992;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3910;
- goto tr2327;
-tr3910:
+ goto tr3990;
+ goto tr2396;
+tr3990:
{
s->number64 = 0;
}
@@ -92888,11 +94837,11 @@ tr3910:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1302;
-tr3916:
+ goto st1350;
+tr3996:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -92904,14 +94853,14 @@ tr3916:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1302;
-st1302:
+ goto st1350;
+st1350:
if ( ++p == pe )
- goto _test_eof1302;
-case 1302:
+ goto _test_eof1350;
+case 1350:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -92925,40 +94874,40 @@ case 1302:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3913;
- case 32: goto tr3913;
- case 40: goto tr3914;
- case 41: goto tr3915;
- case 2058: goto tr3917;
- case 2107: goto tr3918;
+ case 9: goto tr3993;
+ case 32: goto tr3993;
+ case 40: goto tr3994;
+ case 41: goto tr3995;
+ case 2058: goto tr3997;
+ case 2107: goto tr3998;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3916;
- goto tr2327;
-tr3920:
+ goto tr3996;
+ goto tr2396;
+tr4000:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1303;
-tr3921:
+ goto st1351;
+tr4001:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1303;
-tr3923:
+ goto st1351;
+tr4003:
{
s->line_counter++;
}
- goto st1303;
-tr3944:
+ goto st1351;
+tr4024:
{
s->buffer[s->buffer_length++] = 0;
@@ -92968,79 +94917,79 @@ tr3944:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1303; goto _out;}
+ {p++; cs = 1351; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1303;
-tr3913:
+ goto st1351;
+tr3993:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1303;
-tr3914:
+ goto st1351;
+tr3994:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1303;
-tr3915:
+ goto st1351;
+tr3995:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1303;
-tr3917:
+ goto st1351;
+tr3997:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1303;
-st1303:
+ goto st1351;
+st1351:
if ( ++p == pe )
- goto _test_eof1303;
-case 1303:
+ goto _test_eof1351;
+case 1351:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -93054,17 +95003,17 @@ case 1303:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1303;
- case 32: goto st1303;
- case 40: goto tr3920;
- case 41: goto tr3921;
- case 2058: goto tr3923;
- case 2107: goto tr3924;
+ case 9: goto st1351;
+ case 32: goto st1351;
+ case 40: goto tr4000;
+ case 41: goto tr4001;
+ case 2058: goto tr4003;
+ case 2107: goto tr4004;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3922;
- goto tr2327;
-tr3922:
+ goto tr4002;
+ goto tr2396;
+tr4002:
{
s->number64 = 0;
}
@@ -93079,11 +95028,11 @@ tr3922:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1304;
-tr3928:
+ goto st1352;
+tr4008:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -93095,14 +95044,14 @@ tr3928:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1304;
-st1304:
+ goto st1352;
+st1352:
if ( ++p == pe )
- goto _test_eof1304;
-case 1304:
+ goto _test_eof1352;
+case 1352:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -93116,40 +95065,40 @@ case 1304:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3925;
- case 32: goto tr3925;
- case 40: goto tr3926;
- case 41: goto tr3927;
- case 2058: goto tr3929;
- case 2107: goto tr3930;
+ case 9: goto tr4005;
+ case 32: goto tr4005;
+ case 40: goto tr4006;
+ case 41: goto tr4007;
+ case 2058: goto tr4009;
+ case 2107: goto tr4010;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3928;
- goto tr2327;
-tr3932:
+ goto tr4008;
+ goto tr2396;
+tr4012:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1305;
-tr3933:
+ goto st1353;
+tr4013:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1305;
-tr3936:
+ goto st1353;
+tr4016:
{
s->line_counter++;
}
- goto st1305;
-tr3942:
+ goto st1353;
+tr4022:
{
s->buffer[s->buffer_length++] = 0;
@@ -93159,15 +95108,15 @@ tr3942:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1305; goto _out;}
+ {p++; cs = 1353; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1305;
-tr3925:
+ goto st1353;
+tr4005:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -93175,11 +95124,11 @@ tr3925:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1305;
-tr3926:
+ goto st1353;
+tr4006:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -93187,18 +95136,18 @@ tr3926:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1305;
-tr3927:
+ goto st1353;
+tr4007:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -93206,18 +95155,18 @@ tr3927:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1305;
-tr3929:
+ goto st1353;
+tr4009:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -93225,17 +95174,17 @@ tr3929:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1305;
-st1305:
+ goto st1353;
+st1353:
if ( ++p == pe )
- goto _test_eof1305;
-case 1305:
+ goto _test_eof1353;
+case 1353:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -93249,87 +95198,87 @@ case 1305:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1305;
- case 32: goto st1305;
- case 40: goto tr3932;
- case 41: goto tr3933;
- case 45: goto tr3934;
- case 2058: goto tr3936;
- case 2107: goto tr3937;
+ case 9: goto st1353;
+ case 32: goto st1353;
+ case 40: goto tr4012;
+ case 41: goto tr4013;
+ case 45: goto tr4014;
+ case 2058: goto tr4016;
+ case 2107: goto tr4017;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3935;
+ goto tr4015;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3935;
+ goto tr4015;
} else
- goto tr3935;
- goto tr2998;
-tr3934:
+ goto tr4015;
+ goto tr3067;
+tr4014:
{
if (rdata_tail <= rdata_stop) {
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1306;
-st1306:
+ goto st1354;
+st1354:
if ( ++p == pe )
- goto _test_eof1306;
-case 1306:
+ goto _test_eof1354;
+case 1354:
switch( (*p) ) {
- case 32: goto tr3938;
- case 59: goto tr3938;
+ case 32: goto tr4018;
+ case 59: goto tr4018;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr3938;
+ goto tr4018;
} else if ( (*p) >= 9 )
- goto tr3938;
- goto tr2998;
-tr3938:
+ goto tr4018;
+ goto tr3067;
+tr4018:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1478;
-st1478:
+ goto st1526;
+st1526:
if ( ++p == pe )
- goto _test_eof1478;
-case 1478:
+ goto _test_eof1526;
+case 1526:
goto st0;
-tr3940:
+tr4020:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1307;
-tr3935:
+ goto st1355;
+tr4015:
{
if (rdata_tail <= rdata_stop) {
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
@@ -93337,65 +95286,65 @@ tr3935:
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1307;
-st1307:
+ goto st1355;
+st1355:
if ( ++p == pe )
- goto _test_eof1307;
-case 1307:
+ goto _test_eof1355;
+case 1355:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3939;
+ goto tr4019;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr3939;
+ goto tr4019;
} else
- goto tr3939;
- goto tr2998;
-tr3939:
+ goto tr4019;
+ goto tr3067;
+tr4019:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1308;
-st1308:
+ goto st1356;
+st1356:
if ( ++p == pe )
- goto _test_eof1308;
-case 1308:
+ goto _test_eof1356;
+case 1356:
switch( (*p) ) {
- case 32: goto tr3938;
- case 59: goto tr3938;
+ case 32: goto tr4018;
+ case 59: goto tr4018;
}
if ( (*p) < 48 ) {
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr3938;
+ goto tr4018;
} else if ( (*p) >= 9 )
- goto tr3938;
+ goto tr4018;
} else if ( (*p) > 57 ) {
if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr3940;
+ goto tr4020;
} else if ( (*p) >= 65 )
- goto tr3940;
+ goto tr4020;
} else
- goto tr3940;
- goto tr2998;
-tr3937:
+ goto tr4020;
+ goto tr3067;
+tr4017:
{
s->buffer_length = 0;
}
- goto st1309;
-tr3941:
+ goto st1357;
+tr4021:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1309;
-tr3930:
+ goto st1357;
+tr4010:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -93403,17 +95352,17 @@ tr3930:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1309;
-st1309:
+ goto st1357;
+st1357:
if ( ++p == pe )
- goto _test_eof1309;
-case 1309:
+ goto _test_eof1357;
+case 1357:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -93433,40 +95382,40 @@ case 1309:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3942;
+ goto tr4022;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3941;
- goto tr75;
-tr3924:
+ goto tr4021;
+ goto tr77;
+tr4004:
{
s->buffer_length = 0;
}
- goto st1310;
-tr3943:
+ goto st1358;
+tr4023:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1310;
-tr3918:
+ goto st1358;
+tr3998:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1310;
-st1310:
+ goto st1358;
+st1358:
if ( ++p == pe )
- goto _test_eof1310;
-case 1310:
+ goto _test_eof1358;
+case 1358:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -93486,40 +95435,40 @@ case 1310:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3944;
+ goto tr4024;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3943;
- goto tr75;
-tr3912:
+ goto tr4023;
+ goto tr77;
+tr3992:
{
s->buffer_length = 0;
}
- goto st1311;
-tr3945:
+ goto st1359;
+tr4025:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1311;
-tr3906:
+ goto st1359;
+tr3986:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1311;
-st1311:
+ goto st1359;
+st1359:
if ( ++p == pe )
- goto _test_eof1311;
-case 1311:
+ goto _test_eof1359;
+case 1359:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -93539,18 +95488,18 @@ case 1311:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3946;
+ goto tr4026;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3945;
- goto tr75;
-st1312:
+ goto tr4025;
+ goto tr77;
+st1360:
if ( ++p == pe )
- goto _test_eof1312;
-case 1312:
+ goto _test_eof1360;
+case 1360:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3947;
- goto tr2327;
-tr3947:
+ goto tr4027;
+ goto tr2396;
+tr4027:
{
s->number64 = 0;
}
@@ -93565,11 +95514,11 @@ tr3947:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1313;
-tr3951:
+ goto st1361;
+tr4031:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -93581,14 +95530,14 @@ tr3951:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1313;
-st1313:
+ goto st1361;
+st1361:
if ( ++p == pe )
- goto _test_eof1313;
-case 1313:
+ goto _test_eof1361;
+case 1361:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -93602,40 +95551,40 @@ case 1313:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3948;
- case 32: goto tr3948;
- case 40: goto tr3949;
- case 41: goto tr3950;
- case 2058: goto tr3952;
- case 2107: goto tr3953;
+ case 9: goto tr4028;
+ case 32: goto tr4028;
+ case 40: goto tr4029;
+ case 41: goto tr4030;
+ case 2058: goto tr4032;
+ case 2107: goto tr4033;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3951;
- goto tr2327;
-tr3955:
+ goto tr4031;
+ goto tr2396;
+tr4035:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1314;
-tr3956:
+ goto st1362;
+tr4036:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1314;
-tr3958:
+ goto st1362;
+tr4038:
{
s->line_counter++;
}
- goto st1314;
-tr4000:
+ goto st1362;
+tr4080:
{
s->buffer[s->buffer_length++] = 0;
@@ -93645,79 +95594,79 @@ tr4000:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1314; goto _out;}
+ {p++; cs = 1362; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1314;
-tr3948:
+ goto st1362;
+tr4028:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1314;
-tr3949:
+ goto st1362;
+tr4029:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1314;
-tr3950:
+ goto st1362;
+tr4030:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1314;
-tr3952:
+ goto st1362;
+tr4032:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1314;
-st1314:
+ goto st1362;
+st1362:
if ( ++p == pe )
- goto _test_eof1314;
-case 1314:
+ goto _test_eof1362;
+case 1362:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -93731,17 +95680,17 @@ case 1314:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1314;
- case 32: goto st1314;
- case 40: goto tr3955;
- case 41: goto tr3956;
- case 2058: goto tr3958;
- case 2107: goto tr3959;
+ case 9: goto st1362;
+ case 32: goto st1362;
+ case 40: goto tr4035;
+ case 41: goto tr4036;
+ case 2058: goto tr4038;
+ case 2107: goto tr4039;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3957;
- goto tr2327;
-tr3957:
+ goto tr4037;
+ goto tr2396;
+tr4037:
{
s->number64 = 0;
}
@@ -93756,11 +95705,11 @@ tr3957:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1315;
-tr3963:
+ goto st1363;
+tr4043:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -93772,14 +95721,14 @@ tr3963:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1315;
-st1315:
+ goto st1363;
+st1363:
if ( ++p == pe )
- goto _test_eof1315;
-case 1315:
+ goto _test_eof1363;
+case 1363:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -93793,40 +95742,40 @@ case 1315:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3960;
- case 32: goto tr3960;
- case 40: goto tr3961;
- case 41: goto tr3962;
- case 2058: goto tr3964;
- case 2107: goto tr3965;
+ case 9: goto tr4040;
+ case 32: goto tr4040;
+ case 40: goto tr4041;
+ case 41: goto tr4042;
+ case 2058: goto tr4044;
+ case 2107: goto tr4045;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3963;
- goto tr2327;
-tr3967:
+ goto tr4043;
+ goto tr2396;
+tr4047:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1316;
-tr3968:
+ goto st1364;
+tr4048:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1316;
-tr3970:
+ goto st1364;
+tr4050:
{
s->line_counter++;
}
- goto st1316;
-tr3998:
+ goto st1364;
+tr4078:
{
s->buffer[s->buffer_length++] = 0;
@@ -93836,79 +95785,79 @@ tr3998:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1316; goto _out;}
+ {p++; cs = 1364; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1316;
-tr3960:
+ goto st1364;
+tr4040:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1316;
-tr3961:
+ goto st1364;
+tr4041:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1316;
-tr3962:
+ goto st1364;
+tr4042:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1316;
-tr3964:
+ goto st1364;
+tr4044:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1316;
-st1316:
+ goto st1364;
+st1364:
if ( ++p == pe )
- goto _test_eof1316;
-case 1316:
+ goto _test_eof1364;
+case 1364:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -93922,17 +95871,17 @@ case 1316:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1316;
- case 32: goto st1316;
- case 40: goto tr3967;
- case 41: goto tr3968;
- case 2058: goto tr3970;
- case 2107: goto tr3971;
+ case 9: goto st1364;
+ case 32: goto st1364;
+ case 40: goto tr4047;
+ case 41: goto tr4048;
+ case 2058: goto tr4050;
+ case 2107: goto tr4051;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3969;
- goto tr2327;
-tr3969:
+ goto tr4049;
+ goto tr2396;
+tr4049:
{
s->number64 = 0;
}
@@ -93947,11 +95896,11 @@ tr3969:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1317;
-tr3975:
+ goto st1365;
+tr4055:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -93963,14 +95912,14 @@ tr3975:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1317;
-st1317:
+ goto st1365;
+st1365:
if ( ++p == pe )
- goto _test_eof1317;
-case 1317:
+ goto _test_eof1365;
+case 1365:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -93984,40 +95933,40 @@ case 1317:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr3972;
- case 32: goto tr3972;
- case 40: goto tr3973;
- case 41: goto tr3974;
- case 2058: goto tr3976;
- case 2107: goto tr3977;
+ case 9: goto tr4052;
+ case 32: goto tr4052;
+ case 40: goto tr4053;
+ case 41: goto tr4054;
+ case 2058: goto tr4056;
+ case 2107: goto tr4057;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr3975;
- goto tr2327;
-tr3979:
+ goto tr4055;
+ goto tr2396;
+tr4059:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1318;
-tr3980:
+ goto st1366;
+tr4060:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1318;
-tr3982:
+ goto st1366;
+tr4062:
{
s->line_counter++;
}
- goto st1318;
-tr3996:
+ goto st1366;
+tr4076:
{
s->buffer[s->buffer_length++] = 0;
@@ -94027,79 +95976,79 @@ tr3996:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1318; goto _out;}
+ {p++; cs = 1366; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1318;
-tr3972:
+ goto st1366;
+tr4052:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1318;
-tr3973:
+ goto st1366;
+tr4053:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1318;
-tr3974:
+ goto st1366;
+tr4054:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1318;
-tr3976:
+ goto st1366;
+tr4056:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1318;
-st1318:
+ goto st1366;
+st1366:
if ( ++p == pe )
- goto _test_eof1318;
-case 1318:
+ goto _test_eof1366;
+case 1366:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -94113,69 +96062,69 @@ case 1318:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1318;
- case 32: goto st1318;
- case 40: goto tr3979;
- case 41: goto tr3980;
- case 2058: goto tr3982;
- case 2107: goto tr3983;
+ case 9: goto st1366;
+ case 32: goto st1366;
+ case 40: goto tr4059;
+ case 41: goto tr4060;
+ case 2058: goto tr4062;
+ case 2107: goto tr4063;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3981;
+ goto tr4061;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3981;
+ goto tr4061;
} else
- goto tr3981;
- goto tr2998;
-tr3981:
+ goto tr4061;
+ goto tr3067;
+tr4061:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1319;
-st1319:
+ goto st1367;
+st1367:
if ( ++p == pe )
- goto _test_eof1319;
-case 1319:
+ goto _test_eof1367;
+case 1367:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr3984;
+ goto tr4064;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr3984;
+ goto tr4064;
} else
- goto tr3984;
- goto tr2998;
-tr3986:
+ goto tr4064;
+ goto tr3067;
+tr4066:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1320;
-tr3987:
+ goto st1368;
+tr4067:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1320;
-tr3988:
+ goto st1368;
+tr4068:
{
s->line_counter++;
}
- goto st1320;
-tr3994:
+ goto st1368;
+tr4074:
{
s->buffer[s->buffer_length++] = 0;
@@ -94185,24 +96134,24 @@ tr3994:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1320; goto _out;}
+ {p++; cs = 1368; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1320;
-tr3984:
+ goto st1368;
+tr4064:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1320;
-st1320:
+ goto st1368;
+st1368:
if ( ++p == pe )
- goto _test_eof1320;
-case 1320:
+ goto _test_eof1368;
+case 1368:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -94220,42 +96169,42 @@ case 1320:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st1320;
- case 32: goto st1320;
- case 40: goto tr3986;
- case 41: goto tr3987;
- case 3082: goto tr3988;
- case 3131: goto tr3989;
- case 3338: goto tr3990;
- case 3387: goto tr3990;
- case 3594: goto tr3991;
- case 3643: goto tr3992;
+ case 9: goto st1368;
+ case 32: goto st1368;
+ case 40: goto tr4066;
+ case 41: goto tr4067;
+ case 3082: goto tr4068;
+ case 3131: goto tr4069;
+ case 3338: goto tr4070;
+ case 3387: goto tr4070;
+ case 3594: goto tr4071;
+ case 3643: goto tr4072;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3981;
+ goto tr4061;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3981;
+ goto tr4061;
} else
- goto tr3981;
- goto tr2998;
-tr3989:
+ goto tr4061;
+ goto tr3067;
+tr4069:
{
s->buffer_length = 0;
}
- goto st1321;
-tr3993:
+ goto st1369;
+tr4073:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1321;
-st1321:
+ goto st1369;
+st1369:
if ( ++p == pe )
- goto _test_eof1321;
-case 1321:
+ goto _test_eof1369;
+case 1369:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -94275,32 +96224,32 @@ case 1321:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3994;
+ goto tr4074;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3993;
- goto tr2998;
-tr3990:
+ goto tr4073;
+ goto tr3067;
+tr4070:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1479;
-st1479:
+ goto st1527;
+st1527:
if ( ++p == pe )
- goto _test_eof1479;
-case 1479:
+ goto _test_eof1527;
+case 1527:
goto st0;
-tr3991:
+tr4071:
{
s->line_counter++;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1480;
-st1480:
+ goto st1528;
+st1528:
if ( ++p == pe )
- goto _test_eof1480;
-case 1480:
+ goto _test_eof1528;
+case 1528:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -94318,38 +96267,38 @@ case 1480:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st1320;
- case 32: goto st1320;
- case 40: goto tr3986;
- case 41: goto tr3987;
- case 3082: goto tr3988;
- case 3131: goto tr3989;
- case 3338: goto tr3990;
- case 3387: goto tr3990;
- case 3594: goto tr3991;
- case 3643: goto tr3992;
+ case 9: goto st1368;
+ case 32: goto st1368;
+ case 40: goto tr4066;
+ case 41: goto tr4067;
+ case 3082: goto tr4068;
+ case 3131: goto tr4069;
+ case 3338: goto tr4070;
+ case 3387: goto tr4070;
+ case 3594: goto tr4071;
+ case 3643: goto tr4072;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr3981;
+ goto tr4061;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr3981;
+ goto tr4061;
} else
- goto tr3981;
- goto tr2998;
-tr3992:
+ goto tr4061;
+ goto tr3067;
+tr4072:
{
s->buffer_length = 0;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1481;
-st1481:
+ goto st1529;
+st1529:
if ( ++p == pe )
- goto _test_eof1481;
-case 1481:
+ goto _test_eof1529;
+case 1529:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -94369,40 +96318,40 @@ case 1481:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3994;
+ goto tr4074;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3993;
- goto tr2998;
-tr3983:
+ goto tr4073;
+ goto tr3067;
+tr4063:
{
s->buffer_length = 0;
}
- goto st1322;
-tr3995:
+ goto st1370;
+tr4075:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1322;
-tr3977:
+ goto st1370;
+tr4057:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1322;
-st1322:
+ goto st1370;
+st1370:
if ( ++p == pe )
- goto _test_eof1322;
-case 1322:
+ goto _test_eof1370;
+case 1370:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -94422,40 +96371,40 @@ case 1322:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3996;
+ goto tr4076;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3995;
- goto tr75;
-tr3971:
+ goto tr4075;
+ goto tr77;
+tr4051:
{
s->buffer_length = 0;
}
- goto st1323;
-tr3997:
+ goto st1371;
+tr4077:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1323;
-tr3965:
+ goto st1371;
+tr4045:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1323;
-st1323:
+ goto st1371;
+st1371:
if ( ++p == pe )
- goto _test_eof1323;
-case 1323:
+ goto _test_eof1371;
+case 1371:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -94475,40 +96424,40 @@ case 1323:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr3998;
+ goto tr4078;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3997;
- goto tr75;
-tr3959:
+ goto tr4077;
+ goto tr77;
+tr4039:
{
s->buffer_length = 0;
}
- goto st1324;
-tr3999:
+ goto st1372;
+tr4079:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1324;
-tr3953:
+ goto st1372;
+tr4033:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1324;
-st1324:
+ goto st1372;
+st1372:
if ( ++p == pe )
- goto _test_eof1324;
-case 1324:
+ goto _test_eof1372;
+case 1372:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -94528,18 +96477,18 @@ case 1324:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4000;
+ goto tr4080;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr3999;
- goto tr75;
-st1325:
+ goto tr4079;
+ goto tr77;
+st1373:
if ( ++p == pe )
- goto _test_eof1325;
-case 1325:
+ goto _test_eof1373;
+case 1373:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4001;
- goto tr2327;
-tr4001:
+ goto tr4081;
+ goto tr2396;
+tr4081:
{
s->number64 = 0;
}
@@ -94554,11 +96503,11 @@ tr4001:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1326;
-tr4005:
+ goto st1374;
+tr4085:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -94570,14 +96519,14 @@ tr4005:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1326;
-st1326:
+ goto st1374;
+st1374:
if ( ++p == pe )
- goto _test_eof1326;
-case 1326:
+ goto _test_eof1374;
+case 1374:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -94591,40 +96540,40 @@ case 1326:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4002;
- case 32: goto tr4002;
- case 40: goto tr4003;
- case 41: goto tr4004;
- case 2058: goto tr4006;
- case 2107: goto tr4007;
+ case 9: goto tr4082;
+ case 32: goto tr4082;
+ case 40: goto tr4083;
+ case 41: goto tr4084;
+ case 2058: goto tr4086;
+ case 2107: goto tr4087;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4005;
- goto tr2327;
-tr4009:
+ goto tr4085;
+ goto tr2396;
+tr4089:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1327;
-tr4010:
+ goto st1375;
+tr4090:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1327;
-tr4012:
+ goto st1375;
+tr4092:
{
s->line_counter++;
}
- goto st1327;
-tr4018:
+ goto st1375;
+tr4098:
{
s->buffer[s->buffer_length++] = 0;
@@ -94634,15 +96583,15 @@ tr4018:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1327; goto _out;}
+ {p++; cs = 1375; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1327;
-tr4002:
+ goto st1375;
+tr4082:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -94650,11 +96599,11 @@ tr4002:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1327;
-tr4003:
+ goto st1375;
+tr4083:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -94662,18 +96611,18 @@ tr4003:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1327;
-tr4004:
+ goto st1375;
+tr4084:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -94681,18 +96630,18 @@ tr4004:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1327;
-tr4006:
+ goto st1375;
+tr4086:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -94700,17 +96649,17 @@ tr4006:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1327;
-st1327:
+ goto st1375;
+st1375:
if ( ++p == pe )
- goto _test_eof1327;
-case 1327:
+ goto _test_eof1375;
+case 1375:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -94724,17 +96673,17 @@ case 1327:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1327;
- case 32: goto st1327;
- case 40: goto tr4009;
- case 41: goto tr4010;
- case 2058: goto tr4012;
- case 2107: goto tr4013;
+ case 9: goto st1375;
+ case 32: goto st1375;
+ case 40: goto tr4089;
+ case 41: goto tr4090;
+ case 2058: goto tr4092;
+ case 2107: goto tr4093;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4011;
- goto tr2327;
-tr4011:
+ goto tr4091;
+ goto tr2396;
+tr4091:
{
s->number64 = 0;
}
@@ -94749,11 +96698,11 @@ tr4011:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1328;
-tr4015:
+ goto st1376;
+tr4095:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -94765,28 +96714,28 @@ tr4015:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1328;
-st1328:
+ goto st1376;
+st1376:
if ( ++p == pe )
- goto _test_eof1328;
-case 1328:
+ goto _test_eof1376;
+case 1376:
switch( (*p) ) {
- case 32: goto tr4014;
- case 59: goto tr4014;
+ case 32: goto tr4094;
+ case 59: goto tr4094;
}
if ( (*p) < 40 ) {
if ( 9 <= (*p) && (*p) <= 10 )
- goto tr4014;
+ goto tr4094;
} else if ( (*p) > 41 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4015;
+ goto tr4095;
} else
- goto tr4014;
- goto tr2327;
-tr4014:
+ goto tr4094;
+ goto tr2396;
+tr4094:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -94794,48 +96743,48 @@ tr4014:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 1329;goto st376;} }
- goto st1329;
-st1329:
+ { p--; {stack[top++] = 1377;goto st385;} }
+ goto st1377;
+st1377:
if ( ++p == pe )
- goto _test_eof1329;
-case 1329:
+ goto _test_eof1377;
+case 1377:
switch( (*p) ) {
- case 32: goto tr4016;
- case 59: goto tr4016;
+ case 32: goto tr4096;
+ case 59: goto tr4096;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr4016;
+ goto tr4096;
} else if ( (*p) >= 9 )
- goto tr4016;
- goto tr75;
-tr4016:
+ goto tr4096;
+ goto tr77;
+tr4096:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1482;
-st1482:
+ goto st1530;
+st1530:
if ( ++p == pe )
- goto _test_eof1482;
-case 1482:
+ goto _test_eof1530;
+case 1530:
goto st0;
-tr4013:
+tr4093:
{
s->buffer_length = 0;
}
- goto st1330;
-tr4017:
+ goto st1378;
+tr4097:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1330;
-tr4007:
+ goto st1378;
+tr4087:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -94843,17 +96792,17 @@ tr4007:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1330;
-st1330:
+ goto st1378;
+st1378:
if ( ++p == pe )
- goto _test_eof1330;
-case 1330:
+ goto _test_eof1378;
+case 1378:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -94873,18 +96822,18 @@ case 1330:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4018;
+ goto tr4098;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr4017;
- goto tr75;
-st1331:
+ goto tr4097;
+ goto tr77;
+st1379:
if ( ++p == pe )
- goto _test_eof1331;
-case 1331:
+ goto _test_eof1379;
+case 1379:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4019;
- goto tr2327;
-tr4019:
+ goto tr4099;
+ goto tr2396;
+tr4099:
{
s->number64 = 0;
}
@@ -94899,11 +96848,11 @@ tr4019:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1332;
-tr4023:
+ goto st1380;
+tr4103:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -94915,14 +96864,14 @@ tr4023:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1332;
-st1332:
+ goto st1380;
+st1380:
if ( ++p == pe )
- goto _test_eof1332;
-case 1332:
+ goto _test_eof1380;
+case 1380:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -94936,40 +96885,40 @@ case 1332:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4020;
- case 32: goto tr4020;
- case 40: goto tr4021;
- case 41: goto tr4022;
- case 2058: goto tr4024;
- case 2107: goto tr4025;
+ case 9: goto tr4100;
+ case 32: goto tr4100;
+ case 40: goto tr4101;
+ case 41: goto tr4102;
+ case 2058: goto tr4104;
+ case 2107: goto tr4105;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4023;
- goto tr2327;
-tr4027:
+ goto tr4103;
+ goto tr2396;
+tr4107:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1333;
-tr4028:
+ goto st1381;
+tr4108:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1333;
-tr4030:
+ goto st1381;
+tr4110:
{
s->line_counter++;
}
- goto st1333;
-tr4072:
+ goto st1381;
+tr4152:
{
s->buffer[s->buffer_length++] = 0;
@@ -94979,15 +96928,15 @@ tr4072:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1333; goto _out;}
+ {p++; cs = 1381; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1333;
-tr4020:
+ goto st1381;
+tr4100:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -94995,11 +96944,11 @@ tr4020:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1333;
-tr4021:
+ goto st1381;
+tr4101:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -95007,18 +96956,18 @@ tr4021:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1333;
-tr4022:
+ goto st1381;
+tr4102:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -95026,18 +96975,18 @@ tr4022:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1333;
-tr4024:
+ goto st1381;
+tr4104:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -95045,17 +96994,17 @@ tr4024:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1333;
-st1333:
+ goto st1381;
+st1381:
if ( ++p == pe )
- goto _test_eof1333;
-case 1333:
+ goto _test_eof1381;
+case 1381:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -95069,17 +97018,17 @@ case 1333:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1333;
- case 32: goto st1333;
- case 40: goto tr4027;
- case 41: goto tr4028;
- case 2058: goto tr4030;
- case 2107: goto tr4031;
+ case 9: goto st1381;
+ case 32: goto st1381;
+ case 40: goto tr4107;
+ case 41: goto tr4108;
+ case 2058: goto tr4110;
+ case 2107: goto tr4111;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4029;
- goto tr2327;
-tr4029:
+ goto tr4109;
+ goto tr2396;
+tr4109:
{
s->number64 = 0;
}
@@ -95094,11 +97043,11 @@ tr4029:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1334;
-tr4035:
+ goto st1382;
+tr4115:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -95110,14 +97059,14 @@ tr4035:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1334;
-st1334:
+ goto st1382;
+st1382:
if ( ++p == pe )
- goto _test_eof1334;
-case 1334:
+ goto _test_eof1382;
+case 1382:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -95131,40 +97080,40 @@ case 1334:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4032;
- case 32: goto tr4032;
- case 40: goto tr4033;
- case 41: goto tr4034;
- case 2058: goto tr4036;
- case 2107: goto tr4037;
+ case 9: goto tr4112;
+ case 32: goto tr4112;
+ case 40: goto tr4113;
+ case 41: goto tr4114;
+ case 2058: goto tr4116;
+ case 2107: goto tr4117;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4035;
- goto tr2327;
-tr4039:
+ goto tr4115;
+ goto tr2396;
+tr4119:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1335;
-tr4040:
+ goto st1383;
+tr4120:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1335;
-tr4042:
+ goto st1383;
+tr4122:
{
s->line_counter++;
}
- goto st1335;
-tr4070:
+ goto st1383;
+tr4150:
{
s->buffer[s->buffer_length++] = 0;
@@ -95174,79 +97123,79 @@ tr4070:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1335; goto _out;}
+ {p++; cs = 1383; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1335;
-tr4032:
+ goto st1383;
+tr4112:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1335;
-tr4033:
+ goto st1383;
+tr4113:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1335;
-tr4034:
+ goto st1383;
+tr4114:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1335;
-tr4036:
+ goto st1383;
+tr4116:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1335;
-st1335:
+ goto st1383;
+st1383:
if ( ++p == pe )
- goto _test_eof1335;
-case 1335:
+ goto _test_eof1383;
+case 1383:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -95260,17 +97209,17 @@ case 1335:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1335;
- case 32: goto st1335;
- case 40: goto tr4039;
- case 41: goto tr4040;
- case 2058: goto tr4042;
- case 2107: goto tr4043;
+ case 9: goto st1383;
+ case 32: goto st1383;
+ case 40: goto tr4119;
+ case 41: goto tr4120;
+ case 2058: goto tr4122;
+ case 2107: goto tr4123;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4041;
- goto tr2327;
-tr4041:
+ goto tr4121;
+ goto tr2396;
+tr4121:
{
s->number64 = 0;
}
@@ -95285,11 +97234,11 @@ tr4041:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1336;
-tr4047:
+ goto st1384;
+tr4127:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -95301,14 +97250,14 @@ tr4047:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1336;
-st1336:
+ goto st1384;
+st1384:
if ( ++p == pe )
- goto _test_eof1336;
-case 1336:
+ goto _test_eof1384;
+case 1384:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -95322,40 +97271,40 @@ case 1336:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4044;
- case 32: goto tr4044;
- case 40: goto tr4045;
- case 41: goto tr4046;
- case 2058: goto tr4048;
- case 2107: goto tr4049;
+ case 9: goto tr4124;
+ case 32: goto tr4124;
+ case 40: goto tr4125;
+ case 41: goto tr4126;
+ case 2058: goto tr4128;
+ case 2107: goto tr4129;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4047;
- goto tr2327;
-tr4051:
+ goto tr4127;
+ goto tr2396;
+tr4131:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1337;
-tr4052:
+ goto st1385;
+tr4132:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1337;
-tr4054:
+ goto st1385;
+tr4134:
{
s->line_counter++;
}
- goto st1337;
-tr4068:
+ goto st1385;
+tr4148:
{
s->buffer[s->buffer_length++] = 0;
@@ -95365,79 +97314,79 @@ tr4068:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1337; goto _out;}
+ {p++; cs = 1385; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1337;
-tr4044:
+ goto st1385;
+tr4124:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1337;
-tr4045:
+ goto st1385;
+tr4125:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1337;
-tr4046:
+ goto st1385;
+tr4126:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1337;
-tr4048:
+ goto st1385;
+tr4128:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1337;
-st1337:
+ goto st1385;
+st1385:
if ( ++p == pe )
- goto _test_eof1337;
-case 1337:
+ goto _test_eof1385;
+case 1385:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -95451,69 +97400,69 @@ case 1337:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1337;
- case 32: goto st1337;
- case 40: goto tr4051;
- case 41: goto tr4052;
- case 2058: goto tr4054;
- case 2107: goto tr4055;
+ case 9: goto st1385;
+ case 32: goto st1385;
+ case 40: goto tr4131;
+ case 41: goto tr4132;
+ case 2058: goto tr4134;
+ case 2107: goto tr4135;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr4053;
+ goto tr4133;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr4053;
+ goto tr4133;
} else
- goto tr4053;
- goto tr2998;
-tr4053:
+ goto tr4133;
+ goto tr3067;
+tr4133:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1338;
-st1338:
+ goto st1386;
+st1386:
if ( ++p == pe )
- goto _test_eof1338;
-case 1338:
+ goto _test_eof1386;
+case 1386:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4056;
+ goto tr4136;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4056;
+ goto tr4136;
} else
- goto tr4056;
- goto tr2998;
-tr4058:
+ goto tr4136;
+ goto tr3067;
+tr4138:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1339;
-tr4059:
+ goto st1387;
+tr4139:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1339;
-tr4060:
+ goto st1387;
+tr4140:
{
s->line_counter++;
}
- goto st1339;
-tr4066:
+ goto st1387;
+tr4146:
{
s->buffer[s->buffer_length++] = 0;
@@ -95523,24 +97472,24 @@ tr4066:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1339; goto _out;}
+ {p++; cs = 1387; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1339;
-tr4056:
+ goto st1387;
+tr4136:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1339;
-st1339:
+ goto st1387;
+st1387:
if ( ++p == pe )
- goto _test_eof1339;
-case 1339:
+ goto _test_eof1387;
+case 1387:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -95558,42 +97507,42 @@ case 1339:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st1339;
- case 32: goto st1339;
- case 40: goto tr4058;
- case 41: goto tr4059;
- case 3082: goto tr4060;
- case 3131: goto tr4061;
- case 3338: goto tr4062;
- case 3387: goto tr4062;
- case 3594: goto tr4063;
- case 3643: goto tr4064;
+ case 9: goto st1387;
+ case 32: goto st1387;
+ case 40: goto tr4138;
+ case 41: goto tr4139;
+ case 3082: goto tr4140;
+ case 3131: goto tr4141;
+ case 3338: goto tr4142;
+ case 3387: goto tr4142;
+ case 3594: goto tr4143;
+ case 3643: goto tr4144;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr4053;
+ goto tr4133;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr4053;
+ goto tr4133;
} else
- goto tr4053;
- goto tr2998;
-tr4061:
+ goto tr4133;
+ goto tr3067;
+tr4141:
{
s->buffer_length = 0;
}
- goto st1340;
-tr4065:
+ goto st1388;
+tr4145:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1340;
-st1340:
+ goto st1388;
+st1388:
if ( ++p == pe )
- goto _test_eof1340;
-case 1340:
+ goto _test_eof1388;
+case 1388:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -95613,32 +97562,32 @@ case 1340:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4066;
+ goto tr4146;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr4065;
- goto tr2998;
-tr4062:
+ goto tr4145;
+ goto tr3067;
+tr4142:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1483;
-st1483:
+ goto st1531;
+st1531:
if ( ++p == pe )
- goto _test_eof1483;
-case 1483:
+ goto _test_eof1531;
+case 1531:
goto st0;
-tr4063:
+tr4143:
{
s->line_counter++;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1484;
-st1484:
+ goto st1532;
+st1532:
if ( ++p == pe )
- goto _test_eof1484;
-case 1484:
+ goto _test_eof1532;
+case 1532:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -95656,38 +97605,38 @@ case 1484:
!s->multiline ) _widec += 512;
}
switch( _widec ) {
- case 9: goto st1339;
- case 32: goto st1339;
- case 40: goto tr4058;
- case 41: goto tr4059;
- case 3082: goto tr4060;
- case 3131: goto tr4061;
- case 3338: goto tr4062;
- case 3387: goto tr4062;
- case 3594: goto tr4063;
- case 3643: goto tr4064;
+ case 9: goto st1387;
+ case 32: goto st1387;
+ case 40: goto tr4138;
+ case 41: goto tr4139;
+ case 3082: goto tr4140;
+ case 3131: goto tr4141;
+ case 3338: goto tr4142;
+ case 3387: goto tr4142;
+ case 3594: goto tr4143;
+ case 3643: goto tr4144;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr4053;
+ goto tr4133;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr4053;
+ goto tr4133;
} else
- goto tr4053;
- goto tr2998;
-tr4064:
+ goto tr4133;
+ goto tr3067;
+tr4144:
{
s->buffer_length = 0;
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1485;
-st1485:
+ goto st1533;
+st1533:
if ( ++p == pe )
- goto _test_eof1485;
-case 1485:
+ goto _test_eof1533;
+case 1533:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -95707,40 +97656,40 @@ case 1485:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4066;
+ goto tr4146;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr4065;
- goto tr2998;
-tr4055:
+ goto tr4145;
+ goto tr3067;
+tr4135:
{
s->buffer_length = 0;
}
- goto st1341;
-tr4067:
+ goto st1389;
+tr4147:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1341;
-tr4049:
+ goto st1389;
+tr4129:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1341;
-st1341:
+ goto st1389;
+st1389:
if ( ++p == pe )
- goto _test_eof1341;
-case 1341:
+ goto _test_eof1389;
+case 1389:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -95760,40 +97709,40 @@ case 1341:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4068;
+ goto tr4148;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr4067;
- goto tr75;
-tr4043:
+ goto tr4147;
+ goto tr77;
+tr4123:
{
s->buffer_length = 0;
}
- goto st1342;
-tr4069:
+ goto st1390;
+tr4149:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1342;
-tr4037:
+ goto st1390;
+tr4117:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1342;
-st1342:
+ goto st1390;
+st1390:
if ( ++p == pe )
- goto _test_eof1342;
-case 1342:
+ goto _test_eof1390;
+case 1390:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -95813,23 +97762,23 @@ case 1342:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4070;
+ goto tr4150;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr4069;
- goto tr75;
-tr4031:
+ goto tr4149;
+ goto tr77;
+tr4111:
{
s->buffer_length = 0;
}
- goto st1343;
-tr4071:
+ goto st1391;
+tr4151:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1343;
-tr4025:
+ goto st1391;
+tr4105:
{
if (s->number64 <= UINT32_MAX) {
uint32_t num32 = htonl((uint32_t)s->number64);
@@ -95837,17 +97786,17 @@ tr4025:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1343;
-st1343:
+ goto st1391;
+st1391:
if ( ++p == pe )
- goto _test_eof1343;
-case 1343:
+ goto _test_eof1391;
+case 1391:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -95867,18 +97816,18 @@ case 1343:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4072;
+ goto tr4152;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr4071;
- goto tr75;
-st1344:
+ goto tr4151;
+ goto tr77;
+st1392:
if ( ++p == pe )
- goto _test_eof1344;
-case 1344:
+ goto _test_eof1392;
+case 1392:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4073;
- goto tr2327;
-tr4073:
+ goto tr4153;
+ goto tr2396;
+tr4153:
{
s->number64 = 0;
}
@@ -95893,11 +97842,11 @@ tr4073:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1345;
-tr4077:
+ goto st1393;
+tr4157:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -95909,14 +97858,14 @@ tr4077:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1345;
-st1345:
+ goto st1393;
+st1393:
if ( ++p == pe )
- goto _test_eof1345;
-case 1345:
+ goto _test_eof1393;
+case 1393:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -95930,40 +97879,40 @@ case 1345:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4074;
- case 32: goto tr4074;
- case 40: goto tr4075;
- case 41: goto tr4076;
- case 2058: goto tr4078;
- case 2107: goto tr4079;
+ case 9: goto tr4154;
+ case 32: goto tr4154;
+ case 40: goto tr4155;
+ case 41: goto tr4156;
+ case 2058: goto tr4158;
+ case 2107: goto tr4159;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4077;
- goto tr2327;
-tr4081:
+ goto tr4157;
+ goto tr2396;
+tr4161:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1346;
-tr4082:
+ goto st1394;
+tr4162:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1346;
-tr4084:
+ goto st1394;
+tr4164:
{
s->line_counter++;
}
- goto st1346;
-tr4089:
+ goto st1394;
+tr4169:
{
s->buffer[s->buffer_length++] = 0;
@@ -95973,15 +97922,15 @@ tr4089:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1346; goto _out;}
+ {p++; cs = 1394; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1346;
-tr4074:
+ goto st1394;
+tr4154:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -95989,11 +97938,11 @@ tr4074:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1346;
-tr4075:
+ goto st1394;
+tr4155:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -96001,18 +97950,18 @@ tr4075:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1346;
-tr4076:
+ goto st1394;
+tr4156:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -96020,18 +97969,18 @@ tr4076:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1346;
-tr4078:
+ goto st1394;
+tr4158:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -96039,17 +97988,17 @@ tr4078:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1346;
-st1346:
+ goto st1394;
+st1394:
if ( ++p == pe )
- goto _test_eof1346;
-case 1346:
+ goto _test_eof1394;
+case 1394:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -96063,28 +98012,28 @@ case 1346:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1346;
- case 32: goto st1346;
- case 40: goto tr4081;
- case 41: goto tr4082;
- case 46: goto tr4083;
- case 2058: goto tr4084;
- case 2107: goto tr4085;
+ case 9: goto st1394;
+ case 32: goto st1394;
+ case 40: goto tr4161;
+ case 41: goto tr4162;
+ case 46: goto tr4163;
+ case 2058: goto tr4164;
+ case 2107: goto tr4165;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4083;
- goto tr2304;
-tr4087:
+ goto tr4163;
+ goto tr2373;
+tr4167:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1347;
-tr4083:
+ goto st1395;
+tr4163:
{
s->buffer_length = 0;
}
@@ -96093,41 +98042,41 @@ tr4083:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1347;
-st1347:
+ goto st1395;
+st1395:
if ( ++p == pe )
- goto _test_eof1347;
-case 1347:
+ goto _test_eof1395;
+case 1395:
switch( (*p) ) {
- case 32: goto tr4086;
- case 46: goto tr4087;
- case 59: goto tr4086;
+ case 32: goto tr4166;
+ case 46: goto tr4167;
+ case 59: goto tr4166;
}
if ( (*p) < 40 ) {
if ( 9 <= (*p) && (*p) <= 10 )
- goto tr4086;
+ goto tr4166;
} else if ( (*p) > 41 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4087;
+ goto tr4167;
} else
- goto tr4086;
- goto tr2304;
-tr4086:
+ goto tr4166;
+ goto tr2373;
+tr4166:
{
s->buffer[s->buffer_length] = 0;
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -96135,25 +98084,25 @@ tr4086:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1486;
-st1486:
+ goto st1534;
+st1534:
if ( ++p == pe )
- goto _test_eof1486;
-case 1486:
+ goto _test_eof1534;
+case 1534:
goto st0;
-tr4085:
+tr4165:
{
s->buffer_length = 0;
}
- goto st1348;
-tr4088:
+ goto st1396;
+tr4168:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1348;
-tr4079:
+ goto st1396;
+tr4159:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -96161,17 +98110,17 @@ tr4079:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1348;
-st1348:
+ goto st1396;
+st1396:
if ( ++p == pe )
- goto _test_eof1348;
-case 1348:
+ goto _test_eof1396;
+case 1396:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -96191,18 +98140,18 @@ case 1348:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4089;
+ goto tr4169;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr4088;
- goto tr75;
-st1349:
+ goto tr4168;
+ goto tr77;
+st1397:
if ( ++p == pe )
- goto _test_eof1349;
-case 1349:
+ goto _test_eof1397;
+case 1397:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4090;
- goto tr2327;
-tr4090:
+ goto tr4170;
+ goto tr2396;
+tr4170:
{
s->number64 = 0;
}
@@ -96217,11 +98166,11 @@ tr4090:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1350;
-tr4094:
+ goto st1398;
+tr4174:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -96233,14 +98182,14 @@ tr4094:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1350;
-st1350:
+ goto st1398;
+st1398:
if ( ++p == pe )
- goto _test_eof1350;
-case 1350:
+ goto _test_eof1398;
+case 1398:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -96254,40 +98203,40 @@ case 1350:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4091;
- case 32: goto tr4091;
- case 40: goto tr4092;
- case 41: goto tr4093;
- case 2058: goto tr4095;
- case 2107: goto tr4096;
+ case 9: goto tr4171;
+ case 32: goto tr4171;
+ case 40: goto tr4172;
+ case 41: goto tr4173;
+ case 2058: goto tr4175;
+ case 2107: goto tr4176;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4094;
- goto tr2327;
-tr4098:
+ goto tr4174;
+ goto tr2396;
+tr4178:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1351;
-tr4099:
+ goto st1399;
+tr4179:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1351;
-tr4101:
+ goto st1399;
+tr4181:
{
s->line_counter++;
}
- goto st1351;
-tr4115:
+ goto st1399;
+tr4195:
{
s->buffer[s->buffer_length++] = 0;
@@ -96297,15 +98246,15 @@ tr4115:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1351; goto _out;}
+ {p++; cs = 1399; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1351;
-tr4091:
+ goto st1399;
+tr4171:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -96313,11 +98262,11 @@ tr4091:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1351;
-tr4092:
+ goto st1399;
+tr4172:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -96325,18 +98274,18 @@ tr4092:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1351;
-tr4093:
+ goto st1399;
+tr4173:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -96344,18 +98293,18 @@ tr4093:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1351;
-tr4095:
+ goto st1399;
+tr4175:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -96363,17 +98312,17 @@ tr4095:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1351;
-st1351:
+ goto st1399;
+st1399:
if ( ++p == pe )
- goto _test_eof1351;
-case 1351:
+ goto _test_eof1399;
+case 1399:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -96387,23 +98336,23 @@ case 1351:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1351;
- case 32: goto st1351;
- case 40: goto tr4098;
- case 41: goto tr4099;
- case 2058: goto tr4101;
- case 2107: goto tr4102;
+ case 9: goto st1399;
+ case 32: goto st1399;
+ case 40: goto tr4178;
+ case 41: goto tr4179;
+ case 2058: goto tr4181;
+ case 2107: goto tr4182;
}
if ( _widec < 65 ) {
if ( 48 <= _widec && _widec <= 57 )
- goto tr4100;
+ goto tr4180;
} else if ( _widec > 70 ) {
if ( 97 <= _widec && _widec <= 102 )
- goto tr4100;
+ goto tr4180;
} else
- goto tr4100;
- goto tr2998;
-tr4100:
+ goto tr4180;
+ goto tr3067;
+tr4180:
{
s->item_length = 0;
}
@@ -96412,214 +98361,214 @@ tr4100:
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1352;
-st1352:
+ goto st1400;
+st1400:
if ( ++p == pe )
- goto _test_eof1352;
-case 1352:
+ goto _test_eof1400;
+case 1400:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4103;
+ goto tr4183;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4103;
+ goto tr4183;
} else
- goto tr4103;
- goto tr2998;
-tr4103:
+ goto tr4183;
+ goto tr3067;
+tr4183:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1353;
-st1353:
+ goto st1401;
+st1401:
if ( ++p == pe )
- goto _test_eof1353;
-case 1353:
+ goto _test_eof1401;
+case 1401:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4104;
+ goto tr4184;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4104;
+ goto tr4184;
} else
- goto tr4104;
- goto tr2998;
-tr4104:
+ goto tr4184;
+ goto tr3067;
+tr4184:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1354;
-st1354:
+ goto st1402;
+st1402:
if ( ++p == pe )
- goto _test_eof1354;
-case 1354:
+ goto _test_eof1402;
+case 1402:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4105;
+ goto tr4185;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4105;
+ goto tr4185;
} else
- goto tr4105;
- goto tr2998;
-tr4105:
+ goto tr4185;
+ goto tr3067;
+tr4185:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1355;
-st1355:
+ goto st1403;
+st1403:
if ( ++p == pe )
- goto _test_eof1355;
-case 1355:
+ goto _test_eof1403;
+case 1403:
if ( (*p) == 58 )
- goto tr4107;
- goto tr4106;
-tr4107:
+ goto tr4187;
+ goto tr4186;
+tr4187:
{
s->item_length++;
}
- goto st1356;
-st1356:
+ goto st1404;
+st1404:
if ( ++p == pe )
- goto _test_eof1356;
-case 1356:
+ goto _test_eof1404;
+case 1404:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4108;
+ goto tr4188;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4108;
+ goto tr4188;
} else
- goto tr4108;
- goto tr2998;
-tr4108:
+ goto tr4188;
+ goto tr3067;
+tr4188:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1357;
-st1357:
+ goto st1405;
+st1405:
if ( ++p == pe )
- goto _test_eof1357;
-case 1357:
+ goto _test_eof1405;
+case 1405:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4109;
+ goto tr4189;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4109;
+ goto tr4189;
} else
- goto tr4109;
- goto tr2998;
-tr4109:
+ goto tr4189;
+ goto tr3067;
+tr4189:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1358;
-st1358:
+ goto st1406;
+st1406:
if ( ++p == pe )
- goto _test_eof1358;
-case 1358:
+ goto _test_eof1406;
+case 1406:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4110;
+ goto tr4190;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4110;
+ goto tr4190;
} else
- goto tr4110;
- goto tr2998;
-tr4110:
+ goto tr4190;
+ goto tr3067;
+tr4190:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1359;
-st1359:
+ goto st1407;
+st1407:
if ( ++p == pe )
- goto _test_eof1359;
-case 1359:
+ goto _test_eof1407;
+case 1407:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4111;
+ goto tr4191;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4111;
+ goto tr4191;
} else
- goto tr4111;
- goto tr2998;
-tr4111:
+ goto tr4191;
+ goto tr3067;
+tr4191:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1360;
-st1360:
+ goto st1408;
+st1408:
if ( ++p == pe )
- goto _test_eof1360;
-case 1360:
+ goto _test_eof1408;
+case 1408:
switch( (*p) ) {
- case 32: goto tr4113;
- case 58: goto tr4107;
- case 59: goto tr4113;
+ case 32: goto tr4193;
+ case 58: goto tr4187;
+ case 59: goto tr4193;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr4113;
+ goto tr4193;
} else if ( (*p) >= 9 )
- goto tr4113;
- goto tr4112;
-tr4113:
+ goto tr4193;
+ goto tr4192;
+tr4193:
{
s->item_length++;
}
{
if (s->item_length != 4) {
WARN(ZS_BAD_L64_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1487;
-st1487:
+ goto st1535;
+st1535:
if ( ++p == pe )
- goto _test_eof1487;
-case 1487:
+ goto _test_eof1535;
+case 1535:
goto st0;
-tr4102:
+tr4182:
{
s->buffer_length = 0;
}
- goto st1361;
-tr4114:
+ goto st1409;
+tr4194:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1361;
-tr4096:
+ goto st1409;
+tr4176:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -96627,17 +98576,17 @@ tr4096:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1361;
-st1361:
+ goto st1409;
+st1409:
if ( ++p == pe )
- goto _test_eof1361;
-case 1361:
+ goto _test_eof1409;
+case 1409:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -96657,24 +98606,24 @@ case 1361:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4115;
+ goto tr4195;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr4114;
- goto tr75;
-st1362:
+ goto tr4194;
+ goto tr77;
+st1410:
if ( ++p == pe )
- goto _test_eof1362;
-case 1362:
+ goto _test_eof1410;
+case 1410:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4116;
+ goto tr4196;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4116;
+ goto tr4196;
} else
- goto tr4116;
- goto tr2998;
-tr4116:
+ goto tr4196;
+ goto tr3067;
+tr4196:
{
s->item_length = 0;
}
@@ -96683,131 +98632,131 @@ tr4116:
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1363;
-st1363:
+ goto st1411;
+st1411:
if ( ++p == pe )
- goto _test_eof1363;
-case 1363:
+ goto _test_eof1411;
+case 1411:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4117;
+ goto tr4197;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4117;
+ goto tr4197;
} else
- goto tr4117;
- goto tr2998;
-tr4117:
+ goto tr4197;
+ goto tr3067;
+tr4197:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1364;
-st1364:
+ goto st1412;
+st1412:
if ( ++p == pe )
- goto _test_eof1364;
-case 1364:
+ goto _test_eof1412;
+case 1412:
if ( (*p) == 45 )
- goto tr4119;
- goto tr4118;
-tr4119:
+ goto tr4199;
+ goto tr4198;
+tr4199:
{
s->item_length++;
}
- goto st1365;
-st1365:
+ goto st1413;
+st1413:
if ( ++p == pe )
- goto _test_eof1365;
-case 1365:
+ goto _test_eof1413;
+case 1413:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4120;
+ goto tr4200;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4120;
+ goto tr4200;
} else
- goto tr4120;
- goto tr2998;
-tr4120:
+ goto tr4200;
+ goto tr3067;
+tr4200:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1366;
-st1366:
+ goto st1414;
+st1414:
if ( ++p == pe )
- goto _test_eof1366;
-case 1366:
+ goto _test_eof1414;
+case 1414:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4121;
+ goto tr4201;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4121;
+ goto tr4201;
} else
- goto tr4121;
- goto tr2998;
-tr4121:
+ goto tr4201;
+ goto tr3067;
+tr4201:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1367;
-st1367:
+ goto st1415;
+st1415:
if ( ++p == pe )
- goto _test_eof1367;
-case 1367:
+ goto _test_eof1415;
+case 1415:
switch( (*p) ) {
- case 32: goto tr4122;
- case 45: goto tr4119;
- case 59: goto tr4122;
+ case 32: goto tr4202;
+ case 45: goto tr4199;
+ case 59: goto tr4202;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr4122;
+ goto tr4202;
} else if ( (*p) >= 9 )
- goto tr4122;
- goto tr4118;
-tr4122:
+ goto tr4202;
+ goto tr4198;
+tr4202:
{
s->item_length++;
}
{
if (s->item_length != 6) {
WARN(ZS_BAD_EUI_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1488;
-st1488:
+ goto st1536;
+st1536:
if ( ++p == pe )
- goto _test_eof1488;
-case 1488:
+ goto _test_eof1536;
+case 1536:
goto st0;
-st1368:
+st1416:
if ( ++p == pe )
- goto _test_eof1368;
-case 1368:
+ goto _test_eof1416;
+case 1416:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4123;
+ goto tr4203;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4123;
+ goto tr4203;
} else
- goto tr4123;
- goto tr2998;
-tr4123:
+ goto tr4203;
+ goto tr3067;
+tr4203:
{
s->item_length = 0;
}
@@ -96816,125 +98765,125 @@ tr4123:
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1369;
-st1369:
+ goto st1417;
+st1417:
if ( ++p == pe )
- goto _test_eof1369;
-case 1369:
+ goto _test_eof1417;
+case 1417:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4124;
+ goto tr4204;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4124;
+ goto tr4204;
} else
- goto tr4124;
- goto tr2998;
-tr4124:
+ goto tr4204;
+ goto tr3067;
+tr4204:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1370;
-st1370:
+ goto st1418;
+st1418:
if ( ++p == pe )
- goto _test_eof1370;
-case 1370:
+ goto _test_eof1418;
+case 1418:
if ( (*p) == 45 )
- goto tr4125;
- goto tr4118;
-tr4125:
+ goto tr4205;
+ goto tr4198;
+tr4205:
{
s->item_length++;
}
- goto st1371;
-st1371:
+ goto st1419;
+st1419:
if ( ++p == pe )
- goto _test_eof1371;
-case 1371:
+ goto _test_eof1419;
+case 1419:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4126;
+ goto tr4206;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4126;
+ goto tr4206;
} else
- goto tr4126;
- goto tr2998;
-tr4126:
+ goto tr4206;
+ goto tr3067;
+tr4206:
{
if (rdata_tail <= rdata_stop) {
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1372;
-st1372:
+ goto st1420;
+st1420:
if ( ++p == pe )
- goto _test_eof1372;
-case 1372:
+ goto _test_eof1420;
+case 1420:
if ( (*p) < 65 ) {
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4127;
+ goto tr4207;
} else if ( (*p) > 70 ) {
if ( 97 <= (*p) && (*p) <= 102 )
- goto tr4127;
+ goto tr4207;
} else
- goto tr4127;
- goto tr2998;
-tr4127:
+ goto tr4207;
+ goto tr3067;
+tr4207:
{
*rdata_tail += second_hex_to_num[(uint8_t)(*p)];
rdata_tail++;
}
- goto st1373;
-st1373:
+ goto st1421;
+st1421:
if ( ++p == pe )
- goto _test_eof1373;
-case 1373:
+ goto _test_eof1421;
+case 1421:
switch( (*p) ) {
- case 32: goto tr4128;
- case 45: goto tr4125;
- case 59: goto tr4128;
+ case 32: goto tr4208;
+ case 45: goto tr4205;
+ case 59: goto tr4208;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr4128;
+ goto tr4208;
} else if ( (*p) >= 9 )
- goto tr4128;
- goto tr4118;
-tr4128:
+ goto tr4208;
+ goto tr4198;
+tr4208:
{
s->item_length++;
}
{
if (s->item_length != 8) {
WARN(ZS_BAD_EUI_LENGTH);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1489;
-st1489:
+ goto st1537;
+st1537:
if ( ++p == pe )
- goto _test_eof1489;
-case 1489:
+ goto _test_eof1537;
+case 1537:
goto st0;
-st1374:
+st1422:
if ( ++p == pe )
- goto _test_eof1374;
-case 1374:
+ goto _test_eof1422;
+case 1422:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4129;
- goto tr2327;
-tr4129:
+ goto tr4209;
+ goto tr2396;
+tr4209:
{
s->number64 = 0;
}
@@ -96949,11 +98898,11 @@ tr4129:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1375;
-tr4133:
+ goto st1423;
+tr4213:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -96965,14 +98914,14 @@ tr4133:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1375;
-st1375:
+ goto st1423;
+st1423:
if ( ++p == pe )
- goto _test_eof1375;
-case 1375:
+ goto _test_eof1423;
+case 1423:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -96986,40 +98935,40 @@ case 1375:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4130;
- case 32: goto tr4130;
- case 40: goto tr4131;
- case 41: goto tr4132;
- case 2058: goto tr4134;
- case 2107: goto tr4135;
+ case 9: goto tr4210;
+ case 32: goto tr4210;
+ case 40: goto tr4211;
+ case 41: goto tr4212;
+ case 2058: goto tr4214;
+ case 2107: goto tr4215;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4133;
- goto tr2327;
-tr4137:
+ goto tr4213;
+ goto tr2396;
+tr4217:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1376;
-tr4138:
+ goto st1424;
+tr4218:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1376;
-tr4140:
+ goto st1424;
+tr4220:
{
s->line_counter++;
}
- goto st1376;
-tr4158:
+ goto st1424;
+tr4238:
{
s->buffer[s->buffer_length++] = 0;
@@ -97029,15 +98978,15 @@ tr4158:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1376; goto _out;}
+ {p++; cs = 1424; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1376;
-tr4130:
+ goto st1424;
+tr4210:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -97045,11 +98994,11 @@ tr4130:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1376;
-tr4131:
+ goto st1424;
+tr4211:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -97057,18 +99006,18 @@ tr4131:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1376;
-tr4132:
+ goto st1424;
+tr4212:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -97076,18 +99025,18 @@ tr4132:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1376;
-tr4134:
+ goto st1424;
+tr4214:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -97095,17 +99044,17 @@ tr4134:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1376;
-st1376:
+ goto st1424;
+st1424:
if ( ++p == pe )
- goto _test_eof1376;
-case 1376:
+ goto _test_eof1424;
+case 1424:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -97119,17 +99068,17 @@ case 1376:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1376;
- case 32: goto st1376;
- case 40: goto tr4137;
- case 41: goto tr4138;
- case 2058: goto tr4140;
- case 2107: goto tr4141;
+ case 9: goto st1424;
+ case 32: goto st1424;
+ case 40: goto tr4217;
+ case 41: goto tr4218;
+ case 2058: goto tr4220;
+ case 2107: goto tr4221;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4139;
- goto tr2327;
-tr4139:
+ goto tr4219;
+ goto tr2396;
+tr4219:
{
s->number64 = 0;
}
@@ -97144,11 +99093,11 @@ tr4139:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1377;
-tr4145:
+ goto st1425;
+tr4225:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -97160,14 +99109,14 @@ tr4145:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1377;
-st1377:
+ goto st1425;
+st1425:
if ( ++p == pe )
- goto _test_eof1377;
-case 1377:
+ goto _test_eof1425;
+case 1425:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -97181,40 +99130,40 @@ case 1377:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4142;
- case 32: goto tr4142;
- case 40: goto tr4143;
- case 41: goto tr4144;
- case 2058: goto tr4146;
- case 2107: goto tr4147;
+ case 9: goto tr4222;
+ case 32: goto tr4222;
+ case 40: goto tr4223;
+ case 41: goto tr4224;
+ case 2058: goto tr4226;
+ case 2107: goto tr4227;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4145;
- goto tr2327;
-tr4150:
+ goto tr4225;
+ goto tr2396;
+tr4230:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1378;
-tr4151:
+ goto st1426;
+tr4231:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1378;
-tr4152:
+ goto st1426;
+tr4232:
{
s->line_counter++;
}
- goto st1378;
-tr4156:
+ goto st1426;
+tr4236:
{
s->buffer[s->buffer_length++] = 0;
@@ -97224,15 +99173,15 @@ tr4156:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1378; goto _out;}
+ {p++; cs = 1426; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1378;
-tr4142:
+ goto st1426;
+tr4222:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -97240,11 +99189,11 @@ tr4142:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1378;
-tr4143:
+ goto st1426;
+tr4223:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -97252,18 +99201,18 @@ tr4143:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1378;
-tr4144:
+ goto st1426;
+tr4224:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -97271,18 +99220,18 @@ tr4144:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1378;
-tr4146:
+ goto st1426;
+tr4226:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -97290,17 +99239,17 @@ tr4146:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1378;
-st1378:
+ goto st1426;
+st1426:
if ( ++p == pe )
- goto _test_eof1378;
-case 1378:
+ goto _test_eof1426;
+case 1426:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -97314,62 +99263,62 @@ case 1378:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1378;
- case 32: goto st1378;
- case 40: goto tr4150;
- case 41: goto tr4151;
- case 2058: goto tr4152;
- case 2107: goto tr4153;
+ case 9: goto st1426;
+ case 32: goto st1426;
+ case 40: goto tr4230;
+ case 41: goto tr4231;
+ case 2058: goto tr4232;
+ case 2107: goto tr4233;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr4148;
+ goto tr4228;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr4148;
+ goto tr4228;
} else
- goto tr4148;
- goto tr75;
-tr4148:
- { p--; {stack[top++] = 1379;goto st318;} }
- goto st1379;
-st1379:
+ goto tr4228;
+ goto tr77;
+tr4228:
+ { p--; {stack[top++] = 1427;goto st327;} }
+ goto st1427;
+st1427:
if ( ++p == pe )
- goto _test_eof1379;
-case 1379:
+ goto _test_eof1427;
+case 1427:
switch( (*p) ) {
- case 32: goto tr4154;
- case 59: goto tr4154;
+ case 32: goto tr4234;
+ case 59: goto tr4234;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr4154;
+ goto tr4234;
} else if ( (*p) >= 9 )
- goto tr4154;
- goto tr75;
-tr4154:
+ goto tr4234;
+ goto tr77;
+tr4234:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1490;
-st1490:
+ goto st1538;
+st1538:
if ( ++p == pe )
- goto _test_eof1490;
-case 1490:
+ goto _test_eof1538;
+case 1538:
goto st0;
-tr4153:
+tr4233:
{
s->buffer_length = 0;
}
- goto st1380;
-tr4155:
+ goto st1428;
+tr4235:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1380;
-tr4147:
+ goto st1428;
+tr4227:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -97377,17 +99326,17 @@ tr4147:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1380;
-st1380:
+ goto st1428;
+st1428:
if ( ++p == pe )
- goto _test_eof1380;
-case 1380:
+ goto _test_eof1428;
+case 1428:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -97407,23 +99356,23 @@ case 1380:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4156;
+ goto tr4236;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr4155;
- goto tr75;
-tr4141:
+ goto tr4235;
+ goto tr77;
+tr4221:
{
s->buffer_length = 0;
}
- goto st1381;
-tr4157:
+ goto st1429;
+tr4237:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1381;
-tr4135:
+ goto st1429;
+tr4215:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -97431,17 +99380,17 @@ tr4135:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1381;
-st1381:
+ goto st1429;
+st1429:
if ( ++p == pe )
- goto _test_eof1381;
-case 1381:
+ goto _test_eof1429;
+case 1429:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -97461,18 +99410,18 @@ case 1381:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4158;
+ goto tr4238;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr4157;
- goto tr75;
-st1382:
+ goto tr4237;
+ goto tr77;
+st1430:
if ( ++p == pe )
- goto _test_eof1382;
-case 1382:
+ goto _test_eof1430;
+case 1430:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4159;
- goto tr2327;
-tr4159:
+ goto tr4239;
+ goto tr2396;
+tr4239:
{
s->number64 = 0;
}
@@ -97487,11 +99436,11 @@ tr4159:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1383;
-tr4163:
+ goto st1431;
+tr4243:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -97503,14 +99452,14 @@ tr4163:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1383;
-st1383:
+ goto st1431;
+st1431:
if ( ++p == pe )
- goto _test_eof1383;
-case 1383:
+ goto _test_eof1431;
+case 1431:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -97524,40 +99473,40 @@ case 1383:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4160;
- case 32: goto tr4160;
- case 40: goto tr4161;
- case 41: goto tr4162;
- case 2058: goto tr4164;
- case 2107: goto tr4165;
+ case 9: goto tr4240;
+ case 32: goto tr4240;
+ case 40: goto tr4241;
+ case 41: goto tr4242;
+ case 2058: goto tr4244;
+ case 2107: goto tr4245;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4163;
- goto tr2327;
-tr4168:
+ goto tr4243;
+ goto tr2396;
+tr4248:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1384;
-tr4169:
+ goto st1432;
+tr4249:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1384;
-tr4170:
+ goto st1432;
+tr4250:
{
s->line_counter++;
}
- goto st1384;
-tr4187:
+ goto st1432;
+tr4267:
{
s->buffer[s->buffer_length++] = 0;
@@ -97567,79 +99516,79 @@ tr4187:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1384; goto _out;}
+ {p++; cs = 1432; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1384;
-tr4160:
+ goto st1432;
+tr4240:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1384;
-tr4161:
+ goto st1432;
+tr4241:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1384;
-tr4162:
+ goto st1432;
+tr4242:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1384;
-tr4164:
+ goto st1432;
+tr4244:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1384;
-st1384:
+ goto st1432;
+st1432:
if ( ++p == pe )
- goto _test_eof1384;
-case 1384:
+ goto _test_eof1432;
+case 1432:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -97653,37 +99602,37 @@ case 1384:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1384;
- case 32: goto st1384;
- case 40: goto tr4168;
- case 41: goto tr4169;
- case 2058: goto tr4170;
- case 2107: goto tr4171;
+ case 9: goto st1432;
+ case 32: goto st1432;
+ case 40: goto tr4248;
+ case 41: goto tr4249;
+ case 2058: goto tr4250;
+ case 2107: goto tr4251;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr4166;
+ goto tr4246;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr4166;
+ goto tr4246;
} else
- goto tr4166;
- goto tr75;
-tr4166:
+ goto tr4246;
+ goto tr77;
+tr4246:
{
if (rdata_tail <= rdata_stop) {
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- { p--; {stack[top++] = 1385;goto st318;} }
- goto st1385;
-st1385:
+ { p--; {stack[top++] = 1433;goto st327;} }
+ goto st1433;
+st1433:
if ( ++p == pe )
- goto _test_eof1385;
-case 1385:
+ goto _test_eof1433;
+case 1433:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -97697,38 +99646,38 @@ case 1385:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4172;
- case 32: goto tr4172;
- case 40: goto tr4173;
- case 41: goto tr4174;
- case 2058: goto tr4175;
- case 2107: goto tr4176;
+ case 9: goto tr4252;
+ case 32: goto tr4252;
+ case 40: goto tr4253;
+ case 41: goto tr4254;
+ case 2058: goto tr4255;
+ case 2107: goto tr4256;
}
- goto tr75;
-tr4179:
+ goto tr77;
+tr4259:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1386;
-tr4180:
+ goto st1434;
+tr4260:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1386;
-tr4181:
+ goto st1434;
+tr4261:
{
s->line_counter++;
}
- goto st1386;
-tr4185:
+ goto st1434;
+tr4265:
{
s->buffer[s->buffer_length++] = 0;
@@ -97738,95 +99687,95 @@ tr4185:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1386; goto _out;}
+ {p++; cs = 1434; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1386;
-tr4172:
+ goto st1434;
+tr4252:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1386;
-tr4173:
+ goto st1434;
+tr4253:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1386;
-tr4174:
+ goto st1434;
+tr4254:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1386;
-tr4175:
+ goto st1434;
+tr4255:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1386;
-st1386:
+ goto st1434;
+st1434:
if ( ++p == pe )
- goto _test_eof1386;
-case 1386:
+ goto _test_eof1434;
+case 1434:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -97840,83 +99789,83 @@ case 1386:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1386;
- case 32: goto st1386;
- case 40: goto tr4179;
- case 41: goto tr4180;
- case 2058: goto tr4181;
- case 2107: goto tr4182;
+ case 9: goto st1434;
+ case 32: goto st1434;
+ case 40: goto tr4259;
+ case 41: goto tr4260;
+ case 2058: goto tr4261;
+ case 2107: goto tr4262;
}
if ( _widec < 11 ) {
if ( _widec <= 8 )
- goto tr4177;
+ goto tr4257;
} else if ( _widec > 58 ) {
if ( 60 <= _widec )
- goto tr4177;
+ goto tr4257;
} else
- goto tr4177;
- goto tr75;
-tr4177:
- { p--; {stack[top++] = 1387;goto st318;} }
- goto st1387;
-st1387:
+ goto tr4257;
+ goto tr77;
+tr4257:
+ { p--; {stack[top++] = 1435;goto st327;} }
+ goto st1435;
+st1435:
if ( ++p == pe )
- goto _test_eof1387;
-case 1387:
+ goto _test_eof1435;
+case 1435:
switch( (*p) ) {
- case 32: goto tr4183;
- case 59: goto tr4183;
+ case 32: goto tr4263;
+ case 59: goto tr4263;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr4183;
+ goto tr4263;
} else if ( (*p) >= 9 )
- goto tr4183;
- goto tr75;
-tr4183:
+ goto tr4263;
+ goto tr77;
+tr4263:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1491;
-st1491:
+ goto st1539;
+st1539:
if ( ++p == pe )
- goto _test_eof1491;
-case 1491:
+ goto _test_eof1539;
+case 1539:
goto st0;
-tr4182:
+tr4262:
{
s->buffer_length = 0;
}
- goto st1388;
-tr4184:
+ goto st1436;
+tr4264:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1388;
-tr4176:
+ goto st1436;
+tr4256:
{
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {goto st307;}
+ p--; {goto st316;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1388;
-st1388:
+ goto st1436;
+st1436:
if ( ++p == pe )
- goto _test_eof1388;
-case 1388:
+ goto _test_eof1436;
+case 1436:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -97936,40 +99885,40 @@ case 1388:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4185;
+ goto tr4265;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr4184;
- goto tr75;
-tr4171:
+ goto tr4264;
+ goto tr77;
+tr4251:
{
s->buffer_length = 0;
}
- goto st1389;
-tr4186:
+ goto st1437;
+tr4266:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1389;
-tr4165:
+ goto st1437;
+tr4245:
{
if (s->number64 <= UINT8_MAX) {
*rdata_tail = (uint8_t)(s->number64);
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1389;
-st1389:
+ goto st1437;
+st1437:
if ( ++p == pe )
- goto _test_eof1389;
-case 1389:
+ goto _test_eof1437;
+case 1437:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -97989,18 +99938,18 @@ case 1389:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4187;
+ goto tr4267;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr4186;
- goto tr75;
-st1390:
+ goto tr4266;
+ goto tr77;
+st1438:
if ( ++p == pe )
- goto _test_eof1390;
-case 1390:
+ goto _test_eof1438;
+case 1438:
if ( 48 <= (*p) && (*p) <= 57 )
- goto tr4188;
- goto tr2327;
-tr4188:
+ goto tr4268;
+ goto tr2396;
+tr4268:
{
s->number64 = 0;
}
@@ -98015,11 +99964,11 @@ tr4188:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1391;
-tr4192:
+ goto st1439;
+tr4272:
{
// Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX
if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check.
@@ -98031,14 +99980,14 @@ tr4192:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1391;
-st1391:
+ goto st1439;
+st1439:
if ( ++p == pe )
- goto _test_eof1391;
-case 1391:
+ goto _test_eof1439;
+case 1439:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -98052,40 +100001,40 @@ case 1391:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto tr4189;
- case 32: goto tr4189;
- case 40: goto tr4190;
- case 41: goto tr4191;
- case 2058: goto tr4193;
- case 2107: goto tr4194;
+ case 9: goto tr4269;
+ case 32: goto tr4269;
+ case 40: goto tr4270;
+ case 41: goto tr4271;
+ case 2058: goto tr4273;
+ case 2107: goto tr4274;
}
if ( 48 <= _widec && _widec <= 57 )
- goto tr4192;
- goto tr2327;
-tr4196:
+ goto tr4272;
+ goto tr2396;
+tr4276:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1392;
-tr4197:
+ goto st1440;
+tr4277:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1392;
-tr4199:
+ goto st1440;
+tr4279:
{
s->line_counter++;
}
- goto st1392;
-tr4204:
+ goto st1440;
+tr4284:
{
s->buffer[s->buffer_length++] = 0;
@@ -98095,15 +100044,15 @@ tr4204:
// Stop if required from the callback.
if (s->state == ZS_STATE_STOP) {
- {p++; cs = 1392; goto _out;}
+ {p++; cs = 1440; goto _out;}
}
}
}
{
s->line_counter++;
}
- goto st1392;
-tr4189:
+ goto st1440;
+tr4269:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -98111,11 +100060,11 @@ tr4189:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
- goto st1392;
-tr4190:
+ goto st1440;
+tr4270:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -98123,18 +100072,18 @@ tr4190:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = true;
}
- goto st1392;
-tr4191:
+ goto st1440;
+tr4271:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -98142,18 +100091,18 @@ tr4191:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {goto st307;}
+ p--; {goto st316;}
}
s->multiline = false;
}
- goto st1392;
-tr4193:
+ goto st1440;
+tr4273:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -98161,17 +100110,17 @@ tr4193:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->line_counter++;
}
- goto st1392;
-st1392:
+ goto st1440;
+st1440:
if ( ++p == pe )
- goto _test_eof1392;
-case 1392:
+ goto _test_eof1440;
+case 1440:
_widec = (*p);
if ( (*p) > 10 ) {
if ( 59 <= (*p) && (*p) <= 59 ) {
@@ -98185,88 +100134,88 @@ case 1392:
s->multiline ) _widec += 256;
}
switch( _widec ) {
- case 9: goto st1392;
- case 32: goto st1392;
- case 40: goto tr4196;
- case 41: goto tr4197;
- case 42: goto tr4198;
- case 92: goto tr4198;
- case 95: goto tr4198;
- case 2058: goto tr4199;
- case 2107: goto tr4200;
+ case 9: goto st1440;
+ case 32: goto st1440;
+ case 40: goto tr4276;
+ case 41: goto tr4277;
+ case 42: goto tr4278;
+ case 92: goto tr4278;
+ case 95: goto tr4278;
+ case 2058: goto tr4279;
+ case 2107: goto tr4280;
}
if ( _widec < 64 ) {
if ( 45 <= _widec && _widec <= 57 )
- goto tr4198;
+ goto tr4278;
} else if ( _widec > 90 ) {
if ( 97 <= _widec && _widec <= 122 )
- goto tr4198;
+ goto tr4278;
} else
- goto tr4198;
- goto tr75;
-tr4198:
+ goto tr4278;
+ goto tr77;
+tr4278:
{
s->dname = rdata_tail;
}
- { p--; {stack[top++] = 1393;goto st309;} }
- goto st1393;
-st1393:
+ { p--; {stack[top++] = 1441;goto st318;} }
+ goto st1441;
+st1441:
if ( ++p == pe )
- goto _test_eof1393;
-case 1393:
+ goto _test_eof1441;
+case 1441:
switch( (*p) ) {
- case 32: goto tr4201;
- case 59: goto tr4201;
+ case 32: goto tr4281;
+ case 59: goto tr4281;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr4201;
+ goto tr4281;
} else if ( (*p) >= 9 )
- goto tr4201;
- goto tr75;
-tr4201:
+ goto tr4281;
+ goto tr77;
+tr4281:
{
rdata_tail += s->dname_tmp_length;
}
- { p--; {stack[top++] = 1394;goto st603;} }
- goto st1394;
-st1394:
+ { p--; {stack[top++] = 1442;goto st630;} }
+ goto st1442;
+st1442:
if ( ++p == pe )
- goto _test_eof1394;
-case 1394:
+ goto _test_eof1442;
+case 1442:
switch( (*p) ) {
- case 32: goto tr4202;
- case 59: goto tr4202;
+ case 32: goto tr4282;
+ case 59: goto tr4282;
}
if ( (*p) > 10 ) {
if ( 40 <= (*p) && (*p) <= 41 )
- goto tr4202;
+ goto tr4282;
} else if ( (*p) >= 9 )
- goto tr4202;
- goto tr75;
-tr4202:
+ goto tr4282;
+ goto tr77;
+tr4282:
{
p--; {cs = stack[--top];goto _again;}
}
- goto st1492;
-st1492:
+ goto st1540;
+st1540:
if ( ++p == pe )
- goto _test_eof1492;
-case 1492:
+ goto _test_eof1540;
+case 1540:
goto st0;
-tr4200:
+tr4280:
{
s->buffer_length = 0;
}
- goto st1395;
-tr4203:
+ goto st1443;
+tr4283:
{
if (s->buffer_length < sizeof(s->buffer) - 1) {
s->buffer[s->buffer_length++] = (*p);
}
}
- goto st1395;
-tr4194:
+ goto st1443;
+tr4274:
{
if (s->number64 <= UINT16_MAX) {
uint16_t num16 = htons((uint16_t)s->number64);
@@ -98274,17 +100223,17 @@ tr4194:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {goto st307;}
+ p--; {goto st316;}
}
}
{
s->buffer_length = 0;
}
- goto st1395;
-st1395:
+ goto st1443;
+st1443:
if ( ++p == pe )
- goto _test_eof1395;
-case 1395:
+ goto _test_eof1443;
+case 1443:
_widec = (*p);
if ( (*p) < 10 ) {
if ( (*p) <= 9 ) {
@@ -98304,12 +100253,12 @@ case 1395:
s->multiline ) _widec += 256;
}
if ( _widec == 2058 )
- goto tr4204;
+ goto tr4284;
if ( 1920 <= _widec && _widec <= 2175 )
- goto tr4203;
- goto tr75;
+ goto tr4283;
+ goto tr77;
}
- _test_eof1396: cs = 1396; goto _test_eof;
+ _test_eof1444: cs = 1444; goto _test_eof;
_test_eof1: cs = 1; goto _test_eof;
_test_eof2: cs = 2; goto _test_eof;
_test_eof3: cs = 3; goto _test_eof;
@@ -98323,7 +100272,7 @@ case 1395:
_test_eof11: cs = 11; goto _test_eof;
_test_eof12: cs = 12; goto _test_eof;
_test_eof13: cs = 13; goto _test_eof;
- _test_eof1397: cs = 1397; goto _test_eof;
+ _test_eof1445: cs = 1445; goto _test_eof;
_test_eof14: cs = 14; goto _test_eof;
_test_eof15: cs = 15; goto _test_eof;
_test_eof16: cs = 16; goto _test_eof;
@@ -98484,54 +100433,54 @@ case 1395:
_test_eof171: cs = 171; goto _test_eof;
_test_eof172: cs = 172; goto _test_eof;
_test_eof173: cs = 173; goto _test_eof;
- _test_eof1398: cs = 1398; goto _test_eof;
_test_eof174: cs = 174; goto _test_eof;
_test_eof175: cs = 175; goto _test_eof;
_test_eof176: cs = 176; goto _test_eof;
_test_eof177: cs = 177; goto _test_eof;
_test_eof178: cs = 178; goto _test_eof;
_test_eof179: cs = 179; goto _test_eof;
+ _test_eof1446: cs = 1446; goto _test_eof;
_test_eof180: cs = 180; goto _test_eof;
_test_eof181: cs = 181; goto _test_eof;
_test_eof182: cs = 182; goto _test_eof;
_test_eof183: cs = 183; goto _test_eof;
- _test_eof1399: cs = 1399; goto _test_eof;
_test_eof184: cs = 184; goto _test_eof;
_test_eof185: cs = 185; goto _test_eof;
_test_eof186: cs = 186; goto _test_eof;
_test_eof187: cs = 187; goto _test_eof;
_test_eof188: cs = 188; goto _test_eof;
_test_eof189: cs = 189; goto _test_eof;
+ _test_eof1447: cs = 1447; goto _test_eof;
_test_eof190: cs = 190; goto _test_eof;
_test_eof191: cs = 191; goto _test_eof;
- _test_eof1400: cs = 1400; goto _test_eof;
_test_eof192: cs = 192; goto _test_eof;
_test_eof193: cs = 193; goto _test_eof;
_test_eof194: cs = 194; goto _test_eof;
- _test_eof1401: cs = 1401; goto _test_eof;
_test_eof195: cs = 195; goto _test_eof;
_test_eof196: cs = 196; goto _test_eof;
_test_eof197: cs = 197; goto _test_eof;
+ _test_eof1448: cs = 1448; goto _test_eof;
_test_eof198: cs = 198; goto _test_eof;
_test_eof199: cs = 199; goto _test_eof;
_test_eof200: cs = 200; goto _test_eof;
+ _test_eof1449: cs = 1449; goto _test_eof;
_test_eof201: cs = 201; goto _test_eof;
_test_eof202: cs = 202; goto _test_eof;
_test_eof203: cs = 203; goto _test_eof;
_test_eof204: cs = 204; goto _test_eof;
_test_eof205: cs = 205; goto _test_eof;
- _test_eof1402: cs = 1402; goto _test_eof;
_test_eof206: cs = 206; goto _test_eof;
_test_eof207: cs = 207; goto _test_eof;
_test_eof208: cs = 208; goto _test_eof;
_test_eof209: cs = 209; goto _test_eof;
- _test_eof1403: cs = 1403; goto _test_eof;
_test_eof210: cs = 210; goto _test_eof;
_test_eof211: cs = 211; goto _test_eof;
+ _test_eof1450: cs = 1450; goto _test_eof;
_test_eof212: cs = 212; goto _test_eof;
_test_eof213: cs = 213; goto _test_eof;
_test_eof214: cs = 214; goto _test_eof;
_test_eof215: cs = 215; goto _test_eof;
+ _test_eof1451: cs = 1451; goto _test_eof;
_test_eof216: cs = 216; goto _test_eof;
_test_eof217: cs = 217; goto _test_eof;
_test_eof218: cs = 218; goto _test_eof;
@@ -98544,7 +100493,6 @@ case 1395:
_test_eof225: cs = 225; goto _test_eof;
_test_eof226: cs = 226; goto _test_eof;
_test_eof227: cs = 227; goto _test_eof;
- _test_eof1404: cs = 1404; goto _test_eof;
_test_eof228: cs = 228; goto _test_eof;
_test_eof229: cs = 229; goto _test_eof;
_test_eof230: cs = 230; goto _test_eof;
@@ -98552,6 +100500,7 @@ case 1395:
_test_eof232: cs = 232; goto _test_eof;
_test_eof233: cs = 233; goto _test_eof;
_test_eof234: cs = 234; goto _test_eof;
+ _test_eof1452: cs = 1452; goto _test_eof;
_test_eof235: cs = 235; goto _test_eof;
_test_eof236: cs = 236; goto _test_eof;
_test_eof237: cs = 237; goto _test_eof;
@@ -98561,7 +100510,6 @@ case 1395:
_test_eof241: cs = 241; goto _test_eof;
_test_eof242: cs = 242; goto _test_eof;
_test_eof243: cs = 243; goto _test_eof;
- _test_eof1405: cs = 1405; goto _test_eof;
_test_eof244: cs = 244; goto _test_eof;
_test_eof245: cs = 245; goto _test_eof;
_test_eof246: cs = 246; goto _test_eof;
@@ -98569,6 +100517,7 @@ case 1395:
_test_eof248: cs = 248; goto _test_eof;
_test_eof249: cs = 249; goto _test_eof;
_test_eof250: cs = 250; goto _test_eof;
+ _test_eof1453: cs = 1453; goto _test_eof;
_test_eof251: cs = 251; goto _test_eof;
_test_eof252: cs = 252; goto _test_eof;
_test_eof253: cs = 253; goto _test_eof;
@@ -98625,24 +100574,22 @@ case 1395:
_test_eof304: cs = 304; goto _test_eof;
_test_eof305: cs = 305; goto _test_eof;
_test_eof306: cs = 306; goto _test_eof;
- _test_eof1406: cs = 1406; goto _test_eof;
_test_eof307: cs = 307; goto _test_eof;
_test_eof308: cs = 308; goto _test_eof;
- _test_eof1407: cs = 1407; goto _test_eof;
_test_eof309: cs = 309; goto _test_eof;
_test_eof310: cs = 310; goto _test_eof;
- _test_eof1408: cs = 1408; goto _test_eof;
_test_eof311: cs = 311; goto _test_eof;
_test_eof312: cs = 312; goto _test_eof;
_test_eof313: cs = 313; goto _test_eof;
_test_eof314: cs = 314; goto _test_eof;
_test_eof315: cs = 315; goto _test_eof;
+ _test_eof1454: cs = 1454; goto _test_eof;
_test_eof316: cs = 316; goto _test_eof;
_test_eof317: cs = 317; goto _test_eof;
+ _test_eof1455: cs = 1455; goto _test_eof;
_test_eof318: cs = 318; goto _test_eof;
_test_eof319: cs = 319; goto _test_eof;
- _test_eof1409: cs = 1409; goto _test_eof;
- _test_eof1410: cs = 1410; goto _test_eof;
+ _test_eof1456: cs = 1456; goto _test_eof;
_test_eof320: cs = 320; goto _test_eof;
_test_eof321: cs = 321; goto _test_eof;
_test_eof322: cs = 322; goto _test_eof;
@@ -98652,13 +100599,14 @@ case 1395:
_test_eof326: cs = 326; goto _test_eof;
_test_eof327: cs = 327; goto _test_eof;
_test_eof328: cs = 328; goto _test_eof;
+ _test_eof1457: cs = 1457; goto _test_eof;
+ _test_eof1458: cs = 1458; goto _test_eof;
_test_eof329: cs = 329; goto _test_eof;
_test_eof330: cs = 330; goto _test_eof;
_test_eof331: cs = 331; goto _test_eof;
_test_eof332: cs = 332; goto _test_eof;
_test_eof333: cs = 333; goto _test_eof;
_test_eof334: cs = 334; goto _test_eof;
- _test_eof1411: cs = 1411; goto _test_eof;
_test_eof335: cs = 335; goto _test_eof;
_test_eof336: cs = 336; goto _test_eof;
_test_eof337: cs = 337; goto _test_eof;
@@ -98668,8 +100616,8 @@ case 1395:
_test_eof341: cs = 341; goto _test_eof;
_test_eof342: cs = 342; goto _test_eof;
_test_eof343: cs = 343; goto _test_eof;
+ _test_eof1459: cs = 1459; goto _test_eof;
_test_eof344: cs = 344; goto _test_eof;
- _test_eof1412: cs = 1412; goto _test_eof;
_test_eof345: cs = 345; goto _test_eof;
_test_eof346: cs = 346; goto _test_eof;
_test_eof347: cs = 347; goto _test_eof;
@@ -98679,12 +100627,12 @@ case 1395:
_test_eof351: cs = 351; goto _test_eof;
_test_eof352: cs = 352; goto _test_eof;
_test_eof353: cs = 353; goto _test_eof;
+ _test_eof1460: cs = 1460; goto _test_eof;
_test_eof354: cs = 354; goto _test_eof;
_test_eof355: cs = 355; goto _test_eof;
_test_eof356: cs = 356; goto _test_eof;
_test_eof357: cs = 357; goto _test_eof;
_test_eof358: cs = 358; goto _test_eof;
- _test_eof1413: cs = 1413; goto _test_eof;
_test_eof359: cs = 359; goto _test_eof;
_test_eof360: cs = 360; goto _test_eof;
_test_eof361: cs = 361; goto _test_eof;
@@ -98692,9 +100640,9 @@ case 1395:
_test_eof363: cs = 363; goto _test_eof;
_test_eof364: cs = 364; goto _test_eof;
_test_eof365: cs = 365; goto _test_eof;
- _test_eof1414: cs = 1414; goto _test_eof;
_test_eof366: cs = 366; goto _test_eof;
_test_eof367: cs = 367; goto _test_eof;
+ _test_eof1461: cs = 1461; goto _test_eof;
_test_eof368: cs = 368; goto _test_eof;
_test_eof369: cs = 369; goto _test_eof;
_test_eof370: cs = 370; goto _test_eof;
@@ -98702,9 +100650,7 @@ case 1395:
_test_eof372: cs = 372; goto _test_eof;
_test_eof373: cs = 373; goto _test_eof;
_test_eof374: cs = 374; goto _test_eof;
- _test_eof1415: cs = 1415; goto _test_eof;
- _test_eof1416: cs = 1416; goto _test_eof;
- _test_eof1417: cs = 1417; goto _test_eof;
+ _test_eof1462: cs = 1462; goto _test_eof;
_test_eof375: cs = 375; goto _test_eof;
_test_eof376: cs = 376; goto _test_eof;
_test_eof377: cs = 377; goto _test_eof;
@@ -98713,21 +100659,24 @@ case 1395:
_test_eof380: cs = 380; goto _test_eof;
_test_eof381: cs = 381; goto _test_eof;
_test_eof382: cs = 382; goto _test_eof;
- _test_eof1418: cs = 1418; goto _test_eof;
- _test_eof1419: cs = 1419; goto _test_eof;
_test_eof383: cs = 383; goto _test_eof;
+ _test_eof1463: cs = 1463; goto _test_eof;
+ _test_eof1464: cs = 1464; goto _test_eof;
+ _test_eof1465: cs = 1465; goto _test_eof;
_test_eof384: cs = 384; goto _test_eof;
_test_eof385: cs = 385; goto _test_eof;
- _test_eof1420: cs = 1420; goto _test_eof;
_test_eof386: cs = 386; goto _test_eof;
_test_eof387: cs = 387; goto _test_eof;
_test_eof388: cs = 388; goto _test_eof;
_test_eof389: cs = 389; goto _test_eof;
_test_eof390: cs = 390; goto _test_eof;
_test_eof391: cs = 391; goto _test_eof;
+ _test_eof1466: cs = 1466; goto _test_eof;
+ _test_eof1467: cs = 1467; goto _test_eof;
_test_eof392: cs = 392; goto _test_eof;
_test_eof393: cs = 393; goto _test_eof;
_test_eof394: cs = 394; goto _test_eof;
+ _test_eof1468: cs = 1468; goto _test_eof;
_test_eof395: cs = 395; goto _test_eof;
_test_eof396: cs = 396; goto _test_eof;
_test_eof397: cs = 397; goto _test_eof;
@@ -98880,47 +100829,47 @@ case 1395:
_test_eof544: cs = 544; goto _test_eof;
_test_eof545: cs = 545; goto _test_eof;
_test_eof546: cs = 546; goto _test_eof;
- _test_eof1421: cs = 1421; goto _test_eof;
- _test_eof1422: cs = 1422; goto _test_eof;
- _test_eof1423: cs = 1423; goto _test_eof;
_test_eof547: cs = 547; goto _test_eof;
_test_eof548: cs = 548; goto _test_eof;
_test_eof549: cs = 549; goto _test_eof;
_test_eof550: cs = 550; goto _test_eof;
_test_eof551: cs = 551; goto _test_eof;
- _test_eof1424: cs = 1424; goto _test_eof;
_test_eof552: cs = 552; goto _test_eof;
_test_eof553: cs = 553; goto _test_eof;
_test_eof554: cs = 554; goto _test_eof;
_test_eof555: cs = 555; goto _test_eof;
- _test_eof1425: cs = 1425; goto _test_eof;
- _test_eof1426: cs = 1426; goto _test_eof;
- _test_eof1427: cs = 1427; goto _test_eof;
_test_eof556: cs = 556; goto _test_eof;
_test_eof557: cs = 557; goto _test_eof;
- _test_eof1428: cs = 1428; goto _test_eof;
_test_eof558: cs = 558; goto _test_eof;
_test_eof559: cs = 559; goto _test_eof;
_test_eof560: cs = 560; goto _test_eof;
_test_eof561: cs = 561; goto _test_eof;
+ _test_eof1469: cs = 1469; goto _test_eof;
+ _test_eof1470: cs = 1470; goto _test_eof;
+ _test_eof1471: cs = 1471; goto _test_eof;
_test_eof562: cs = 562; goto _test_eof;
_test_eof563: cs = 563; goto _test_eof;
- _test_eof1429: cs = 1429; goto _test_eof;
_test_eof564: cs = 564; goto _test_eof;
_test_eof565: cs = 565; goto _test_eof;
_test_eof566: cs = 566; goto _test_eof;
+ _test_eof1472: cs = 1472; goto _test_eof;
_test_eof567: cs = 567; goto _test_eof;
_test_eof568: cs = 568; goto _test_eof;
_test_eof569: cs = 569; goto _test_eof;
_test_eof570: cs = 570; goto _test_eof;
+ _test_eof1473: cs = 1473; goto _test_eof;
+ _test_eof1474: cs = 1474; goto _test_eof;
+ _test_eof1475: cs = 1475; goto _test_eof;
_test_eof571: cs = 571; goto _test_eof;
_test_eof572: cs = 572; goto _test_eof;
+ _test_eof1476: cs = 1476; goto _test_eof;
_test_eof573: cs = 573; goto _test_eof;
_test_eof574: cs = 574; goto _test_eof;
_test_eof575: cs = 575; goto _test_eof;
_test_eof576: cs = 576; goto _test_eof;
_test_eof577: cs = 577; goto _test_eof;
_test_eof578: cs = 578; goto _test_eof;
+ _test_eof1477: cs = 1477; goto _test_eof;
_test_eof579: cs = 579; goto _test_eof;
_test_eof580: cs = 580; goto _test_eof;
_test_eof581: cs = 581; goto _test_eof;
@@ -98954,8 +100903,6 @@ case 1395:
_test_eof609: cs = 609; goto _test_eof;
_test_eof610: cs = 610; goto _test_eof;
_test_eof611: cs = 611; goto _test_eof;
- _test_eof1430: cs = 1430; goto _test_eof;
- _test_eof1431: cs = 1431; goto _test_eof;
_test_eof612: cs = 612; goto _test_eof;
_test_eof613: cs = 613; goto _test_eof;
_test_eof614: cs = 614; goto _test_eof;
@@ -98966,7 +100913,6 @@ case 1395:
_test_eof619: cs = 619; goto _test_eof;
_test_eof620: cs = 620; goto _test_eof;
_test_eof621: cs = 621; goto _test_eof;
- _test_eof1432: cs = 1432; goto _test_eof;
_test_eof622: cs = 622; goto _test_eof;
_test_eof623: cs = 623; goto _test_eof;
_test_eof624: cs = 624; goto _test_eof;
@@ -98984,6 +100930,8 @@ case 1395:
_test_eof636: cs = 636; goto _test_eof;
_test_eof637: cs = 637; goto _test_eof;
_test_eof638: cs = 638; goto _test_eof;
+ _test_eof1478: cs = 1478; goto _test_eof;
+ _test_eof1479: cs = 1479; goto _test_eof;
_test_eof639: cs = 639; goto _test_eof;
_test_eof640: cs = 640; goto _test_eof;
_test_eof641: cs = 641; goto _test_eof;
@@ -98993,6 +100941,7 @@ case 1395:
_test_eof645: cs = 645; goto _test_eof;
_test_eof646: cs = 646; goto _test_eof;
_test_eof647: cs = 647; goto _test_eof;
+ _test_eof1480: cs = 1480; goto _test_eof;
_test_eof648: cs = 648; goto _test_eof;
_test_eof649: cs = 649; goto _test_eof;
_test_eof650: cs = 650; goto _test_eof;
@@ -99046,7 +100995,6 @@ case 1395:
_test_eof698: cs = 698; goto _test_eof;
_test_eof699: cs = 699; goto _test_eof;
_test_eof700: cs = 700; goto _test_eof;
- _test_eof1433: cs = 1433; goto _test_eof;
_test_eof701: cs = 701; goto _test_eof;
_test_eof702: cs = 702; goto _test_eof;
_test_eof703: cs = 703; goto _test_eof;
@@ -99089,6 +101037,7 @@ case 1395:
_test_eof740: cs = 740; goto _test_eof;
_test_eof741: cs = 741; goto _test_eof;
_test_eof742: cs = 742; goto _test_eof;
+ _test_eof1481: cs = 1481; goto _test_eof;
_test_eof743: cs = 743; goto _test_eof;
_test_eof744: cs = 744; goto _test_eof;
_test_eof745: cs = 745; goto _test_eof;
@@ -99151,7 +101100,6 @@ case 1395:
_test_eof802: cs = 802; goto _test_eof;
_test_eof803: cs = 803; goto _test_eof;
_test_eof804: cs = 804; goto _test_eof;
- _test_eof1434: cs = 1434; goto _test_eof;
_test_eof805: cs = 805; goto _test_eof;
_test_eof806: cs = 806; goto _test_eof;
_test_eof807: cs = 807; goto _test_eof;
@@ -99193,10 +101141,9 @@ case 1395:
_test_eof843: cs = 843; goto _test_eof;
_test_eof844: cs = 844; goto _test_eof;
_test_eof845: cs = 845; goto _test_eof;
- _test_eof1435: cs = 1435; goto _test_eof;
_test_eof846: cs = 846; goto _test_eof;
+ _test_eof1482: cs = 1482; goto _test_eof;
_test_eof847: cs = 847; goto _test_eof;
- _test_eof1436: cs = 1436; goto _test_eof;
_test_eof848: cs = 848; goto _test_eof;
_test_eof849: cs = 849; goto _test_eof;
_test_eof850: cs = 850; goto _test_eof;
@@ -99211,7 +101158,6 @@ case 1395:
_test_eof859: cs = 859; goto _test_eof;
_test_eof860: cs = 860; goto _test_eof;
_test_eof861: cs = 861; goto _test_eof;
- _test_eof1437: cs = 1437; goto _test_eof;
_test_eof862: cs = 862; goto _test_eof;
_test_eof863: cs = 863; goto _test_eof;
_test_eof864: cs = 864; goto _test_eof;
@@ -99234,33 +101180,29 @@ case 1395:
_test_eof881: cs = 881; goto _test_eof;
_test_eof882: cs = 882; goto _test_eof;
_test_eof883: cs = 883; goto _test_eof;
- _test_eof1438: cs = 1438; goto _test_eof;
_test_eof884: cs = 884; goto _test_eof;
_test_eof885: cs = 885; goto _test_eof;
_test_eof886: cs = 886; goto _test_eof;
_test_eof887: cs = 887; goto _test_eof;
+ _test_eof1483: cs = 1483; goto _test_eof;
_test_eof888: cs = 888; goto _test_eof;
- _test_eof1439: cs = 1439; goto _test_eof;
_test_eof889: cs = 889; goto _test_eof;
+ _test_eof1484: cs = 1484; goto _test_eof;
_test_eof890: cs = 890; goto _test_eof;
_test_eof891: cs = 891; goto _test_eof;
_test_eof892: cs = 892; goto _test_eof;
_test_eof893: cs = 893; goto _test_eof;
- _test_eof1440: cs = 1440; goto _test_eof;
_test_eof894: cs = 894; goto _test_eof;
_test_eof895: cs = 895; goto _test_eof;
_test_eof896: cs = 896; goto _test_eof;
_test_eof897: cs = 897; goto _test_eof;
_test_eof898: cs = 898; goto _test_eof;
- _test_eof1441: cs = 1441; goto _test_eof;
- _test_eof1442: cs = 1442; goto _test_eof;
- _test_eof1443: cs = 1443; goto _test_eof;
_test_eof899: cs = 899; goto _test_eof;
_test_eof900: cs = 900; goto _test_eof;
- _test_eof1444: cs = 1444; goto _test_eof;
_test_eof901: cs = 901; goto _test_eof;
_test_eof902: cs = 902; goto _test_eof;
_test_eof903: cs = 903; goto _test_eof;
+ _test_eof1485: cs = 1485; goto _test_eof;
_test_eof904: cs = 904; goto _test_eof;
_test_eof905: cs = 905; goto _test_eof;
_test_eof906: cs = 906; goto _test_eof;
@@ -99283,32 +101225,30 @@ case 1395:
_test_eof923: cs = 923; goto _test_eof;
_test_eof924: cs = 924; goto _test_eof;
_test_eof925: cs = 925; goto _test_eof;
+ _test_eof1486: cs = 1486; goto _test_eof;
_test_eof926: cs = 926; goto _test_eof;
_test_eof927: cs = 927; goto _test_eof;
- _test_eof1445: cs = 1445; goto _test_eof;
- _test_eof1446: cs = 1446; goto _test_eof;
- _test_eof1447: cs = 1447; goto _test_eof;
_test_eof928: cs = 928; goto _test_eof;
_test_eof929: cs = 929; goto _test_eof;
_test_eof930: cs = 930; goto _test_eof;
- _test_eof1448: cs = 1448; goto _test_eof;
- _test_eof1449: cs = 1449; goto _test_eof;
+ _test_eof1487: cs = 1487; goto _test_eof;
_test_eof931: cs = 931; goto _test_eof;
_test_eof932: cs = 932; goto _test_eof;
_test_eof933: cs = 933; goto _test_eof;
_test_eof934: cs = 934; goto _test_eof;
- _test_eof1450: cs = 1450; goto _test_eof;
- _test_eof1451: cs = 1451; goto _test_eof;
_test_eof935: cs = 935; goto _test_eof;
+ _test_eof1488: cs = 1488; goto _test_eof;
_test_eof936: cs = 936; goto _test_eof;
_test_eof937: cs = 937; goto _test_eof;
_test_eof938: cs = 938; goto _test_eof;
- _test_eof1452: cs = 1452; goto _test_eof;
- _test_eof1453: cs = 1453; goto _test_eof;
_test_eof939: cs = 939; goto _test_eof;
_test_eof940: cs = 940; goto _test_eof;
+ _test_eof1489: cs = 1489; goto _test_eof;
+ _test_eof1490: cs = 1490; goto _test_eof;
+ _test_eof1491: cs = 1491; goto _test_eof;
_test_eof941: cs = 941; goto _test_eof;
_test_eof942: cs = 942; goto _test_eof;
+ _test_eof1492: cs = 1492; goto _test_eof;
_test_eof943: cs = 943; goto _test_eof;
_test_eof944: cs = 944; goto _test_eof;
_test_eof945: cs = 945; goto _test_eof;
@@ -99330,25 +101270,32 @@ case 1395:
_test_eof961: cs = 961; goto _test_eof;
_test_eof962: cs = 962; goto _test_eof;
_test_eof963: cs = 963; goto _test_eof;
- _test_eof1454: cs = 1454; goto _test_eof;
_test_eof964: cs = 964; goto _test_eof;
_test_eof965: cs = 965; goto _test_eof;
_test_eof966: cs = 966; goto _test_eof;
_test_eof967: cs = 967; goto _test_eof;
_test_eof968: cs = 968; goto _test_eof;
_test_eof969: cs = 969; goto _test_eof;
+ _test_eof1493: cs = 1493; goto _test_eof;
+ _test_eof1494: cs = 1494; goto _test_eof;
+ _test_eof1495: cs = 1495; goto _test_eof;
_test_eof970: cs = 970; goto _test_eof;
_test_eof971: cs = 971; goto _test_eof;
_test_eof972: cs = 972; goto _test_eof;
+ _test_eof1496: cs = 1496; goto _test_eof;
+ _test_eof1497: cs = 1497; goto _test_eof;
_test_eof973: cs = 973; goto _test_eof;
_test_eof974: cs = 974; goto _test_eof;
_test_eof975: cs = 975; goto _test_eof;
_test_eof976: cs = 976; goto _test_eof;
+ _test_eof1498: cs = 1498; goto _test_eof;
+ _test_eof1499: cs = 1499; goto _test_eof;
_test_eof977: cs = 977; goto _test_eof;
_test_eof978: cs = 978; goto _test_eof;
- _test_eof1455: cs = 1455; goto _test_eof;
_test_eof979: cs = 979; goto _test_eof;
_test_eof980: cs = 980; goto _test_eof;
+ _test_eof1500: cs = 1500; goto _test_eof;
+ _test_eof1501: cs = 1501; goto _test_eof;
_test_eof981: cs = 981; goto _test_eof;
_test_eof982: cs = 982; goto _test_eof;
_test_eof983: cs = 983; goto _test_eof;
@@ -99360,7 +101307,6 @@ case 1395:
_test_eof989: cs = 989; goto _test_eof;
_test_eof990: cs = 990; goto _test_eof;
_test_eof991: cs = 991; goto _test_eof;
- _test_eof1456: cs = 1456; goto _test_eof;
_test_eof992: cs = 992; goto _test_eof;
_test_eof993: cs = 993; goto _test_eof;
_test_eof994: cs = 994; goto _test_eof;
@@ -99372,12 +101318,10 @@ case 1395:
_test_eof1000: cs = 1000; goto _test_eof;
_test_eof1001: cs = 1001; goto _test_eof;
_test_eof1002: cs = 1002; goto _test_eof;
- _test_eof1457: cs = 1457; goto _test_eof;
- _test_eof1458: cs = 1458; goto _test_eof;
_test_eof1003: cs = 1003; goto _test_eof;
_test_eof1004: cs = 1004; goto _test_eof;
_test_eof1005: cs = 1005; goto _test_eof;
- _test_eof1459: cs = 1459; goto _test_eof;
+ _test_eof1502: cs = 1502; goto _test_eof;
_test_eof1006: cs = 1006; goto _test_eof;
_test_eof1007: cs = 1007; goto _test_eof;
_test_eof1008: cs = 1008; goto _test_eof;
@@ -99388,23 +101332,18 @@ case 1395:
_test_eof1013: cs = 1013; goto _test_eof;
_test_eof1014: cs = 1014; goto _test_eof;
_test_eof1015: cs = 1015; goto _test_eof;
- _test_eof1460: cs = 1460; goto _test_eof;
- _test_eof1461: cs = 1461; goto _test_eof;
- _test_eof1462: cs = 1462; goto _test_eof;
_test_eof1016: cs = 1016; goto _test_eof;
_test_eof1017: cs = 1017; goto _test_eof;
_test_eof1018: cs = 1018; goto _test_eof;
_test_eof1019: cs = 1019; goto _test_eof;
_test_eof1020: cs = 1020; goto _test_eof;
+ _test_eof1503: cs = 1503; goto _test_eof;
_test_eof1021: cs = 1021; goto _test_eof;
_test_eof1022: cs = 1022; goto _test_eof;
_test_eof1023: cs = 1023; goto _test_eof;
_test_eof1024: cs = 1024; goto _test_eof;
_test_eof1025: cs = 1025; goto _test_eof;
_test_eof1026: cs = 1026; goto _test_eof;
- _test_eof1463: cs = 1463; goto _test_eof;
- _test_eof1464: cs = 1464; goto _test_eof;
- _test_eof1465: cs = 1465; goto _test_eof;
_test_eof1027: cs = 1027; goto _test_eof;
_test_eof1028: cs = 1028; goto _test_eof;
_test_eof1029: cs = 1029; goto _test_eof;
@@ -99412,27 +101351,24 @@ case 1395:
_test_eof1031: cs = 1031; goto _test_eof;
_test_eof1032: cs = 1032; goto _test_eof;
_test_eof1033: cs = 1033; goto _test_eof;
+ _test_eof1504: cs = 1504; goto _test_eof;
_test_eof1034: cs = 1034; goto _test_eof;
_test_eof1035: cs = 1035; goto _test_eof;
_test_eof1036: cs = 1036; goto _test_eof;
_test_eof1037: cs = 1037; goto _test_eof;
_test_eof1038: cs = 1038; goto _test_eof;
- _test_eof1466: cs = 1466; goto _test_eof;
_test_eof1039: cs = 1039; goto _test_eof;
_test_eof1040: cs = 1040; goto _test_eof;
_test_eof1041: cs = 1041; goto _test_eof;
- _test_eof1467: cs = 1467; goto _test_eof;
- _test_eof1468: cs = 1468; goto _test_eof;
_test_eof1042: cs = 1042; goto _test_eof;
- _test_eof1469: cs = 1469; goto _test_eof;
- _test_eof1470: cs = 1470; goto _test_eof;
_test_eof1043: cs = 1043; goto _test_eof;
- _test_eof1471: cs = 1471; goto _test_eof;
- _test_eof1472: cs = 1472; goto _test_eof;
_test_eof1044: cs = 1044; goto _test_eof;
+ _test_eof1505: cs = 1505; goto _test_eof;
+ _test_eof1506: cs = 1506; goto _test_eof;
_test_eof1045: cs = 1045; goto _test_eof;
_test_eof1046: cs = 1046; goto _test_eof;
_test_eof1047: cs = 1047; goto _test_eof;
+ _test_eof1507: cs = 1507; goto _test_eof;
_test_eof1048: cs = 1048; goto _test_eof;
_test_eof1049: cs = 1049; goto _test_eof;
_test_eof1050: cs = 1050; goto _test_eof;
@@ -99443,6 +101379,9 @@ case 1395:
_test_eof1055: cs = 1055; goto _test_eof;
_test_eof1056: cs = 1056; goto _test_eof;
_test_eof1057: cs = 1057; goto _test_eof;
+ _test_eof1508: cs = 1508; goto _test_eof;
+ _test_eof1509: cs = 1509; goto _test_eof;
+ _test_eof1510: cs = 1510; goto _test_eof;
_test_eof1058: cs = 1058; goto _test_eof;
_test_eof1059: cs = 1059; goto _test_eof;
_test_eof1060: cs = 1060; goto _test_eof;
@@ -99454,6 +101393,9 @@ case 1395:
_test_eof1066: cs = 1066; goto _test_eof;
_test_eof1067: cs = 1067; goto _test_eof;
_test_eof1068: cs = 1068; goto _test_eof;
+ _test_eof1511: cs = 1511; goto _test_eof;
+ _test_eof1512: cs = 1512; goto _test_eof;
+ _test_eof1513: cs = 1513; goto _test_eof;
_test_eof1069: cs = 1069; goto _test_eof;
_test_eof1070: cs = 1070; goto _test_eof;
_test_eof1071: cs = 1071; goto _test_eof;
@@ -99466,12 +101408,18 @@ case 1395:
_test_eof1078: cs = 1078; goto _test_eof;
_test_eof1079: cs = 1079; goto _test_eof;
_test_eof1080: cs = 1080; goto _test_eof;
+ _test_eof1514: cs = 1514; goto _test_eof;
_test_eof1081: cs = 1081; goto _test_eof;
_test_eof1082: cs = 1082; goto _test_eof;
_test_eof1083: cs = 1083; goto _test_eof;
+ _test_eof1515: cs = 1515; goto _test_eof;
+ _test_eof1516: cs = 1516; goto _test_eof;
_test_eof1084: cs = 1084; goto _test_eof;
+ _test_eof1517: cs = 1517; goto _test_eof;
+ _test_eof1518: cs = 1518; goto _test_eof;
_test_eof1085: cs = 1085; goto _test_eof;
- _test_eof1473: cs = 1473; goto _test_eof;
+ _test_eof1519: cs = 1519; goto _test_eof;
+ _test_eof1520: cs = 1520; goto _test_eof;
_test_eof1086: cs = 1086; goto _test_eof;
_test_eof1087: cs = 1087; goto _test_eof;
_test_eof1088: cs = 1088; goto _test_eof;
@@ -99514,6 +101462,7 @@ case 1395:
_test_eof1125: cs = 1125; goto _test_eof;
_test_eof1126: cs = 1126; goto _test_eof;
_test_eof1127: cs = 1127; goto _test_eof;
+ _test_eof1521: cs = 1521; goto _test_eof;
_test_eof1128: cs = 1128; goto _test_eof;
_test_eof1129: cs = 1129; goto _test_eof;
_test_eof1130: cs = 1130; goto _test_eof;
@@ -99643,7 +101592,6 @@ case 1395:
_test_eof1254: cs = 1254; goto _test_eof;
_test_eof1255: cs = 1255; goto _test_eof;
_test_eof1256: cs = 1256; goto _test_eof;
- _test_eof1474: cs = 1474; goto _test_eof;
_test_eof1257: cs = 1257; goto _test_eof;
_test_eof1258: cs = 1258; goto _test_eof;
_test_eof1259: cs = 1259; goto _test_eof;
@@ -99652,13 +101600,11 @@ case 1395:
_test_eof1262: cs = 1262; goto _test_eof;
_test_eof1263: cs = 1263; goto _test_eof;
_test_eof1264: cs = 1264; goto _test_eof;
- _test_eof1475: cs = 1475; goto _test_eof;
_test_eof1265: cs = 1265; goto _test_eof;
_test_eof1266: cs = 1266; goto _test_eof;
_test_eof1267: cs = 1267; goto _test_eof;
_test_eof1268: cs = 1268; goto _test_eof;
_test_eof1269: cs = 1269; goto _test_eof;
- _test_eof1476: cs = 1476; goto _test_eof;
_test_eof1270: cs = 1270; goto _test_eof;
_test_eof1271: cs = 1271; goto _test_eof;
_test_eof1272: cs = 1272; goto _test_eof;
@@ -99677,7 +101623,6 @@ case 1395:
_test_eof1285: cs = 1285; goto _test_eof;
_test_eof1286: cs = 1286; goto _test_eof;
_test_eof1287: cs = 1287; goto _test_eof;
- _test_eof1477: cs = 1477; goto _test_eof;
_test_eof1288: cs = 1288; goto _test_eof;
_test_eof1289: cs = 1289; goto _test_eof;
_test_eof1290: cs = 1290; goto _test_eof;
@@ -99695,27 +101640,26 @@ case 1395:
_test_eof1302: cs = 1302; goto _test_eof;
_test_eof1303: cs = 1303; goto _test_eof;
_test_eof1304: cs = 1304; goto _test_eof;
+ _test_eof1522: cs = 1522; goto _test_eof;
_test_eof1305: cs = 1305; goto _test_eof;
_test_eof1306: cs = 1306; goto _test_eof;
- _test_eof1478: cs = 1478; goto _test_eof;
_test_eof1307: cs = 1307; goto _test_eof;
_test_eof1308: cs = 1308; goto _test_eof;
_test_eof1309: cs = 1309; goto _test_eof;
_test_eof1310: cs = 1310; goto _test_eof;
_test_eof1311: cs = 1311; goto _test_eof;
_test_eof1312: cs = 1312; goto _test_eof;
+ _test_eof1523: cs = 1523; goto _test_eof;
_test_eof1313: cs = 1313; goto _test_eof;
_test_eof1314: cs = 1314; goto _test_eof;
_test_eof1315: cs = 1315; goto _test_eof;
_test_eof1316: cs = 1316; goto _test_eof;
_test_eof1317: cs = 1317; goto _test_eof;
+ _test_eof1524: cs = 1524; goto _test_eof;
_test_eof1318: cs = 1318; goto _test_eof;
_test_eof1319: cs = 1319; goto _test_eof;
_test_eof1320: cs = 1320; goto _test_eof;
_test_eof1321: cs = 1321; goto _test_eof;
- _test_eof1479: cs = 1479; goto _test_eof;
- _test_eof1480: cs = 1480; goto _test_eof;
- _test_eof1481: cs = 1481; goto _test_eof;
_test_eof1322: cs = 1322; goto _test_eof;
_test_eof1323: cs = 1323; goto _test_eof;
_test_eof1324: cs = 1324; goto _test_eof;
@@ -99724,21 +101668,18 @@ case 1395:
_test_eof1327: cs = 1327; goto _test_eof;
_test_eof1328: cs = 1328; goto _test_eof;
_test_eof1329: cs = 1329; goto _test_eof;
- _test_eof1482: cs = 1482; goto _test_eof;
_test_eof1330: cs = 1330; goto _test_eof;
_test_eof1331: cs = 1331; goto _test_eof;
_test_eof1332: cs = 1332; goto _test_eof;
_test_eof1333: cs = 1333; goto _test_eof;
_test_eof1334: cs = 1334; goto _test_eof;
_test_eof1335: cs = 1335; goto _test_eof;
+ _test_eof1525: cs = 1525; goto _test_eof;
_test_eof1336: cs = 1336; goto _test_eof;
_test_eof1337: cs = 1337; goto _test_eof;
_test_eof1338: cs = 1338; goto _test_eof;
_test_eof1339: cs = 1339; goto _test_eof;
_test_eof1340: cs = 1340; goto _test_eof;
- _test_eof1483: cs = 1483; goto _test_eof;
- _test_eof1484: cs = 1484; goto _test_eof;
- _test_eof1485: cs = 1485; goto _test_eof;
_test_eof1341: cs = 1341; goto _test_eof;
_test_eof1342: cs = 1342; goto _test_eof;
_test_eof1343: cs = 1343; goto _test_eof;
@@ -99746,7 +101687,6 @@ case 1395:
_test_eof1345: cs = 1345; goto _test_eof;
_test_eof1346: cs = 1346; goto _test_eof;
_test_eof1347: cs = 1347; goto _test_eof;
- _test_eof1486: cs = 1486; goto _test_eof;
_test_eof1348: cs = 1348; goto _test_eof;
_test_eof1349: cs = 1349; goto _test_eof;
_test_eof1350: cs = 1350; goto _test_eof;
@@ -99754,13 +101694,13 @@ case 1395:
_test_eof1352: cs = 1352; goto _test_eof;
_test_eof1353: cs = 1353; goto _test_eof;
_test_eof1354: cs = 1354; goto _test_eof;
+ _test_eof1526: cs = 1526; goto _test_eof;
_test_eof1355: cs = 1355; goto _test_eof;
_test_eof1356: cs = 1356; goto _test_eof;
_test_eof1357: cs = 1357; goto _test_eof;
_test_eof1358: cs = 1358; goto _test_eof;
_test_eof1359: cs = 1359; goto _test_eof;
_test_eof1360: cs = 1360; goto _test_eof;
- _test_eof1487: cs = 1487; goto _test_eof;
_test_eof1361: cs = 1361; goto _test_eof;
_test_eof1362: cs = 1362; goto _test_eof;
_test_eof1363: cs = 1363; goto _test_eof;
@@ -99768,21 +101708,22 @@ case 1395:
_test_eof1365: cs = 1365; goto _test_eof;
_test_eof1366: cs = 1366; goto _test_eof;
_test_eof1367: cs = 1367; goto _test_eof;
- _test_eof1488: cs = 1488; goto _test_eof;
_test_eof1368: cs = 1368; goto _test_eof;
_test_eof1369: cs = 1369; goto _test_eof;
+ _test_eof1527: cs = 1527; goto _test_eof;
+ _test_eof1528: cs = 1528; goto _test_eof;
+ _test_eof1529: cs = 1529; goto _test_eof;
_test_eof1370: cs = 1370; goto _test_eof;
_test_eof1371: cs = 1371; goto _test_eof;
_test_eof1372: cs = 1372; goto _test_eof;
_test_eof1373: cs = 1373; goto _test_eof;
- _test_eof1489: cs = 1489; goto _test_eof;
_test_eof1374: cs = 1374; goto _test_eof;
_test_eof1375: cs = 1375; goto _test_eof;
_test_eof1376: cs = 1376; goto _test_eof;
_test_eof1377: cs = 1377; goto _test_eof;
+ _test_eof1530: cs = 1530; goto _test_eof;
_test_eof1378: cs = 1378; goto _test_eof;
_test_eof1379: cs = 1379; goto _test_eof;
- _test_eof1490: cs = 1490; goto _test_eof;
_test_eof1380: cs = 1380; goto _test_eof;
_test_eof1381: cs = 1381; goto _test_eof;
_test_eof1382: cs = 1382; goto _test_eof;
@@ -99791,16 +101732,72 @@ case 1395:
_test_eof1385: cs = 1385; goto _test_eof;
_test_eof1386: cs = 1386; goto _test_eof;
_test_eof1387: cs = 1387; goto _test_eof;
- _test_eof1491: cs = 1491; goto _test_eof;
_test_eof1388: cs = 1388; goto _test_eof;
+ _test_eof1531: cs = 1531; goto _test_eof;
+ _test_eof1532: cs = 1532; goto _test_eof;
+ _test_eof1533: cs = 1533; goto _test_eof;
_test_eof1389: cs = 1389; goto _test_eof;
_test_eof1390: cs = 1390; goto _test_eof;
_test_eof1391: cs = 1391; goto _test_eof;
_test_eof1392: cs = 1392; goto _test_eof;
_test_eof1393: cs = 1393; goto _test_eof;
_test_eof1394: cs = 1394; goto _test_eof;
- _test_eof1492: cs = 1492; goto _test_eof;
_test_eof1395: cs = 1395; goto _test_eof;
+ _test_eof1534: cs = 1534; goto _test_eof;
+ _test_eof1396: cs = 1396; goto _test_eof;
+ _test_eof1397: cs = 1397; goto _test_eof;
+ _test_eof1398: cs = 1398; goto _test_eof;
+ _test_eof1399: cs = 1399; goto _test_eof;
+ _test_eof1400: cs = 1400; goto _test_eof;
+ _test_eof1401: cs = 1401; goto _test_eof;
+ _test_eof1402: cs = 1402; goto _test_eof;
+ _test_eof1403: cs = 1403; goto _test_eof;
+ _test_eof1404: cs = 1404; goto _test_eof;
+ _test_eof1405: cs = 1405; goto _test_eof;
+ _test_eof1406: cs = 1406; goto _test_eof;
+ _test_eof1407: cs = 1407; goto _test_eof;
+ _test_eof1408: cs = 1408; goto _test_eof;
+ _test_eof1535: cs = 1535; goto _test_eof;
+ _test_eof1409: cs = 1409; goto _test_eof;
+ _test_eof1410: cs = 1410; goto _test_eof;
+ _test_eof1411: cs = 1411; goto _test_eof;
+ _test_eof1412: cs = 1412; goto _test_eof;
+ _test_eof1413: cs = 1413; goto _test_eof;
+ _test_eof1414: cs = 1414; goto _test_eof;
+ _test_eof1415: cs = 1415; goto _test_eof;
+ _test_eof1536: cs = 1536; goto _test_eof;
+ _test_eof1416: cs = 1416; goto _test_eof;
+ _test_eof1417: cs = 1417; goto _test_eof;
+ _test_eof1418: cs = 1418; goto _test_eof;
+ _test_eof1419: cs = 1419; goto _test_eof;
+ _test_eof1420: cs = 1420; goto _test_eof;
+ _test_eof1421: cs = 1421; goto _test_eof;
+ _test_eof1537: cs = 1537; goto _test_eof;
+ _test_eof1422: cs = 1422; goto _test_eof;
+ _test_eof1423: cs = 1423; goto _test_eof;
+ _test_eof1424: cs = 1424; goto _test_eof;
+ _test_eof1425: cs = 1425; goto _test_eof;
+ _test_eof1426: cs = 1426; goto _test_eof;
+ _test_eof1427: cs = 1427; goto _test_eof;
+ _test_eof1538: cs = 1538; goto _test_eof;
+ _test_eof1428: cs = 1428; goto _test_eof;
+ _test_eof1429: cs = 1429; goto _test_eof;
+ _test_eof1430: cs = 1430; goto _test_eof;
+ _test_eof1431: cs = 1431; goto _test_eof;
+ _test_eof1432: cs = 1432; goto _test_eof;
+ _test_eof1433: cs = 1433; goto _test_eof;
+ _test_eof1434: cs = 1434; goto _test_eof;
+ _test_eof1435: cs = 1435; goto _test_eof;
+ _test_eof1539: cs = 1539; goto _test_eof;
+ _test_eof1436: cs = 1436; goto _test_eof;
+ _test_eof1437: cs = 1437; goto _test_eof;
+ _test_eof1438: cs = 1438; goto _test_eof;
+ _test_eof1439: cs = 1439; goto _test_eof;
+ _test_eof1440: cs = 1440; goto _test_eof;
+ _test_eof1441: cs = 1441; goto _test_eof;
+ _test_eof1442: cs = 1442; goto _test_eof;
+ _test_eof1540: cs = 1540; goto _test_eof;
+ _test_eof1443: cs = 1443; goto _test_eof;
_test_eof: {}
if ( p == eof )
@@ -99808,133 +101805,117 @@ case 1395:
switch ( cs ) {
case 7:
case 8:
- case 183:
- case 207:
- case 209:
- case 263:
- case 277:
- case 302:
- case 358:
- case 359:
- case 365:
+ case 189:
+ case 213:
+ case 215:
+ case 271:
+ case 285:
+ case 311:
+ case 367:
+ case 368:
+ case 374:
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 309:
- case 310:
- case 311:
- case 316:
- case 317:
+ case 318:
+ case 319:
+ case 320:
+ case 325:
+ case 326:
{
WARN(ZS_BAD_DNAME_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 192:
+ case 198:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 326:
+ case 335:
{
WARN(ZS_BAD_TEXT);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 331:
- case 339:
+ case 340:
+ case 348:
{
ERR(ZS_BAD_TTL);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 340:
- case 341:
- case 342:
+ case 349:
+ case 350:
case 351:
+ case 360:
{
ERR(ZS_BAD_ORIGIN);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 353:
+ case 362:
{
ERR(ZS_BAD_INCLUDE_FILENAME);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 356:
- case 366:
+ case 365:
+ case 375:
{
ERR(ZS_BAD_INCLUDE_ORIGIN);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1400:
+ case 1448:
{
NOERR;
}
break;
- case 184:
- case 185:
- case 186:
- case 187:
- case 188:
- case 189:
case 190:
case 191:
- case 229:
- case 230:
- case 231:
- case 232:
- case 233:
- case 234:
- case 235:
+ case 192:
+ case 193:
+ case 194:
+ case 195:
+ case 196:
+ case 197:
case 236:
case 237:
+ case 238:
+ case 239:
+ case 240:
+ case 241:
+ case 242:
+ case 243:
+ case 244:
{
ERR(ZS_BAD_DIRECTIVE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 369:
- case 370:
- case 371:
- case 372:
- case 373:
- case 374:
- case 375:
- {
- WARN(ZS_BAD_BASE64_CHAR);
- p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
- }
- break;
- case 376:
- case 377:
case 378:
case 379:
case 380:
@@ -99942,6 +101923,13 @@ goto st307;}
case 382:
case 383:
case 384:
+ {
+ WARN(ZS_BAD_BASE64_CHAR);
+ p--; { if ( p == pe )
+ goto _test_eof316;
+goto st316;}
+ }
+ break;
case 385:
case 386:
case 387:
@@ -100097,66 +102085,68 @@ goto st307;}
case 537:
case 538:
case 539:
+ case 540:
+ case 541:
+ case 542:
+ case 543:
+ case 544:
+ case 545:
+ case 546:
+ case 547:
+ case 548:
+ case 549:
+ case 550:
+ case 551:
+ case 552:
+ case 553:
+ case 554:
{
WARN(ZS_BAD_BITMAP);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 540:
- case 547:
- case 548:
- case 549:
- case 556:
- case 558:
+ case 555:
+ case 562:
+ case 563:
+ case 564:
+ case 571:
+ case 573:
{
WARN(ZS_BAD_HEX_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 603:
- case 604:
- case 605:
- case 606:
- case 607:
- case 608:
- case 609:
- case 610:
- case 611:
- case 612:
- case 613:
- case 614:
- case 615:
- case 616:
- case 617:
- case 618:
- case 619:
- case 620:
- case 621:
- case 622:
- case 623:
- case 624:
- case 625:
- case 626:
- case 627:
- case 628:
- case 629:
case 630:
case 631:
case 632:
case 633:
case 634:
case 635:
+ case 636:
+ case 637:
+ case 638:
+ case 639:
+ case 640:
+ case 641:
case 642:
case 643:
case 644:
case 645:
case 646:
+ case 647:
+ case 648:
+ case 649:
+ case 650:
+ case 651:
+ case 652:
case 653:
case 654:
+ case 655:
+ case 656:
case 657:
case 658:
case 659:
@@ -100174,83 +102164,17 @@ goto st307;}
case 671:
case 672:
case 673:
- case 674:
- case 675:
- case 676:
- case 677:
- case 678:
- case 679:
case 680:
case 681:
case 682:
case 683:
case 684:
- case 685:
- case 686:
- case 687:
- case 688:
- case 689:
- case 690:
case 691:
case 692:
+ case 695:
+ case 696:
case 697:
case 698:
- {
- WARN(ZS_BAD_SVCB_PARAM);
- p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
- }
- break;
- case 559:
- case 560:
- case 561:
- case 562:
- case 563:
- case 564:
- case 565:
- case 566:
- case 567:
- case 568:
- case 569:
- case 570:
- case 571:
- case 572:
- case 573:
- case 574:
- case 575:
- case 576:
- case 577:
- case 578:
- case 579:
- case 580:
- case 581:
- case 584:
- case 585:
- case 586:
- case 587:
- case 588:
- case 589:
- case 590:
- case 591:
- case 592:
- case 593:
- case 594:
- case 595:
- case 596:
- case 597:
- case 598:
- case 599:
- case 600:
- case 601:
- case 602:
- {
- WARN(ZS_BAD_SVCB_MANDATORY);
- p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
- }
- break;
case 699:
case 700:
case 701:
@@ -100287,12 +102211,76 @@ goto st307;}
case 732:
case 733:
case 734:
- case 735:
- case 736:
- case 737:
- case 738:
case 739:
case 740:
+ {
+ WARN(ZS_BAD_SVCB_PARAM);
+ p--; { if ( p == pe )
+ goto _test_eof316;
+goto st316;}
+ }
+ break;
+ case 574:
+ case 575:
+ case 576:
+ case 577:
+ case 578:
+ case 579:
+ case 580:
+ case 581:
+ case 582:
+ case 583:
+ case 584:
+ case 585:
+ case 586:
+ case 587:
+ case 588:
+ case 589:
+ case 590:
+ case 591:
+ case 592:
+ case 593:
+ case 594:
+ case 595:
+ case 596:
+ case 597:
+ case 598:
+ case 599:
+ case 600:
+ case 601:
+ case 602:
+ case 603:
+ case 606:
+ case 607:
+ case 608:
+ case 609:
+ case 610:
+ case 611:
+ case 612:
+ case 613:
+ case 614:
+ case 615:
+ case 616:
+ case 617:
+ case 618:
+ case 619:
+ case 620:
+ case 621:
+ case 622:
+ case 623:
+ case 624:
+ case 625:
+ case 626:
+ case 627:
+ case 628:
+ case 629:
+ {
+ WARN(ZS_BAD_SVCB_MANDATORY);
+ p--; { if ( p == pe )
+ goto _test_eof316;
+goto st316;}
+ }
+ break;
case 741:
case 742:
case 743:
@@ -100355,13 +102343,6 @@ goto st307;}
case 800:
case 801:
case 802:
- {
- WARN(ZS_BAD_ALGORITHM);
- p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
- }
- break;
case 803:
case 804:
case 805:
@@ -100403,26 +102384,46 @@ goto st307;}
case 841:
case 842:
case 843:
+ case 844:
{
- WARN(ZS_BAD_CERT_TYPE);
+ WARN(ZS_BAD_ALGORITHM);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 5:
- case 9:
- case 10:
- case 282:
+ case 845:
case 846:
case 847:
case 848:
case 849:
case 850:
case 851:
+ case 852:
+ case 853:
+ case 854:
+ case 855:
+ case 856:
+ case 857:
+ case 858:
+ case 859:
+ case 860:
+ case 861:
+ case 862:
+ case 863:
+ case 864:
case 865:
+ case 866:
+ case 867:
+ case 868:
case 869:
+ case 870:
+ case 871:
+ case 872:
case 873:
+ case 874:
+ case 875:
+ case 876:
case 877:
case 878:
case 879:
@@ -100432,112 +102433,141 @@ goto st307;}
case 883:
case 884:
case 885:
- case 886:
- case 887:
+ {
+ WARN(ZS_BAD_CERT_TYPE);
+ p--; { if ( p == pe )
+ goto _test_eof316;
+goto st316;}
+ }
+ break;
+ case 5:
+ case 9:
+ case 10:
+ case 290:
case 888:
case 889:
+ case 890:
+ case 891:
case 892:
case 893:
- case 894:
- case 962:
- case 963:
- case 964:
- case 965:
- case 966:
- case 971:
- case 972:
- case 973:
- case 974:
- case 975:
- case 976:
- case 977:
- case 978:
- case 979:
- case 980:
- case 981:
- case 982:
- case 983:
- case 984:
- case 985:
- case 988:
- case 989:
- case 990:
- case 991:
- case 992:
- case 993:
- case 994:
- case 1002:
+ case 907:
+ case 911:
+ case 915:
+ case 919:
+ case 920:
+ case 921:
+ case 922:
+ case 923:
+ case 924:
+ case 925:
+ case 926:
+ case 927:
+ case 928:
+ case 929:
+ case 930:
+ case 931:
+ case 934:
+ case 935:
+ case 936:
+ case 1004:
+ case 1005:
+ case 1006:
+ case 1007:
case 1008:
- case 1009:
+ case 1013:
+ case 1014:
+ case 1015:
case 1016:
case 1017:
case 1018:
+ case 1019:
+ case 1020:
+ case 1021:
+ case 1022:
+ case 1023:
+ case 1024:
+ case 1025:
+ case 1026:
case 1027:
- case 1028:
- case 1067:
+ case 1030:
+ case 1031:
+ case 1032:
+ case 1033:
+ case 1034:
+ case 1035:
+ case 1036:
+ case 1044:
+ case 1050:
+ case 1051:
+ case 1058:
+ case 1059:
+ case 1060:
+ case 1069:
case 1070:
- case 1071:
- case 1082:
- case 1083:
- case 1084:
- case 1085:
- case 1086:
- case 1087:
- case 1088:
- case 1089:
- case 1090:
- case 1091:
- case 1092:
- case 1093:
- case 1254:
- case 1255:
- case 1256:
- case 1261:
- case 1262:
- case 1263:
- case 1264:
- case 1265:
- case 1266:
- case 1267:
- case 1268:
- case 1269:
- case 1287:
- case 1293:
- case 1296:
- case 1297:
- case 1298:
+ case 1109:
+ case 1112:
+ case 1113:
+ case 1124:
+ case 1125:
+ case 1126:
+ case 1127:
+ case 1128:
+ case 1129:
+ case 1130:
+ case 1131:
+ case 1132:
+ case 1133:
+ case 1134:
+ case 1135:
+ case 1302:
+ case 1303:
+ case 1304:
case 1309:
case 1310:
case 1311:
- case 1322:
- case 1323:
- case 1324:
- case 1329:
- case 1330:
+ case 1312:
+ case 1313:
+ case 1314:
+ case 1315:
+ case 1316:
+ case 1317:
+ case 1335:
case 1341:
- case 1342:
- case 1343:
- case 1348:
- case 1361:
+ case 1344:
+ case 1345:
+ case 1346:
+ case 1357:
+ case 1358:
+ case 1359:
+ case 1370:
+ case 1371:
+ case 1372:
+ case 1377:
case 1378:
- case 1379:
- case 1380:
- case 1381:
- case 1384:
- case 1385:
- case 1386:
- case 1387:
- case 1388:
case 1389:
- case 1392:
- case 1393:
- case 1394:
- case 1395:
+ case 1390:
+ case 1391:
+ case 1396:
+ case 1409:
+ case 1426:
+ case 1427:
+ case 1428:
+ case 1429:
+ case 1432:
+ case 1433:
+ case 1434:
+ case 1435:
+ case 1436:
+ case 1437:
+ case 1440:
+ case 1441:
+ case 1442:
+ case 1443:
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
case 3:
@@ -100650,130 +102680,127 @@ goto st307;}
case 170:
case 171:
case 173:
+ case 174:
case 175:
case 176:
+ case 177:
+ case 179:
+ case 181:
case 182:
- case 197:
- case 201:
- case 266:
- case 267:
- case 269:
- case 270:
- case 271:
- case 273:
+ case 188:
+ case 203:
+ case 207:
+ case 274:
+ case 275:
+ case 277:
+ case 278:
+ case 279:
+ case 281:
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 334:
- case 335:
+ case 343:
+ case 344:
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
ERR(ZS_BAD_TTL);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 343:
- case 344:
- case 345:
- case 350:
+ case 352:
+ case 353:
+ case 354:
+ case 359:
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
ERR(ZS_BAD_ORIGIN);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 312:
- case 313:
- case 314:
- case 315:
+ case 321:
+ case 322:
+ case 323:
+ case 324:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_DNAME_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 346:
- case 347:
- case 348:
- case 349:
+ case 355:
+ case 356:
+ case 357:
+ case 358:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
ERR(ZS_BAD_ORIGIN);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 360:
- case 361:
- case 362:
- case 363:
+ case 369:
+ case 370:
+ case 371:
+ case 372:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
ERR(ZS_BAD_INCLUDE_ORIGIN);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 260:
+ case 268:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 286:
- case 287:
- case 288:
- case 289:
- case 290:
- case 291:
- case 292:
- case 293:
case 294:
case 295:
case 296:
@@ -100782,510 +102809,477 @@ goto st307;}
case 299:
case 300:
case 301:
+ case 302:
+ case 303:
case 304:
+ case 305:
+ case 306:
+ case 307:
+ case 308:
+ case 309:
+ case 310:
+ case 313:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 332:
+ case 341:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
ERR(ZS_BAD_TTL);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 541:
- case 542:
- case 550:
- case 551:
+ case 556:
case 557:
+ case 565:
+ case 566:
+ case 572:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_HEX_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 655:
- case 656:
case 693:
case 694:
- case 695:
- case 696:
+ case 735:
+ case 736:
+ case 737:
+ case 738:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_SVCB_PARAM);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 582:
- case 583:
+ case 604:
+ case 605:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_SVCB_MANDATORY);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 852:
- case 853:
- case 854:
- case 856:
- case 858:
- case 860:
- case 890:
- case 891:
- case 956:
- case 957:
- case 958:
- case 959:
- case 960:
- case 961:
- case 967:
- case 968:
- case 969:
- case 970:
- case 986:
- case 987:
- case 1006:
- case 1007:
+ case 894:
+ case 895:
+ case 896:
+ case 898:
+ case 900:
+ case 902:
+ case 932:
+ case 933:
+ case 998:
+ case 999:
+ case 1000:
+ case 1001:
+ case 1002:
+ case 1003:
+ case 1009:
case 1010:
case 1011:
- case 1019:
- case 1020:
- case 1021:
- case 1022:
+ case 1012:
+ case 1028:
case 1029:
- case 1030:
+ case 1048:
+ case 1049:
+ case 1052:
+ case 1053:
+ case 1061:
+ case 1062:
+ case 1063:
+ case 1064:
+ case 1071:
case 1072:
- case 1073:
- case 1074:
- case 1075:
- case 1080:
- case 1081:
- case 1257:
- case 1258:
- case 1259:
- case 1260:
- case 1270:
- case 1271:
- case 1272:
- case 1273:
- case 1274:
- case 1275:
- case 1299:
- case 1300:
- case 1301:
- case 1302:
- case 1303:
- case 1304:
- case 1312:
- case 1313:
- case 1314:
- case 1315:
- case 1316:
- case 1317:
- case 1325:
- case 1326:
- case 1327:
- case 1328:
- case 1331:
- case 1332:
- case 1333:
- case 1334:
- case 1335:
- case 1336:
- case 1344:
- case 1345:
+ case 1114:
+ case 1115:
+ case 1116:
+ case 1117:
+ case 1122:
+ case 1123:
+ case 1305:
+ case 1306:
+ case 1307:
+ case 1308:
+ case 1318:
+ case 1319:
+ case 1320:
+ case 1321:
+ case 1322:
+ case 1323:
+ case 1347:
+ case 1348:
case 1349:
case 1350:
+ case 1351:
+ case 1352:
+ case 1360:
+ case 1361:
+ case 1362:
+ case 1363:
+ case 1364:
+ case 1365:
+ case 1373:
case 1374:
case 1375:
case 1376:
- case 1377:
+ case 1379:
+ case 1380:
+ case 1381:
case 1382:
case 1383:
- case 1390:
- case 1391:
+ case 1384:
+ case 1392:
+ case 1393:
+ case 1397:
+ case 1398:
+ case 1422:
+ case 1423:
+ case 1424:
+ case 1425:
+ case 1430:
+ case 1431:
+ case 1438:
+ case 1439:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
case 162:
- case 177:
- case 193:
- case 196:
+ case 183:
+ case 199:
+ case 202:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1076:
- case 1077:
- case 1078:
- case 1079:
+ case 1118:
+ case 1119:
+ case 1120:
+ case 1121:
{
WARN(ZS_BAD_TIMESTAMP_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 318:
- case 319:
- case 324:
- case 325:
+ case 327:
+ case 328:
+ case 333:
+ case 334:
{
WARN(ZS_BAD_TEXT_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_TEXT);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 895:
- case 896:
- case 897:
- case 898:
+ case 937:
+ case 938:
+ case 939:
+ case 940:
{
s->long_string = false;
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 354:
+ case 363:
{
ERR(ZS_BAD_INCLUDE_FILENAME);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 355:
- case 357:
case 364:
+ case 366:
+ case 373:
{
ERR(ZS_BAD_INCLUDE_ORIGIN);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 636:
- case 637:
- case 638:
- case 639:
- case 640:
- case 641:
- case 647:
- case 648:
- case 649:
- case 650:
- case 651:
- case 652:
+ case 674:
+ case 675:
+ case 676:
+ case 677:
+ case 678:
+ case 679:
+ case 685:
+ case 686:
+ case 687:
+ case 688:
+ case 689:
+ case 690:
{
WARN(ZS_BAD_ADDRESS_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_SVCB_PARAM);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 844:
- case 845:
- case 899:
- case 900:
- case 1346:
- case 1347:
+ case 886:
+ case 887:
+ case 941:
+ case 942:
+ case 1394:
+ case 1395:
{
WARN(ZS_BAD_ADDRESS_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 995:
- case 996:
- case 997:
- case 1000:
- case 1001:
- case 1003:
+ case 1037:
+ case 1038:
+ case 1039:
+ case 1042:
+ case 1043:
+ case 1045:
{
WARN(ZS_BAD_APL);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1012:
- case 1013:
- case 1014:
- case 1015:
- case 1023:
- case 1024:
- case 1025:
- case 1026:
- case 1276:
- case 1277:
- case 1294:
- case 1295:
- case 1305:
- case 1306:
- case 1307:
- case 1308:
- case 1318:
- case 1319:
- case 1320:
- case 1321:
- case 1337:
- case 1338:
- case 1339:
- case 1340:
- case 1351:
- case 1352:
+ case 1054:
+ case 1055:
+ case 1056:
+ case 1057:
+ case 1065:
+ case 1066:
+ case 1067:
+ case 1068:
+ case 1324:
+ case 1325:
+ case 1342:
+ case 1343:
case 1353:
case 1354:
+ case 1355:
case 1356:
- case 1357:
- case 1358:
- case 1359:
- case 1362:
- case 1363:
- case 1365:
case 1366:
+ case 1367:
case 1368:
case 1369:
- case 1371:
- case 1372:
+ case 1385:
+ case 1386:
+ case 1387:
+ case 1388:
+ case 1399:
+ case 1400:
+ case 1401:
+ case 1402:
+ case 1404:
+ case 1405:
+ case 1406:
+ case 1407:
+ case 1410:
+ case 1411:
+ case 1413:
+ case 1414:
+ case 1416:
+ case 1417:
+ case 1419:
+ case 1420:
{
WARN(ZS_BAD_HEX_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1278:
- case 1279:
- case 1280:
- case 1281:
- case 1282:
- case 1283:
- case 1284:
- case 1285:
- case 1286:
- case 1288:
- case 1289:
- case 1290:
- case 1291:
- case 1292:
+ case 1326:
+ case 1327:
+ case 1328:
+ case 1329:
+ case 1330:
+ case 1331:
+ case 1332:
+ case 1333:
+ case 1334:
+ case 1336:
+ case 1337:
+ case 1338:
+ case 1339:
+ case 1340:
{
WARN(ZS_BAD_BASE32HEX_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1031:
- case 1032:
- case 1035:
- case 1044:
- case 1045:
- case 1046:
- case 1051:
- case 1052:
- case 1053:
- case 1058:
- case 1059:
- case 1060:
- case 1063:
- case 1065:
- case 1066:
+ case 1073:
+ case 1074:
+ case 1077:
+ case 1086:
+ case 1087:
+ case 1088:
+ case 1093:
+ case 1094:
+ case 1095:
+ case 1100:
+ case 1101:
+ case 1102:
+ case 1105:
+ case 1107:
+ case 1108:
{
WARN(ZS_BAD_GATEWAY);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1037:
- case 1038:
- case 1039:
- case 1040:
- case 1041:
- case 1042:
- case 1043:
+ case 1079:
+ case 1080:
+ case 1081:
+ case 1082:
+ case 1083:
+ case 1084:
+ case 1085:
{
WARN(ZS_BAD_GATEWAY_KEY);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1068:
- case 1069:
- case 1094:
- case 1095:
- case 1096:
- case 1097:
- case 1098:
- case 1099:
- case 1100:
- case 1101:
- case 1102:
- case 1103:
- case 1104:
- case 1105:
- case 1106:
- case 1107:
- case 1108:
- case 1109:
case 1110:
case 1111:
- case 1112:
- case 1113:
- case 1114:
- case 1115:
- case 1116:
- case 1117:
- case 1118:
- case 1119:
- case 1120:
- case 1121:
- case 1122:
- case 1123:
- case 1124:
- case 1125:
- case 1126:
- case 1127:
- case 1128:
- case 1129:
- case 1130:
- case 1131:
- case 1132:
- case 1133:
- case 1134:
- case 1135:
case 1136:
case 1137:
case 1138:
@@ -101393,6 +103387,8 @@ goto st307;}
case 1240:
case 1241:
case 1242:
+ case 1243:
+ case 1244:
case 1245:
case 1246:
case 1247:
@@ -101402,61 +103398,65 @@ goto st307;}
case 1251:
case 1252:
case 1253:
+ case 1254:
+ case 1255:
+ case 1256:
+ case 1257:
+ case 1258:
+ case 1259:
+ case 1260:
+ case 1261:
+ case 1262:
+ case 1263:
+ case 1264:
+ case 1265:
+ case 1266:
+ case 1267:
+ case 1268:
+ case 1269:
+ case 1270:
+ case 1271:
+ case 1272:
+ case 1273:
+ case 1274:
+ case 1275:
+ case 1276:
+ case 1277:
+ case 1278:
+ case 1279:
+ case 1280:
+ case 1281:
+ case 1282:
+ case 1283:
+ case 1284:
+ case 1287:
+ case 1288:
+ case 1289:
+ case 1290:
+ case 1291:
+ case 1292:
+ case 1293:
+ case 1294:
+ case 1295:
+ case 1296:
+ case 1297:
+ case 1298:
+ case 1299:
+ case 1300:
+ case 1301:
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 901:
- case 902:
- case 903:
- case 904:
- case 905:
- case 906:
- case 907:
- case 908:
- case 909:
- case 910:
- case 911:
- case 912:
- case 913:
- case 914:
- case 915:
- case 916:
- case 917:
- case 918:
- case 919:
- case 920:
- case 921:
- case 922:
- case 923:
- case 924:
- case 925:
- case 926:
- case 927:
- case 928:
- case 929:
- case 930:
- case 931:
- case 932:
- case 933:
- case 934:
- case 935:
- case 936:
- case 937:
- case 938:
- case 939:
- case 940:
- case 941:
- case 942:
case 943:
case 944:
case 945:
@@ -101470,17 +103470,59 @@ goto st307;}
case 953:
case 954:
case 955:
+ case 956:
+ case 957:
+ case 958:
+ case 959:
+ case 960:
+ case 961:
+ case 962:
+ case 963:
+ case 964:
+ case 965:
+ case 966:
+ case 967:
+ case 968:
+ case 969:
+ case 970:
+ case 971:
+ case 972:
+ case 973:
+ case 974:
+ case 975:
+ case 976:
+ case 977:
+ case 978:
+ case 979:
+ case 980:
+ case 981:
+ case 982:
+ case 983:
+ case 984:
+ case 985:
+ case 986:
+ case 987:
+ case 988:
+ case 989:
+ case 990:
+ case 991:
+ case 992:
+ case 993:
+ case 994:
+ case 995:
+ case 996:
+ case 997:
{
WARN(ZS_BAD_LOC_DATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
case 6:
@@ -101489,48 +103531,48 @@ goto st307;}
case 13:
case 20:
case 21:
- case 205:
- case 208:
- case 227:
- case 262:
- case 264:
- case 265:
- case 275:
- case 276:
- case 278:
- case 279:
- case 280:
- case 281:
+ case 211:
+ case 214:
+ case 234:
+ case 270:
+ case 272:
+ case 273:
+ case 283:
case 284:
- case 285:
+ case 286:
+ case 287:
+ case 288:
+ case 289:
+ case 292:
+ case 293:
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
case 16:
- case 241:
- case 303:
- case 305:
+ case 248:
+ case 312:
+ case 314:
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
case 4:
@@ -101578,447 +103620,442 @@ goto st307;}
case 159:
case 166:
case 172:
- case 268:
- case 272:
- case 274:
+ case 178:
+ case 276:
+ case 280:
+ case 282:
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 238:
+ case 245:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 202:
+ case 208:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1033:
- case 1034:
- case 1047:
- case 1048:
- case 1054:
- case 1055:
- case 1061:
- case 1062:
+ case 1075:
+ case 1076:
+ case 1089:
+ case 1090:
+ case 1096:
+ case 1097:
+ case 1103:
+ case 1104:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_GATEWAY);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1243:
- case 1244:
+ case 1285:
+ case 1286:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
case 1:
- case 174:
- case 206:
- case 240:
+ case 180:
+ case 212:
+ case 247:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
case 163:
- case 203:
+ case 209:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 337:
+ case 346:
{
WARN(ZS_BAD_TIME_UNIT);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
ERR(ZS_BAD_TTL);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 855:
- case 857:
- case 859:
- case 861:
- case 862:
- case 863:
- case 864:
- case 866:
- case 867:
- case 868:
- case 870:
- case 871:
- case 872:
- case 874:
- case 875:
- case 876:
+ case 897:
+ case 899:
+ case 901:
+ case 903:
+ case 904:
+ case 905:
+ case 906:
+ case 908:
+ case 909:
+ case 910:
+ case 912:
+ case 913:
+ case 914:
+ case 916:
+ case 917:
+ case 918:
{
WARN(ZS_BAD_TIME_UNIT);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
case 2:
- case 178:
- case 179:
- case 180:
- case 181:
- case 198:
- case 199:
- case 200:
+ case 184:
+ case 185:
+ case 186:
+ case 187:
+ case 204:
+ case 205:
+ case 206:
{
WARN(ZS_BAD_TIME_UNIT);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 320:
- case 321:
- case 322:
- case 323:
- case 327:
- case 328:
case 329:
case 330:
+ case 331:
+ case 332:
+ case 336:
+ case 337:
+ case 338:
+ case 339:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_TEXT_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_TEXT);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 998:
- case 999:
- case 1004:
- case 1005:
+ case 1040:
+ case 1041:
+ case 1046:
+ case 1047:
{
WARN(ZS_BAD_ADDRESS_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_APL);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1049:
- case 1056:
+ case 1091:
+ case 1098:
{
WARN(ZS_BAD_ADDRESS_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_GATEWAY);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 543:
- case 544:
- case 545:
- case 546:
- case 552:
- case 553:
- case 554:
- case 555:
+ case 558:
+ case 559:
+ case 560:
+ case 561:
+ case 567:
+ case 568:
+ case 569:
+ case 570:
{
WARN(ZS_BAD_HEX_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_HEX_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_HEX_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1355:
+ case 1403:
{
WARN(ZS_BAD_HEX_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_CHAR_COLON);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1036:
- case 1064:
+ case 1078:
+ case 1106:
{
WARN(ZS_BAD_GATEWAY);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_GATEWAY_KEY);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1364:
- case 1367:
- case 1370:
- case 1373:
+ case 1412:
+ case 1415:
+ case 1418:
+ case 1421:
{
WARN(ZS_BAD_CHAR_DASH);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_HEX_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1360:
+ case 1408:
{
WARN(ZS_BAD_CHAR_COLON);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_HEX_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 228:
+ case 235:
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
ERR(ZS_BAD_DIRECTIVE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 204:
- case 211:
- case 212:
- case 213:
- case 214:
- case 215:
- case 216:
+ case 210:
case 217:
case 218:
case 219:
@@ -102029,60 +104066,60 @@ goto st307;}
case 224:
case 225:
case 226:
+ case 227:
+ case 228:
+ case 229:
+ case 230:
+ case 231:
+ case 232:
+ case 233:
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 195:
+ case 201:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_TIME_UNIT);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 242:
- case 244:
- case 245:
- case 246:
- case 247:
- case 248:
case 249:
- case 250:
case 251:
case 252:
case 253:
@@ -102092,186 +104129,194 @@ goto st307;}
case 257:
case 258:
case 259:
+ case 260:
+ case 261:
+ case 262:
+ case 263:
+ case 264:
+ case 265:
+ case 266:
+ case 267:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
case 14:
- case 210:
- case 243:
- case 261:
- case 283:
+ case 216:
+ case 250:
+ case 269:
+ case 291:
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 333:
- case 336:
- case 338:
+ case 342:
+ case 345:
+ case 347:
{
WARN(ZS_BAD_TIME_UNIT);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
ERR(ZS_BAD_TTL);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 1050:
- case 1057:
+ case 1092:
+ case 1099:
{
WARN(ZS_BAD_ADDRESS_CHAR);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_GATEWAY);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_GATEWAY_KEY);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
case 15:
{
WARN(ZS_BAD_TIME_UNIT);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
- case 239:
+ case 246:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_TIME_UNIT);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_NUMBER);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_UNSUPPORTED_TYPE);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_RDATA);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
{
WARN(ZS_BAD_REST);
p--; { if ( p == pe )
- goto _test_eof307;
-goto st307;}
+ goto _test_eof316;
+goto st316;}
}
break;
}
diff --git a/src/libzscanner/scanner.c.t0 b/src/libzscanner/scanner.c.t0
index b1b2616..8ade6a5 100644
--- a/src/libzscanner/scanner.c.t0
+++ b/src/libzscanner/scanner.c.t0
@@ -112,788 +112,803 @@ static const short _zone_scanner_actions[] = {
125, 1, 126, 1, 128, 1, 129, 1,
130, 1, 131, 1, 145, 1, 146, 1,
148, 1, 149, 1, 150, 1, 151, 1,
- 159, 1, 160, 1, 161, 1, 162, 1,
- 163, 1, 164, 1, 165, 1, 166, 1,
- 167, 1, 168, 1, 169, 1, 170, 1,
- 171, 1, 172, 1, 173, 1, 174, 1,
- 175, 1, 176, 1, 177, 1, 178, 1,
- 179, 1, 180, 1, 181, 1, 182, 1,
- 183, 1, 184, 1, 185, 1, 186, 1,
- 187, 1, 188, 1, 189, 1, 190, 1,
- 191, 1, 192, 1, 193, 1, 194, 1,
- 195, 1, 196, 1, 197, 1, 198, 1,
- 199, 1, 200, 1, 201, 1, 202, 1,
- 203, 1, 204, 1, 205, 1, 206, 1,
- 207, 1, 208, 1, 209, 1, 210, 1,
- 211, 1, 212, 1, 213, 1, 214, 1,
- 215, 1, 216, 1, 217, 1, 218, 1,
- 219, 1, 220, 1, 221, 1, 222, 1,
- 223, 1, 224, 1, 225, 1, 226, 1,
- 227, 1, 228, 1, 229, 1, 230, 1,
- 231, 1, 232, 1, 233, 1, 234, 1,
- 235, 1, 236, 1, 237, 1, 238, 1,
- 239, 1, 240, 1, 241, 1, 242, 1,
- 243, 1, 244, 1, 245, 1, 246, 1,
- 247, 1, 248, 1, 249, 1, 250, 1,
- 251, 1, 252, 1, 253, 1, 254, 1,
- 255, 1, 256, 1, 258, 1, 260, 1,
- 261, 1, 262, 1, 263, 1, 270, 1,
- 271, 1, 276, 1, 278, 1, 283, 1,
- 286, 1, 288, 1, 289, 1, 290, 1,
- 291, 1, 296, 1, 297, 1, 299, 1,
- 300, 1, 301, 1, 302, 1, 304, 1,
- 305, 1, 306, 1, 307, 1, 309, 2,
- 0, 49, 2, 1, 0, 2, 1, 305,
- 2, 1, 358, 2, 2, 5, 2, 2,
- 7, 2, 3, 5, 2, 3, 7, 2,
- 4, 0, 2, 4, 5, 2, 4, 7,
- 2, 4, 305, 2, 5, 2, 2, 5,
- 3, 2, 5, 4, 2, 5, 7, 2,
- 6, 1, 2, 7, 1, 2, 7, 2,
- 2, 7, 3, 2, 7, 4, 2, 7,
- 5, 2, 7, 32, 2, 8, 73, 2,
- 8, 77, 2, 9, 10, 2, 11, 1,
- 2, 12, 1, 2, 13, 14, 2, 16,
- 17, 2, 18, 14, 2, 18, 15, 2,
- 19, 24, 2, 19, 77, 2, 19, 84,
- 2, 20, 0, 2, 20, 7, 2, 22,
- 0, 2, 23, 13, 2, 26, 69, 2,
- 26, 108, 2, 26, 119, 2, 27, 0,
- 2, 27, 1, 2, 27, 2, 2, 27,
- 3, 2, 27, 4, 2, 27, 259, 2,
- 28, 69, 2, 28, 113, 2, 29, 291,
- 2, 29, 295, 2, 30, 25, 2, 31,
- 1, 2, 31, 2, 2, 31, 3, 2,
- 31, 4, 2, 31, 7, 2, 31, 93,
- 2, 32, 7, 2, 33, 8, 2, 33,
- 304, 2, 33, 309, 2, 34, 25, 2,
- 35, 0, 2, 35, 1, 2, 35, 2,
- 2, 35, 3, 2, 35, 4, 2, 35,
- 259, 2, 35, 298, 2, 36, 41, 2,
- 37, 36, 2, 38, 73, 2, 38, 276,
- 2, 38, 288, 2, 38, 289, 2, 38,
- 304, 2, 38, 309, 2, 42, 264, 2,
- 42, 265, 2, 42, 266, 2, 42, 267,
- 2, 42, 268, 2, 42, 269, 2, 45,
- 0, 2, 45, 1, 2, 45, 2, 2,
- 45, 3, 2, 45, 4, 2, 46, 0,
- 2, 46, 1, 2, 46, 2, 2, 46,
- 3, 2, 46, 4, 2, 46, 259, 2,
- 46, 291, 2, 47, 0, 2, 47, 1,
- 2, 47, 2, 2, 47, 3, 2, 47,
- 4, 2, 48, 303, 2, 49, 1, 2,
- 49, 2, 2, 49, 3, 2, 49, 4,
- 2, 56, 7, 2, 56, 47, 2, 56,
- 93, 2, 57, 58, 2, 59, 1, 2,
- 59, 2, 2, 59, 3, 2, 59, 4,
- 2, 60, 304, 2, 62, 63, 2, 64,
- 65, 2, 66, 68, 2, 68, 0, 2,
- 68, 61, 2, 71, 0, 2, 71, 304,
- 2, 75, 23, 2, 79, 69, 2, 80,
- 7, 2, 81, 8, 2, 82, 23, 2,
- 84, 8, 2, 90, 91, 2, 92, 1,
- 2, 92, 2, 2, 92, 3, 2, 92,
- 4, 2, 93, 1, 2, 93, 2, 2,
- 93, 3, 2, 93, 4, 2, 93, 7,
- 2, 94, 95, 2, 96, 288, 2, 96,
- 304, 2, 97, 98, 2, 99, 100, 2,
- 101, 102, 2, 101, 103, 2, 101, 104,
- 2, 105, 106, 2, 107, 304, 2, 110,
- 304, 2, 111, 0, 2, 127, 304, 2,
- 129, 0, 2, 130, 0, 2, 131, 0,
- 2, 132, 0, 2, 133, 0, 2, 134,
- 0, 2, 135, 0, 2, 136, 0, 2,
- 137, 0, 2, 138, 0, 2, 139, 0,
- 2, 140, 0, 2, 141, 0, 2, 142,
- 0, 2, 143, 0, 2, 144, 0, 2,
- 146, 0, 2, 147, 0, 2, 148, 0,
- 2, 149, 0, 2, 150, 0, 2, 151,
- 0, 2, 152, 0, 2, 153, 0, 2,
- 154, 0, 2, 155, 0, 2, 156, 304,
- 2, 157, 304, 2, 158, 304, 2, 159,
- 1, 2, 159, 2, 2, 159, 3, 2,
- 159, 4, 2, 160, 1, 2, 160, 2,
- 2, 160, 3, 2, 160, 4, 2, 161,
- 1, 2, 161, 2, 2, 161, 3, 2,
- 161, 4, 2, 162, 1, 2, 162, 2,
- 2, 162, 3, 2, 162, 4, 2, 163,
- 1, 2, 163, 2, 2, 163, 3, 2,
- 163, 4, 2, 164, 1, 2, 164, 2,
- 2, 164, 3, 2, 164, 4, 2, 165,
- 1, 2, 165, 2, 2, 165, 3, 2,
- 165, 4, 2, 166, 1, 2, 166, 2,
- 2, 166, 3, 2, 166, 4, 2, 167,
- 1, 2, 167, 2, 2, 167, 3, 2,
- 167, 4, 2, 168, 1, 2, 168, 2,
- 2, 168, 3, 2, 168, 4, 2, 169,
- 1, 2, 169, 2, 2, 169, 3, 2,
- 169, 4, 2, 170, 1, 2, 170, 2,
- 2, 170, 3, 2, 170, 4, 2, 171,
- 1, 2, 171, 2, 2, 171, 3, 2,
- 171, 4, 2, 172, 1, 2, 172, 2,
- 2, 172, 3, 2, 172, 4, 2, 173,
- 1, 2, 173, 2, 2, 173, 3, 2,
- 173, 4, 2, 174, 1, 2, 174, 2,
- 2, 174, 3, 2, 174, 4, 2, 175,
- 1, 2, 175, 2, 2, 175, 3, 2,
- 175, 4, 2, 176, 1, 2, 176, 2,
- 2, 176, 3, 2, 176, 4, 2, 177,
- 1, 2, 177, 2, 2, 177, 3, 2,
- 177, 4, 2, 178, 1, 2, 178, 2,
- 2, 178, 3, 2, 178, 4, 2, 179,
- 1, 2, 179, 2, 2, 179, 3, 2,
- 179, 4, 2, 180, 1, 2, 180, 2,
- 2, 180, 3, 2, 180, 4, 2, 181,
- 1, 2, 181, 2, 2, 181, 3, 2,
- 181, 4, 2, 182, 1, 2, 182, 2,
- 2, 182, 3, 2, 182, 4, 2, 183,
- 1, 2, 183, 2, 2, 183, 3, 2,
- 183, 4, 2, 184, 1, 2, 184, 2,
- 2, 184, 3, 2, 184, 4, 2, 185,
- 1, 2, 185, 2, 2, 185, 3, 2,
- 185, 4, 2, 186, 1, 2, 186, 2,
- 2, 186, 3, 2, 186, 4, 2, 187,
- 1, 2, 187, 2, 2, 187, 3, 2,
- 187, 4, 2, 188, 1, 2, 188, 2,
- 2, 188, 3, 2, 188, 4, 2, 189,
- 1, 2, 189, 2, 2, 189, 3, 2,
- 189, 4, 2, 190, 1, 2, 190, 2,
- 2, 190, 3, 2, 190, 4, 2, 191,
- 1, 2, 191, 2, 2, 191, 3, 2,
- 191, 4, 2, 192, 1, 2, 192, 2,
- 2, 192, 3, 2, 192, 4, 2, 193,
- 1, 2, 193, 2, 2, 193, 3, 2,
- 193, 4, 2, 194, 1, 2, 194, 2,
- 2, 194, 3, 2, 194, 4, 2, 195,
- 1, 2, 195, 2, 2, 195, 3, 2,
- 195, 4, 2, 196, 1, 2, 196, 2,
- 2, 196, 3, 2, 196, 4, 2, 197,
- 1, 2, 197, 2, 2, 197, 3, 2,
- 197, 4, 2, 198, 1, 2, 198, 2,
- 2, 198, 3, 2, 198, 4, 2, 199,
- 1, 2, 199, 2, 2, 199, 3, 2,
- 199, 4, 2, 200, 1, 2, 200, 2,
- 2, 200, 3, 2, 200, 4, 2, 201,
- 1, 2, 201, 2, 2, 201, 3, 2,
- 201, 4, 2, 202, 1, 2, 202, 2,
- 2, 202, 3, 2, 202, 4, 2, 203,
- 1, 2, 203, 2, 2, 203, 3, 2,
- 203, 4, 2, 204, 1, 2, 204, 2,
- 2, 204, 3, 2, 204, 4, 2, 205,
- 1, 2, 205, 2, 2, 205, 3, 2,
- 205, 4, 2, 206, 1, 2, 206, 2,
- 2, 206, 3, 2, 206, 4, 2, 207,
- 1, 2, 207, 2, 2, 207, 3, 2,
- 207, 4, 2, 208, 1, 2, 208, 2,
- 2, 208, 3, 2, 208, 4, 2, 209,
- 1, 2, 209, 2, 2, 209, 3, 2,
- 209, 4, 2, 210, 1, 2, 210, 2,
- 2, 210, 3, 2, 210, 4, 2, 211,
- 1, 2, 211, 2, 2, 211, 3, 2,
- 211, 4, 2, 212, 1, 2, 212, 2,
- 2, 212, 3, 2, 212, 4, 2, 213,
- 1, 2, 213, 2, 2, 213, 3, 2,
- 213, 4, 2, 214, 1, 2, 214, 2,
- 2, 214, 3, 2, 214, 4, 2, 215,
- 1, 2, 215, 2, 2, 215, 3, 2,
- 215, 4, 2, 216, 1, 2, 216, 2,
- 2, 216, 3, 2, 216, 4, 2, 217,
- 1, 2, 217, 2, 2, 217, 3, 2,
- 217, 4, 2, 218, 1, 2, 218, 2,
- 2, 218, 3, 2, 218, 4, 2, 219,
- 1, 2, 219, 2, 2, 219, 3, 2,
- 219, 4, 2, 220, 1, 2, 220, 2,
- 2, 220, 3, 2, 220, 4, 2, 221,
- 1, 2, 221, 2, 2, 221, 3, 2,
- 221, 4, 2, 222, 1, 2, 222, 2,
- 2, 222, 3, 2, 222, 4, 2, 223,
- 1, 2, 223, 2, 2, 223, 3, 2,
- 223, 4, 2, 224, 1, 2, 224, 2,
- 2, 224, 3, 2, 224, 4, 2, 225,
- 1, 2, 225, 2, 2, 225, 3, 2,
- 225, 4, 2, 226, 1, 2, 226, 2,
- 2, 226, 3, 2, 226, 4, 2, 227,
- 1, 2, 227, 2, 2, 227, 3, 2,
- 227, 4, 2, 228, 1, 2, 228, 2,
- 2, 228, 3, 2, 228, 4, 2, 229,
- 1, 2, 229, 2, 2, 229, 3, 2,
- 229, 4, 2, 230, 1, 2, 230, 2,
- 2, 230, 3, 2, 230, 4, 2, 231,
- 1, 2, 231, 2, 2, 231, 3, 2,
- 231, 4, 2, 232, 1, 2, 232, 2,
- 2, 232, 3, 2, 232, 4, 2, 233,
- 1, 2, 233, 2, 2, 233, 3, 2,
- 233, 4, 2, 234, 1, 2, 234, 2,
- 2, 234, 3, 2, 234, 4, 2, 235,
- 1, 2, 235, 2, 2, 235, 3, 2,
- 235, 4, 2, 236, 1, 2, 236, 2,
- 2, 236, 3, 2, 236, 4, 2, 237,
- 1, 2, 237, 2, 2, 237, 3, 2,
- 237, 4, 2, 238, 1, 2, 238, 2,
- 2, 238, 3, 2, 238, 4, 2, 239,
- 1, 2, 239, 2, 2, 239, 3, 2,
- 239, 4, 2, 240, 1, 2, 240, 2,
- 2, 240, 3, 2, 240, 4, 2, 241,
- 1, 2, 241, 2, 2, 241, 3, 2,
- 241, 4, 2, 242, 1, 2, 242, 2,
- 2, 242, 3, 2, 242, 4, 2, 243,
- 1, 2, 243, 2, 2, 243, 3, 2,
- 243, 4, 2, 244, 1, 2, 244, 2,
- 2, 244, 3, 2, 244, 4, 2, 245,
- 1, 2, 245, 2, 2, 245, 3, 2,
- 245, 4, 2, 246, 1, 2, 246, 2,
- 2, 246, 3, 2, 246, 4, 2, 247,
- 1, 2, 247, 2, 2, 247, 3, 2,
- 247, 4, 2, 248, 1, 2, 248, 2,
- 2, 248, 3, 2, 248, 4, 2, 249,
- 1, 2, 249, 2, 2, 249, 3, 2,
- 249, 4, 2, 250, 1, 2, 250, 2,
- 2, 250, 3, 2, 250, 4, 2, 251,
- 1, 2, 251, 2, 2, 251, 3, 2,
- 251, 4, 2, 252, 1, 2, 252, 2,
- 2, 252, 3, 2, 252, 4, 2, 253,
- 1, 2, 253, 2, 2, 253, 3, 2,
- 253, 4, 2, 254, 1, 2, 254, 2,
- 2, 254, 3, 2, 254, 4, 2, 255,
- 1, 2, 255, 2, 2, 255, 3, 2,
- 255, 4, 2, 256, 1, 2, 256, 2,
- 2, 256, 3, 2, 256, 4, 2, 257,
- 0, 2, 260, 1, 2, 260, 2, 2,
- 260, 3, 2, 260, 4, 2, 261, 1,
- 2, 261, 2, 2, 261, 3, 2, 261,
- 4, 2, 262, 1, 2, 262, 2, 2,
- 262, 3, 2, 262, 4, 2, 263, 1,
- 2, 263, 2, 2, 263, 3, 2, 263,
- 4, 2, 270, 1, 2, 270, 2, 2,
- 270, 3, 2, 270, 4, 2, 271, 1,
- 2, 271, 2, 2, 271, 3, 2, 271,
- 4, 2, 274, 0, 2, 275, 304, 2,
- 277, 108, 2, 282, 108, 2, 286, 1,
- 2, 286, 2, 2, 286, 3, 2, 286,
- 4, 2, 287, 0, 2, 291, 1, 2,
- 291, 2, 2, 291, 3, 2, 291, 4,
- 2, 304, 8, 2, 305, 1, 2, 305,
- 4, 2, 308, 305, 2, 309, 8, 2,
- 309, 304, 2, 310, 303, 2, 311, 303,
- 2, 312, 303, 2, 313, 303, 2, 314,
- 303, 2, 315, 303, 2, 316, 303, 2,
- 317, 303, 2, 318, 303, 2, 319, 303,
- 2, 320, 303, 2, 321, 303, 2, 322,
- 303, 2, 323, 303, 2, 324, 303, 2,
- 325, 303, 2, 326, 303, 2, 327, 303,
- 2, 328, 303, 2, 329, 303, 2, 330,
- 303, 2, 331, 303, 2, 332, 303, 2,
- 333, 303, 2, 334, 303, 2, 335, 303,
- 2, 336, 303, 2, 337, 303, 2, 338,
- 303, 2, 339, 303, 2, 340, 303, 2,
- 341, 303, 2, 342, 303, 2, 343, 303,
- 2, 344, 303, 2, 345, 303, 2, 346,
- 303, 2, 347, 303, 2, 348, 303, 2,
- 349, 303, 2, 350, 303, 2, 351, 303,
- 2, 352, 303, 2, 353, 303, 2, 354,
- 303, 2, 355, 303, 2, 356, 303, 2,
- 357, 303, 2, 358, 1, 3, 0, 49,
- 1, 3, 0, 49, 2, 3, 0, 49,
- 3, 3, 0, 49, 4, 3, 1, 7,
- 358, 3, 1, 32, 7, 3, 1, 71,
- 0, 3, 1, 111, 0, 3, 1, 257,
- 0, 3, 1, 274, 0, 3, 1, 287,
- 0, 3, 1, 305, 358, 3, 2, 7,
- 32, 3, 2, 32, 7, 3, 3, 7,
- 32, 3, 3, 32, 7, 3, 4, 7,
- 32, 3, 4, 32, 7, 3, 4, 71,
- 0, 3, 4, 111, 0, 3, 4, 257,
- 0, 3, 4, 274, 0, 3, 4, 287,
- 0, 3, 4, 305, 7, 3, 5, 7,
- 2, 3, 5, 7, 3, 3, 5, 7,
- 4, 3, 6, 1, 358, 3, 6, 358,
- 1, 3, 7, 2, 5, 3, 7, 2,
- 32, 3, 7, 3, 5, 3, 7, 3,
- 32, 3, 7, 4, 5, 3, 7, 4,
- 32, 3, 7, 358, 1, 3, 9, 11,
- 1, 3, 15, 21, 0, 3, 20, 7,
- 2, 3, 20, 7, 3, 3, 20, 7,
- 4, 3, 20, 83, 7, 3, 23, 13,
- 14, 3, 27, 71, 0, 3, 27, 293,
- 29, 3, 28, 94, 95, 3, 29, 291,
- 1, 3, 29, 291, 2, 3, 29, 291,
- 3, 3, 29, 291, 4, 3, 29, 295,
- 291, 3, 31, 1, 93, 3, 31, 2,
- 7, 3, 31, 2, 93, 3, 31, 3,
- 7, 3, 31, 3, 93, 3, 31, 4,
- 7, 3, 31, 4, 93, 3, 31, 93,
- 7, 3, 31, 308, 305, 3, 31, 310,
- 303, 3, 32, 1, 7, 3, 32, 2,
- 7, 3, 32, 3, 7, 3, 32, 4,
- 7, 3, 33, 89, 8, 3, 33, 304,
- 8, 3, 33, 309, 8, 3, 33, 309,
- 304, 3, 35, 1, 0, 3, 35, 4,
- 0, 3, 37, 36, 305, 3, 38, 156,
- 304, 3, 38, 158, 304, 3, 38, 309,
- 8, 3, 38, 309, 304, 3, 40, 42,
- 264, 3, 40, 42, 265, 3, 40, 42,
- 266, 3, 40, 42, 267, 3, 40, 42,
- 268, 3, 40, 42, 269, 3, 42, 264,
- 1, 3, 42, 264, 2, 3, 42, 264,
- 3, 3, 42, 264, 4, 3, 42, 265,
- 1, 3, 42, 265, 2, 3, 42, 265,
- 3, 3, 42, 265, 4, 3, 42, 266,
- 1, 3, 42, 266, 2, 3, 42, 266,
- 3, 3, 42, 266, 4, 3, 42, 267,
- 1, 3, 42, 267, 2, 3, 42, 267,
- 3, 3, 42, 267, 4, 3, 42, 268,
- 1, 3, 42, 268, 2, 3, 42, 268,
- 3, 3, 42, 268, 4, 3, 42, 269,
- 1, 3, 42, 269, 2, 3, 42, 269,
- 3, 3, 42, 269, 4, 3, 46, 145,
- 291, 3, 46, 291, 1, 3, 46, 291,
- 2, 3, 46, 291, 3, 3, 46, 291,
- 4, 3, 48, 303, 1, 3, 48, 303,
- 2, 3, 48, 303, 3, 3, 48, 303,
- 4, 3, 48, 303, 305, 3, 50, 38,
- 73, 3, 50, 38, 304, 3, 50, 38,
- 309, 3, 55, 37, 36, 3, 56, 7,
- 2, 3, 56, 7, 3, 3, 56, 7,
- 4, 3, 56, 47, 0, 3, 56, 47,
- 1, 3, 56, 47, 2, 3, 56, 47,
- 3, 3, 56, 47, 4, 3, 56, 93,
- 1, 3, 56, 93, 2, 3, 56, 93,
- 3, 3, 56, 93, 4, 3, 66, 68,
- 0, 3, 66, 68, 61, 3, 67, 62,
- 63, 3, 68, 61, 0, 3, 70, 26,
- 69, 3, 72, 0, 1, 3, 75, 23,
- 13, 3, 76, 0, 1, 3, 80, 2,
- 7, 3, 80, 3, 7, 3, 80, 4,
- 7, 3, 80, 7, 4, 3, 82, 23,
- 13, 3, 85, 0, 1, 3, 88, 7,
- 1, 3, 88, 7, 4, 3, 88, 30,
- 25, 3, 88, 32, 7, 3, 90, 30,
- 25, 3, 90, 91, 305, 3, 93, 2,
- 7, 3, 93, 3, 7, 3, 93, 4,
- 7, 3, 96, 107, 304, 3, 96, 156,
- 304, 3, 97, 98, 0, 3, 97, 98,
- 1, 3, 97, 98, 2, 3, 97, 98,
- 3, 3, 97, 98, 4, 3, 97, 98,
- 29, 3, 99, 100, 0, 3, 99, 100,
- 1, 3, 99, 100, 2, 3, 99, 100,
- 3, 3, 99, 100, 4, 3, 99, 100,
- 29, 3, 105, 106, 0, 3, 105, 106,
- 1, 3, 105, 106, 2, 3, 105, 106,
- 3, 3, 105, 106, 4, 3, 110, 112,
- 276, 3, 110, 285, 304, 3, 147, 145,
- 291, 3, 156, 157, 304, 3, 207, 257,
- 0, 3, 208, 257, 0, 3, 209, 257,
- 0, 3, 210, 257, 0, 3, 211, 257,
- 0, 3, 212, 257, 0, 3, 213, 257,
- 0, 3, 214, 257, 0, 3, 215, 257,
- 0, 3, 216, 257, 0, 3, 217, 257,
- 0, 3, 218, 257, 0, 3, 219, 257,
- 0, 3, 220, 257, 0, 3, 221, 257,
- 0, 3, 222, 257, 0, 3, 223, 257,
- 0, 3, 224, 257, 0, 3, 225, 257,
- 0, 3, 226, 257, 0, 3, 227, 257,
- 0, 3, 228, 257, 0, 3, 229, 257,
- 0, 3, 230, 257, 0, 3, 231, 257,
- 0, 3, 232, 257, 0, 3, 233, 257,
- 0, 3, 234, 257, 0, 3, 235, 257,
- 0, 3, 236, 257, 0, 3, 237, 257,
- 0, 3, 238, 257, 0, 3, 239, 257,
- 0, 3, 240, 257, 0, 3, 241, 257,
- 0, 3, 242, 257, 0, 3, 243, 257,
- 0, 3, 244, 257, 0, 3, 245, 257,
- 0, 3, 246, 257, 0, 3, 247, 257,
- 0, 3, 248, 257, 0, 3, 249, 257,
- 0, 3, 250, 257, 0, 3, 251, 257,
- 0, 3, 252, 257, 0, 3, 253, 257,
- 0, 3, 254, 257, 0, 3, 255, 257,
- 0, 3, 256, 257, 0, 3, 273, 37,
- 36, 3, 278, 279, 0, 3, 278, 280,
- 0, 3, 281, 110, 304, 3, 283, 284,
- 0, 3, 285, 110, 304, 3, 286, 287,
- 0, 3, 291, 287, 0, 3, 294, 28,
- 297, 3, 304, 8, 89, 3, 305, 7,
- 1, 3, 305, 7, 4, 3, 305, 30,
- 25, 3, 305, 358, 1, 3, 307, 30,
- 25, 3, 309, 304, 8, 3, 310, 303,
- 1, 3, 310, 303, 2, 3, 310, 303,
- 3, 3, 310, 303, 4, 3, 310, 303,
- 7, 3, 310, 303, 305, 3, 311, 303,
- 1, 3, 311, 303, 2, 3, 311, 303,
- 3, 3, 311, 303, 4, 3, 311, 303,
- 305, 3, 312, 303, 1, 3, 312, 303,
- 2, 3, 312, 303, 3, 3, 312, 303,
- 4, 3, 312, 303, 305, 3, 313, 303,
- 1, 3, 313, 303, 2, 3, 313, 303,
- 3, 3, 313, 303, 4, 3, 313, 303,
- 305, 3, 314, 303, 1, 3, 314, 303,
- 2, 3, 314, 303, 3, 3, 314, 303,
- 4, 3, 314, 303, 305, 3, 315, 303,
- 1, 3, 315, 303, 2, 3, 315, 303,
- 3, 3, 315, 303, 4, 3, 315, 303,
- 305, 3, 316, 303, 1, 3, 316, 303,
- 2, 3, 316, 303, 3, 3, 316, 303,
- 4, 3, 316, 303, 305, 3, 317, 303,
- 1, 3, 317, 303, 2, 3, 317, 303,
- 3, 3, 317, 303, 4, 3, 317, 303,
- 305, 3, 318, 303, 1, 3, 318, 303,
- 2, 3, 318, 303, 3, 3, 318, 303,
- 4, 3, 318, 303, 305, 3, 319, 303,
- 1, 3, 319, 303, 2, 3, 319, 303,
- 3, 3, 319, 303, 4, 3, 319, 303,
- 305, 3, 320, 303, 1, 3, 320, 303,
- 2, 3, 320, 303, 3, 3, 320, 303,
- 4, 3, 320, 303, 305, 3, 321, 303,
- 1, 3, 321, 303, 2, 3, 321, 303,
- 3, 3, 321, 303, 4, 3, 321, 303,
- 305, 3, 322, 303, 1, 3, 322, 303,
- 2, 3, 322, 303, 3, 3, 322, 303,
- 4, 3, 322, 303, 305, 3, 323, 303,
- 1, 3, 323, 303, 2, 3, 323, 303,
- 3, 3, 323, 303, 4, 3, 323, 303,
- 305, 3, 324, 303, 1, 3, 324, 303,
- 2, 3, 324, 303, 3, 3, 324, 303,
- 4, 3, 324, 303, 305, 3, 325, 303,
- 1, 3, 325, 303, 2, 3, 325, 303,
- 3, 3, 325, 303, 4, 3, 325, 303,
- 305, 3, 326, 303, 1, 3, 326, 303,
- 2, 3, 326, 303, 3, 3, 326, 303,
- 4, 3, 326, 303, 305, 3, 327, 303,
- 1, 3, 327, 303, 2, 3, 327, 303,
- 3, 3, 327, 303, 4, 3, 327, 303,
- 305, 3, 328, 303, 1, 3, 328, 303,
- 2, 3, 328, 303, 3, 3, 328, 303,
- 4, 3, 328, 303, 305, 3, 329, 303,
- 1, 3, 329, 303, 2, 3, 329, 303,
- 3, 3, 329, 303, 4, 3, 329, 303,
- 305, 3, 330, 303, 1, 3, 330, 303,
- 2, 3, 330, 303, 3, 3, 330, 303,
- 4, 3, 330, 303, 305, 3, 331, 303,
- 1, 3, 331, 303, 2, 3, 331, 303,
- 3, 3, 331, 303, 4, 3, 331, 303,
- 305, 3, 332, 303, 1, 3, 332, 303,
- 2, 3, 332, 303, 3, 3, 332, 303,
- 4, 3, 332, 303, 305, 3, 333, 303,
- 1, 3, 333, 303, 2, 3, 333, 303,
- 3, 3, 333, 303, 4, 3, 333, 303,
- 305, 3, 334, 303, 1, 3, 334, 303,
- 2, 3, 334, 303, 3, 3, 334, 303,
- 4, 3, 334, 303, 305, 3, 335, 303,
- 1, 3, 335, 303, 2, 3, 335, 303,
- 3, 3, 335, 303, 4, 3, 335, 303,
- 305, 3, 336, 303, 1, 3, 336, 303,
- 2, 3, 336, 303, 3, 3, 336, 303,
- 4, 3, 336, 303, 305, 3, 337, 303,
- 1, 3, 337, 303, 2, 3, 337, 303,
- 3, 3, 337, 303, 4, 3, 337, 303,
- 305, 3, 338, 303, 1, 3, 338, 303,
- 2, 3, 338, 303, 3, 3, 338, 303,
- 4, 3, 338, 303, 305, 3, 339, 303,
- 1, 3, 339, 303, 2, 3, 339, 303,
- 3, 3, 339, 303, 4, 3, 339, 303,
- 305, 3, 340, 303, 1, 3, 340, 303,
- 2, 3, 340, 303, 3, 3, 340, 303,
- 4, 3, 340, 303, 305, 3, 341, 303,
- 1, 3, 341, 303, 2, 3, 341, 303,
- 3, 3, 341, 303, 4, 3, 341, 303,
- 305, 3, 342, 303, 1, 3, 342, 303,
- 2, 3, 342, 303, 3, 3, 342, 303,
- 4, 3, 342, 303, 305, 3, 343, 303,
- 1, 3, 343, 303, 2, 3, 343, 303,
- 3, 3, 343, 303, 4, 3, 343, 303,
- 305, 3, 344, 303, 1, 3, 344, 303,
- 2, 3, 344, 303, 3, 3, 344, 303,
- 4, 3, 344, 303, 305, 3, 345, 303,
- 1, 3, 345, 303, 2, 3, 345, 303,
- 3, 3, 345, 303, 4, 3, 345, 303,
- 305, 3, 346, 303, 1, 3, 346, 303,
- 2, 3, 346, 303, 3, 3, 346, 303,
- 4, 3, 346, 303, 305, 3, 347, 303,
- 1, 3, 347, 303, 2, 3, 347, 303,
- 3, 3, 347, 303, 4, 3, 347, 303,
- 305, 3, 348, 303, 1, 3, 348, 303,
- 2, 3, 348, 303, 3, 3, 348, 303,
- 4, 3, 348, 303, 305, 3, 349, 303,
- 1, 3, 349, 303, 2, 3, 349, 303,
- 3, 3, 349, 303, 4, 3, 349, 303,
- 305, 3, 350, 303, 1, 3, 350, 303,
- 2, 3, 350, 303, 3, 3, 350, 303,
- 4, 3, 350, 303, 305, 3, 351, 303,
- 1, 3, 351, 303, 2, 3, 351, 303,
- 3, 3, 351, 303, 4, 3, 351, 303,
- 305, 3, 352, 303, 1, 3, 352, 303,
- 2, 3, 352, 303, 3, 3, 352, 303,
- 4, 3, 352, 303, 305, 3, 353, 303,
- 1, 3, 353, 303, 2, 3, 353, 303,
- 3, 3, 353, 303, 4, 3, 353, 303,
- 305, 3, 354, 303, 1, 3, 354, 303,
- 2, 3, 354, 303, 3, 3, 354, 303,
- 4, 3, 354, 303, 305, 3, 355, 303,
- 1, 3, 355, 303, 2, 3, 355, 303,
- 3, 3, 355, 303, 4, 3, 355, 303,
- 305, 3, 356, 303, 1, 3, 356, 303,
- 2, 3, 356, 303, 3, 3, 356, 303,
- 4, 3, 356, 303, 305, 3, 357, 303,
- 1, 3, 357, 303, 2, 3, 357, 303,
- 3, 3, 357, 303, 4, 3, 357, 303,
- 305, 3, 358, 1, 6, 4, 1, 7,
- 358, 32, 4, 1, 305, 32, 7, 4,
- 4, 305, 7, 32, 4, 4, 305, 32,
- 7, 4, 6, 1, 7, 358, 4, 6,
- 1, 85, 0, 4, 6, 72, 0, 1,
- 4, 6, 76, 0, 1, 4, 6, 85,
- 0, 1, 4, 7, 6, 358, 1, 4,
- 7, 72, 0, 1, 4, 7, 358, 1,
- 6, 4, 7, 358, 1, 32, 4, 18,
- 15, 21, 0, 4, 20, 83, 7, 2,
- 4, 20, 83, 7, 3, 4, 20, 83,
- 7, 4, 4, 27, 1, 71, 0, 4,
- 27, 4, 71, 0, 4, 27, 293, 29,
- 291, 4, 29, 291, 287, 0, 4, 29,
- 295, 291, 1, 4, 29, 295, 291, 2,
- 4, 29, 295, 291, 3, 4, 29, 295,
- 291, 4, 4, 31, 1, 7, 358, 4,
- 31, 1, 308, 305, 4, 31, 1, 310,
- 303, 4, 31, 2, 93, 7, 4, 31,
- 2, 308, 305, 4, 31, 2, 310, 303,
- 4, 31, 3, 93, 7, 4, 31, 3,
- 308, 305, 4, 31, 3, 310, 303, 4,
- 31, 4, 93, 7, 4, 31, 4, 308,
- 305, 4, 31, 4, 310, 303, 4, 31,
- 310, 303, 7, 4, 33, 38, 309, 8,
- 4, 33, 50, 38, 309, 4, 33, 309,
- 304, 8, 4, 37, 36, 30, 25, 4,
- 38, 309, 304, 8, 4, 40, 37, 36,
- 41, 4, 40, 42, 264, 1, 4, 40,
- 42, 264, 2, 4, 40, 42, 264, 3,
- 4, 40, 42, 264, 4, 4, 40, 42,
- 265, 1, 4, 40, 42, 265, 2, 4,
- 40, 42, 265, 3, 4, 40, 42, 265,
- 4, 4, 40, 42, 266, 1, 4, 40,
- 42, 266, 2, 4, 40, 42, 266, 3,
- 4, 40, 42, 266, 4, 4, 40, 42,
- 267, 1, 4, 40, 42, 267, 2, 4,
- 40, 42, 267, 3, 4, 40, 42, 267,
- 4, 4, 40, 42, 268, 1, 4, 40,
- 42, 268, 2, 4, 40, 42, 268, 3,
- 4, 40, 42, 268, 4, 4, 40, 42,
- 269, 1, 4, 40, 42, 269, 2, 4,
- 40, 42, 269, 3, 4, 40, 42, 269,
- 4, 4, 42, 266, 274, 0, 4, 42,
- 267, 274, 0, 4, 42, 268, 274, 0,
- 4, 42, 269, 274, 0, 4, 43, 39,
- 37, 36, 4, 44, 39, 37, 36, 4,
- 46, 145, 291, 1, 4, 46, 145, 291,
- 2, 4, 46, 145, 291, 3, 4, 46,
- 145, 291, 4, 4, 46, 291, 287, 0,
- 4, 48, 303, 1, 305, 4, 48, 303,
- 4, 305, 4, 50, 38, 8, 73, 4,
- 56, 55, 37, 36, 4, 66, 68, 61,
- 0, 4, 75, 23, 13, 14, 4, 82,
- 23, 13, 14, 4, 88, 32, 1, 7,
- 4, 88, 32, 2, 7, 4, 88, 32,
- 3, 7, 4, 88, 32, 4, 7, 4,
- 90, 91, 30, 25, 4, 93, 1, 7,
- 358, 4, 96, 156, 157, 304, 4, 97,
- 98, 1, 0, 4, 97, 98, 4, 0,
- 4, 97, 98, 29, 291, 4, 99, 100,
- 1, 0, 4, 99, 100, 4, 0, 4,
- 99, 100, 29, 291, 4, 105, 106, 1,
- 0, 4, 105, 106, 4, 0, 4, 147,
- 145, 291, 1, 4, 147, 145, 291, 2,
- 4, 147, 145, 291, 3, 4, 147, 145,
- 291, 4, 4, 147, 296, 37, 36, 4,
- 207, 1, 257, 0, 4, 207, 4, 257,
- 0, 4, 208, 1, 257, 0, 4, 208,
- 4, 257, 0, 4, 209, 1, 257, 0,
- 4, 209, 4, 257, 0, 4, 210, 1,
- 257, 0, 4, 210, 4, 257, 0, 4,
- 211, 1, 257, 0, 4, 211, 4, 257,
- 0, 4, 212, 1, 257, 0, 4, 212,
- 4, 257, 0, 4, 213, 1, 257, 0,
- 4, 213, 4, 257, 0, 4, 214, 1,
- 257, 0, 4, 214, 4, 257, 0, 4,
- 215, 1, 257, 0, 4, 215, 4, 257,
- 0, 4, 216, 1, 257, 0, 4, 216,
- 4, 257, 0, 4, 217, 1, 257, 0,
- 4, 217, 4, 257, 0, 4, 218, 1,
- 257, 0, 4, 218, 4, 257, 0, 4,
- 219, 1, 257, 0, 4, 219, 4, 257,
- 0, 4, 220, 1, 257, 0, 4, 220,
- 4, 257, 0, 4, 221, 1, 257, 0,
- 4, 221, 4, 257, 0, 4, 222, 1,
- 257, 0, 4, 222, 4, 257, 0, 4,
- 223, 1, 257, 0, 4, 223, 4, 257,
- 0, 4, 224, 1, 257, 0, 4, 224,
- 4, 257, 0, 4, 225, 1, 257, 0,
- 4, 225, 4, 257, 0, 4, 226, 1,
- 257, 0, 4, 226, 4, 257, 0, 4,
- 227, 1, 257, 0, 4, 227, 4, 257,
- 0, 4, 228, 1, 257, 0, 4, 228,
- 4, 257, 0, 4, 229, 1, 257, 0,
- 4, 229, 4, 257, 0, 4, 230, 1,
- 257, 0, 4, 230, 4, 257, 0, 4,
- 231, 1, 257, 0, 4, 231, 4, 257,
- 0, 4, 232, 1, 257, 0, 4, 232,
- 4, 257, 0, 4, 233, 1, 257, 0,
- 4, 233, 4, 257, 0, 4, 234, 1,
- 257, 0, 4, 234, 4, 257, 0, 4,
- 235, 1, 257, 0, 4, 235, 4, 257,
- 0, 4, 236, 1, 257, 0, 4, 236,
- 4, 257, 0, 4, 237, 1, 257, 0,
- 4, 237, 4, 257, 0, 4, 238, 1,
- 257, 0, 4, 238, 4, 257, 0, 4,
- 239, 1, 257, 0, 4, 239, 4, 257,
- 0, 4, 240, 1, 257, 0, 4, 240,
- 4, 257, 0, 4, 241, 1, 257, 0,
- 4, 241, 4, 257, 0, 4, 242, 1,
- 257, 0, 4, 242, 4, 257, 0, 4,
- 243, 1, 257, 0, 4, 243, 4, 257,
- 0, 4, 244, 1, 257, 0, 4, 244,
- 4, 257, 0, 4, 245, 1, 257, 0,
- 4, 245, 4, 257, 0, 4, 246, 1,
- 257, 0, 4, 246, 4, 257, 0, 4,
- 247, 1, 257, 0, 4, 247, 4, 257,
- 0, 4, 248, 1, 257, 0, 4, 248,
- 4, 257, 0, 4, 249, 1, 257, 0,
- 4, 249, 4, 257, 0, 4, 250, 1,
- 257, 0, 4, 250, 4, 257, 0, 4,
- 251, 1, 257, 0, 4, 251, 4, 257,
- 0, 4, 252, 1, 257, 0, 4, 252,
- 4, 257, 0, 4, 253, 1, 257, 0,
- 4, 253, 4, 257, 0, 4, 254, 1,
- 257, 0, 4, 254, 4, 257, 0, 4,
- 255, 1, 257, 0, 4, 255, 4, 257,
- 0, 4, 256, 1, 257, 0, 4, 256,
- 4, 257, 0, 4, 286, 1, 287, 0,
- 4, 286, 4, 287, 0, 4, 291, 1,
- 287, 0, 4, 291, 4, 287, 0, 4,
- 292, 28, 26, 69, 4, 305, 7, 358,
- 1, 4, 310, 303, 1, 305, 4, 310,
- 303, 2, 7, 4, 310, 303, 3, 7,
- 4, 310, 303, 4, 7, 4, 310, 303,
- 4, 305, 4, 311, 303, 1, 305, 4,
- 311, 303, 4, 305, 4, 312, 303, 1,
- 305, 4, 312, 303, 4, 305, 4, 313,
- 303, 1, 305, 4, 313, 303, 4, 305,
- 4, 314, 303, 1, 305, 4, 314, 303,
- 4, 305, 4, 315, 303, 1, 305, 4,
- 315, 303, 4, 305, 4, 316, 303, 1,
- 305, 4, 316, 303, 4, 305, 4, 317,
- 303, 1, 305, 4, 317, 303, 4, 305,
- 4, 318, 303, 1, 305, 4, 318, 303,
- 4, 305, 4, 319, 303, 1, 305, 4,
- 319, 303, 4, 305, 4, 320, 303, 1,
- 305, 4, 320, 303, 4, 305, 4, 321,
- 303, 1, 305, 4, 321, 303, 4, 305,
- 4, 322, 303, 1, 305, 4, 322, 303,
- 4, 305, 4, 323, 303, 1, 305, 4,
- 323, 303, 4, 305, 4, 324, 303, 1,
- 305, 4, 324, 303, 4, 305, 4, 325,
- 303, 1, 305, 4, 325, 303, 4, 305,
- 4, 326, 303, 1, 305, 4, 326, 303,
- 4, 305, 4, 327, 303, 1, 305, 4,
- 327, 303, 4, 305, 4, 328, 303, 1,
- 305, 4, 328, 303, 4, 305, 4, 329,
- 303, 1, 305, 4, 329, 303, 4, 305,
- 4, 330, 303, 1, 305, 4, 330, 303,
- 4, 305, 4, 331, 303, 1, 305, 4,
- 331, 303, 4, 305, 4, 332, 303, 1,
- 305, 4, 332, 303, 4, 305, 4, 333,
- 303, 1, 305, 4, 333, 303, 4, 305,
- 4, 334, 303, 1, 305, 4, 334, 303,
- 4, 305, 4, 335, 303, 1, 305, 4,
- 335, 303, 4, 305, 4, 336, 303, 1,
- 305, 4, 336, 303, 4, 305, 4, 337,
- 303, 1, 305, 4, 337, 303, 4, 305,
- 4, 338, 303, 1, 305, 4, 338, 303,
- 4, 305, 4, 339, 303, 1, 305, 4,
- 339, 303, 4, 305, 4, 340, 303, 1,
- 305, 4, 340, 303, 4, 305, 4, 341,
- 303, 1, 305, 4, 341, 303, 4, 305,
- 4, 342, 303, 1, 305, 4, 342, 303,
- 4, 305, 4, 343, 303, 1, 305, 4,
- 343, 303, 4, 305, 4, 344, 303, 1,
- 305, 4, 344, 303, 4, 305, 4, 345,
- 303, 1, 305, 4, 345, 303, 4, 305,
- 4, 346, 303, 1, 305, 4, 346, 303,
- 4, 305, 4, 347, 303, 1, 305, 4,
- 347, 303, 4, 305, 4, 348, 303, 1,
- 305, 4, 348, 303, 4, 305, 4, 349,
- 303, 1, 305, 4, 349, 303, 4, 305,
- 4, 350, 303, 1, 305, 4, 350, 303,
- 4, 305, 4, 351, 303, 1, 305, 4,
- 351, 303, 4, 305, 4, 352, 303, 1,
- 305, 4, 352, 303, 4, 305, 4, 353,
- 303, 1, 305, 4, 353, 303, 4, 305,
- 4, 354, 303, 1, 305, 4, 354, 303,
- 4, 305, 4, 355, 303, 1, 305, 4,
- 355, 303, 4, 305, 4, 356, 303, 1,
- 305, 4, 356, 303, 4, 305, 4, 357,
- 303, 1, 305, 4, 357, 303, 4, 305,
- 5, 20, 7, 76, 0, 1, 5, 27,
- 293, 29, 291, 1, 5, 27, 293, 29,
- 291, 2, 5, 27, 293, 29, 291, 3,
- 5, 27, 293, 29, 291, 4, 5, 29,
- 291, 1, 287, 0, 5, 29, 291, 4,
- 287, 0, 5, 29, 295, 291, 287, 0,
- 5, 31, 1, 93, 7, 358, 5, 31,
- 1, 310, 303, 305, 5, 31, 2, 310,
- 303, 7, 5, 31, 3, 310, 303, 7,
- 5, 31, 4, 310, 303, 7, 5, 31,
- 4, 310, 303, 305, 5, 33, 38, 309,
- 304, 8, 5, 37, 36, 305, 30, 25,
- 5, 40, 42, 266, 274, 0, 5, 40,
- 42, 267, 274, 0, 5, 40, 42, 268,
- 274, 0, 5, 40, 42, 269, 274, 0,
- 5, 42, 266, 1, 274, 0, 5, 42,
- 266, 4, 274, 0, 5, 42, 267, 1,
- 274, 0, 5, 42, 267, 4, 274, 0,
- 5, 42, 268, 1, 274, 0, 5, 42,
- 268, 4, 274, 0, 5, 42, 269, 1,
- 274, 0, 5, 42, 269, 4, 274, 0,
- 5, 46, 145, 291, 287, 0, 5, 46,
- 291, 1, 287, 0, 5, 46, 291, 4,
- 287, 0, 5, 50, 38, 309, 304, 8,
- 5, 56, 7, 72, 0, 1, 5, 80,
- 7, 85, 0, 1, 5, 90, 91, 305,
- 30, 25, 5, 97, 98, 29, 291, 1,
- 5, 97, 98, 29, 291, 2, 5, 97,
- 98, 29, 291, 3, 5, 97, 98, 29,
- 291, 4, 5, 99, 100, 29, 291, 1,
- 5, 99, 100, 29, 291, 2, 5, 99,
- 100, 29, 291, 3, 5, 99, 100, 29,
- 291, 4, 5, 147, 145, 291, 287, 0,
- 5, 272, 43, 39, 37, 36, 5, 310,
- 303, 1, 7, 358, 5, 310, 303, 4,
- 305, 7, 5, 310, 303, 305, 7, 4,
- 6, 20, 83, 7, 85, 0, 1, 6,
- 27, 293, 29, 291, 287, 0, 6, 29,
- 295, 291, 1, 287, 0, 6, 29, 295,
- 291, 4, 287, 0, 6, 31, 1, 310,
- 303, 7, 358, 6, 31, 4, 310, 303,
- 305, 7, 6, 33, 50, 38, 309, 304,
- 8, 6, 40, 42, 266, 1, 274, 0,
- 6, 40, 42, 266, 4, 274, 0, 6,
- 40, 42, 267, 1, 274, 0, 6, 40,
- 42, 267, 4, 274, 0, 6, 40, 42,
- 268, 1, 274, 0, 6, 40, 42, 268,
- 4, 274, 0, 6, 40, 42, 269, 1,
- 274, 0, 6, 40, 42, 269, 4, 274,
- 0, 6, 46, 145, 291, 1, 287, 0,
- 6, 46, 145, 291, 4, 287, 0, 6,
- 97, 98, 29, 291, 287, 0, 6, 99,
- 100, 29, 291, 287, 0, 6, 147, 145,
- 291, 1, 287, 0, 6, 147, 145, 291,
- 4, 287, 0, 6, 310, 303, 1, 305,
- 7, 358, 6, 310, 303, 305, 7, 358,
- 1, 7, 27, 293, 29, 291, 1, 287,
- 0, 7, 27, 293, 29, 291, 4, 287,
- 0, 7, 31, 1, 310, 303, 305, 7,
- 358, 7, 97, 98, 29, 291, 1, 287,
- 0, 7, 97, 98, 29, 291, 4, 287,
- 0, 7, 99, 100, 29, 291, 1, 287,
- 0, 7, 99, 100, 29, 291, 4, 287,
- 0
+ 152, 1, 159, 1, 160, 1, 161, 1,
+ 162, 1, 163, 1, 164, 1, 165, 1,
+ 166, 1, 167, 1, 168, 1, 169, 1,
+ 170, 1, 171, 1, 172, 1, 173, 1,
+ 174, 1, 175, 1, 176, 1, 177, 1,
+ 178, 1, 179, 1, 180, 1, 181, 1,
+ 182, 1, 183, 1, 184, 1, 185, 1,
+ 186, 1, 187, 1, 188, 1, 189, 1,
+ 190, 1, 191, 1, 192, 1, 193, 1,
+ 194, 1, 195, 1, 196, 1, 197, 1,
+ 198, 1, 199, 1, 200, 1, 201, 1,
+ 202, 1, 203, 1, 204, 1, 205, 1,
+ 206, 1, 207, 1, 208, 1, 209, 1,
+ 210, 1, 211, 1, 212, 1, 213, 1,
+ 214, 1, 215, 1, 216, 1, 217, 1,
+ 218, 1, 219, 1, 220, 1, 221, 1,
+ 222, 1, 223, 1, 224, 1, 225, 1,
+ 226, 1, 227, 1, 228, 1, 229, 1,
+ 230, 1, 231, 1, 232, 1, 233, 1,
+ 234, 1, 235, 1, 236, 1, 237, 1,
+ 238, 1, 239, 1, 240, 1, 241, 1,
+ 242, 1, 243, 1, 244, 1, 245, 1,
+ 246, 1, 247, 1, 248, 1, 249, 1,
+ 250, 1, 251, 1, 252, 1, 253, 1,
+ 254, 1, 255, 1, 256, 1, 257, 1,
+ 258, 1, 260, 1, 262, 1, 263, 1,
+ 264, 1, 265, 1, 272, 1, 273, 1,
+ 278, 1, 280, 1, 285, 1, 288, 1,
+ 290, 1, 291, 1, 292, 1, 293, 1,
+ 298, 1, 299, 1, 301, 1, 302, 1,
+ 303, 1, 304, 1, 306, 1, 307, 1,
+ 308, 1, 309, 1, 311, 2, 0, 49,
+ 2, 1, 0, 2, 1, 307, 2, 1,
+ 361, 2, 2, 5, 2, 2, 7, 2,
+ 3, 5, 2, 3, 7, 2, 4, 0,
+ 2, 4, 5, 2, 4, 7, 2, 4,
+ 307, 2, 5, 2, 2, 5, 3, 2,
+ 5, 4, 2, 5, 7, 2, 6, 1,
+ 2, 7, 1, 2, 7, 2, 2, 7,
+ 3, 2, 7, 4, 2, 7, 5, 2,
+ 7, 32, 2, 8, 73, 2, 8, 77,
+ 2, 9, 10, 2, 11, 1, 2, 12,
+ 1, 2, 13, 14, 2, 16, 17, 2,
+ 18, 14, 2, 18, 15, 2, 19, 24,
+ 2, 19, 77, 2, 19, 84, 2, 20,
+ 0, 2, 20, 7, 2, 22, 0, 2,
+ 23, 13, 2, 26, 69, 2, 26, 108,
+ 2, 26, 119, 2, 27, 0, 2, 27,
+ 1, 2, 27, 2, 2, 27, 3, 2,
+ 27, 4, 2, 27, 261, 2, 28, 69,
+ 2, 28, 113, 2, 29, 293, 2, 29,
+ 297, 2, 30, 25, 2, 31, 1, 2,
+ 31, 2, 2, 31, 3, 2, 31, 4,
+ 2, 31, 7, 2, 31, 93, 2, 32,
+ 7, 2, 33, 8, 2, 33, 306, 2,
+ 33, 311, 2, 34, 25, 2, 35, 0,
+ 2, 35, 1, 2, 35, 2, 2, 35,
+ 3, 2, 35, 4, 2, 35, 261, 2,
+ 35, 300, 2, 36, 41, 2, 37, 36,
+ 2, 38, 73, 2, 38, 278, 2, 38,
+ 290, 2, 38, 291, 2, 38, 306, 2,
+ 38, 311, 2, 42, 266, 2, 42, 267,
+ 2, 42, 268, 2, 42, 269, 2, 42,
+ 270, 2, 42, 271, 2, 45, 0, 2,
+ 45, 1, 2, 45, 2, 2, 45, 3,
+ 2, 45, 4, 2, 46, 0, 2, 46,
+ 1, 2, 46, 2, 2, 46, 3, 2,
+ 46, 4, 2, 46, 261, 2, 46, 293,
+ 2, 47, 0, 2, 47, 1, 2, 47,
+ 2, 2, 47, 3, 2, 47, 4, 2,
+ 48, 305, 2, 49, 1, 2, 49, 2,
+ 2, 49, 3, 2, 49, 4, 2, 56,
+ 7, 2, 56, 47, 2, 56, 93, 2,
+ 57, 58, 2, 59, 1, 2, 59, 2,
+ 2, 59, 3, 2, 59, 4, 2, 60,
+ 306, 2, 62, 63, 2, 64, 65, 2,
+ 66, 68, 2, 68, 0, 2, 68, 61,
+ 2, 71, 0, 2, 71, 306, 2, 75,
+ 23, 2, 79, 69, 2, 80, 7, 2,
+ 81, 8, 2, 82, 23, 2, 84, 8,
+ 2, 90, 91, 2, 92, 1, 2, 92,
+ 2, 2, 92, 3, 2, 92, 4, 2,
+ 93, 1, 2, 93, 2, 2, 93, 3,
+ 2, 93, 4, 2, 93, 7, 2, 94,
+ 95, 2, 96, 290, 2, 96, 306, 2,
+ 97, 98, 2, 99, 100, 2, 101, 102,
+ 2, 101, 103, 2, 101, 104, 2, 105,
+ 106, 2, 107, 306, 2, 110, 306, 2,
+ 111, 0, 2, 127, 306, 2, 129, 0,
+ 2, 130, 0, 2, 131, 0, 2, 132,
+ 0, 2, 133, 0, 2, 134, 0, 2,
+ 135, 0, 2, 136, 0, 2, 137, 0,
+ 2, 138, 0, 2, 139, 0, 2, 140,
+ 0, 2, 141, 0, 2, 142, 0, 2,
+ 143, 0, 2, 144, 0, 2, 146, 0,
+ 2, 147, 0, 2, 148, 0, 2, 149,
+ 0, 2, 150, 0, 2, 151, 0, 2,
+ 152, 0, 2, 153, 0, 2, 154, 0,
+ 2, 155, 0, 2, 156, 306, 2, 157,
+ 306, 2, 158, 306, 2, 159, 1, 2,
+ 159, 2, 2, 159, 3, 2, 159, 4,
+ 2, 160, 1, 2, 160, 2, 2, 160,
+ 3, 2, 160, 4, 2, 161, 1, 2,
+ 161, 2, 2, 161, 3, 2, 161, 4,
+ 2, 162, 1, 2, 162, 2, 2, 162,
+ 3, 2, 162, 4, 2, 163, 1, 2,
+ 163, 2, 2, 163, 3, 2, 163, 4,
+ 2, 164, 1, 2, 164, 2, 2, 164,
+ 3, 2, 164, 4, 2, 165, 1, 2,
+ 165, 2, 2, 165, 3, 2, 165, 4,
+ 2, 166, 1, 2, 166, 2, 2, 166,
+ 3, 2, 166, 4, 2, 167, 1, 2,
+ 167, 2, 2, 167, 3, 2, 167, 4,
+ 2, 168, 1, 2, 168, 2, 2, 168,
+ 3, 2, 168, 4, 2, 169, 1, 2,
+ 169, 2, 2, 169, 3, 2, 169, 4,
+ 2, 170, 1, 2, 170, 2, 2, 170,
+ 3, 2, 170, 4, 2, 171, 1, 2,
+ 171, 2, 2, 171, 3, 2, 171, 4,
+ 2, 172, 1, 2, 172, 2, 2, 172,
+ 3, 2, 172, 4, 2, 173, 1, 2,
+ 173, 2, 2, 173, 3, 2, 173, 4,
+ 2, 174, 1, 2, 174, 2, 2, 174,
+ 3, 2, 174, 4, 2, 175, 1, 2,
+ 175, 2, 2, 175, 3, 2, 175, 4,
+ 2, 176, 1, 2, 176, 2, 2, 176,
+ 3, 2, 176, 4, 2, 177, 1, 2,
+ 177, 2, 2, 177, 3, 2, 177, 4,
+ 2, 178, 1, 2, 178, 2, 2, 178,
+ 3, 2, 178, 4, 2, 179, 1, 2,
+ 179, 2, 2, 179, 3, 2, 179, 4,
+ 2, 180, 1, 2, 180, 2, 2, 180,
+ 3, 2, 180, 4, 2, 181, 1, 2,
+ 181, 2, 2, 181, 3, 2, 181, 4,
+ 2, 182, 1, 2, 182, 2, 2, 182,
+ 3, 2, 182, 4, 2, 183, 1, 2,
+ 183, 2, 2, 183, 3, 2, 183, 4,
+ 2, 184, 1, 2, 184, 2, 2, 184,
+ 3, 2, 184, 4, 2, 185, 1, 2,
+ 185, 2, 2, 185, 3, 2, 185, 4,
+ 2, 186, 1, 2, 186, 2, 2, 186,
+ 3, 2, 186, 4, 2, 187, 1, 2,
+ 187, 2, 2, 187, 3, 2, 187, 4,
+ 2, 188, 1, 2, 188, 2, 2, 188,
+ 3, 2, 188, 4, 2, 189, 1, 2,
+ 189, 2, 2, 189, 3, 2, 189, 4,
+ 2, 190, 1, 2, 190, 2, 2, 190,
+ 3, 2, 190, 4, 2, 191, 1, 2,
+ 191, 2, 2, 191, 3, 2, 191, 4,
+ 2, 192, 1, 2, 192, 2, 2, 192,
+ 3, 2, 192, 4, 2, 193, 1, 2,
+ 193, 2, 2, 193, 3, 2, 193, 4,
+ 2, 194, 1, 2, 194, 2, 2, 194,
+ 3, 2, 194, 4, 2, 195, 1, 2,
+ 195, 2, 2, 195, 3, 2, 195, 4,
+ 2, 196, 1, 2, 196, 2, 2, 196,
+ 3, 2, 196, 4, 2, 197, 1, 2,
+ 197, 2, 2, 197, 3, 2, 197, 4,
+ 2, 198, 1, 2, 198, 2, 2, 198,
+ 3, 2, 198, 4, 2, 199, 1, 2,
+ 199, 2, 2, 199, 3, 2, 199, 4,
+ 2, 200, 1, 2, 200, 2, 2, 200,
+ 3, 2, 200, 4, 2, 201, 1, 2,
+ 201, 2, 2, 201, 3, 2, 201, 4,
+ 2, 202, 1, 2, 202, 2, 2, 202,
+ 3, 2, 202, 4, 2, 203, 1, 2,
+ 203, 2, 2, 203, 3, 2, 203, 4,
+ 2, 204, 1, 2, 204, 2, 2, 204,
+ 3, 2, 204, 4, 2, 205, 1, 2,
+ 205, 2, 2, 205, 3, 2, 205, 4,
+ 2, 206, 1, 2, 206, 2, 2, 206,
+ 3, 2, 206, 4, 2, 207, 1, 2,
+ 207, 2, 2, 207, 3, 2, 207, 4,
+ 2, 208, 1, 2, 208, 2, 2, 208,
+ 3, 2, 208, 4, 2, 209, 1, 2,
+ 209, 2, 2, 209, 3, 2, 209, 4,
+ 2, 210, 1, 2, 210, 2, 2, 210,
+ 3, 2, 210, 4, 2, 211, 1, 2,
+ 211, 2, 2, 211, 3, 2, 211, 4,
+ 2, 212, 1, 2, 212, 2, 2, 212,
+ 3, 2, 212, 4, 2, 213, 1, 2,
+ 213, 2, 2, 213, 3, 2, 213, 4,
+ 2, 214, 1, 2, 214, 2, 2, 214,
+ 3, 2, 214, 4, 2, 215, 1, 2,
+ 215, 2, 2, 215, 3, 2, 215, 4,
+ 2, 216, 1, 2, 216, 2, 2, 216,
+ 3, 2, 216, 4, 2, 217, 1, 2,
+ 217, 2, 2, 217, 3, 2, 217, 4,
+ 2, 218, 1, 2, 218, 2, 2, 218,
+ 3, 2, 218, 4, 2, 219, 1, 2,
+ 219, 2, 2, 219, 3, 2, 219, 4,
+ 2, 220, 1, 2, 220, 2, 2, 220,
+ 3, 2, 220, 4, 2, 221, 1, 2,
+ 221, 2, 2, 221, 3, 2, 221, 4,
+ 2, 222, 1, 2, 222, 2, 2, 222,
+ 3, 2, 222, 4, 2, 223, 1, 2,
+ 223, 2, 2, 223, 3, 2, 223, 4,
+ 2, 224, 1, 2, 224, 2, 2, 224,
+ 3, 2, 224, 4, 2, 225, 1, 2,
+ 225, 2, 2, 225, 3, 2, 225, 4,
+ 2, 226, 1, 2, 226, 2, 2, 226,
+ 3, 2, 226, 4, 2, 227, 1, 2,
+ 227, 2, 2, 227, 3, 2, 227, 4,
+ 2, 228, 1, 2, 228, 2, 2, 228,
+ 3, 2, 228, 4, 2, 229, 1, 2,
+ 229, 2, 2, 229, 3, 2, 229, 4,
+ 2, 230, 1, 2, 230, 2, 2, 230,
+ 3, 2, 230, 4, 2, 231, 1, 2,
+ 231, 2, 2, 231, 3, 2, 231, 4,
+ 2, 232, 1, 2, 232, 2, 2, 232,
+ 3, 2, 232, 4, 2, 233, 1, 2,
+ 233, 2, 2, 233, 3, 2, 233, 4,
+ 2, 234, 1, 2, 234, 2, 2, 234,
+ 3, 2, 234, 4, 2, 235, 1, 2,
+ 235, 2, 2, 235, 3, 2, 235, 4,
+ 2, 236, 1, 2, 236, 2, 2, 236,
+ 3, 2, 236, 4, 2, 237, 1, 2,
+ 237, 2, 2, 237, 3, 2, 237, 4,
+ 2, 238, 1, 2, 238, 2, 2, 238,
+ 3, 2, 238, 4, 2, 239, 1, 2,
+ 239, 2, 2, 239, 3, 2, 239, 4,
+ 2, 240, 1, 2, 240, 2, 2, 240,
+ 3, 2, 240, 4, 2, 241, 1, 2,
+ 241, 2, 2, 241, 3, 2, 241, 4,
+ 2, 242, 1, 2, 242, 2, 2, 242,
+ 3, 2, 242, 4, 2, 243, 1, 2,
+ 243, 2, 2, 243, 3, 2, 243, 4,
+ 2, 244, 1, 2, 244, 2, 2, 244,
+ 3, 2, 244, 4, 2, 245, 1, 2,
+ 245, 2, 2, 245, 3, 2, 245, 4,
+ 2, 246, 1, 2, 246, 2, 2, 246,
+ 3, 2, 246, 4, 2, 247, 1, 2,
+ 247, 2, 2, 247, 3, 2, 247, 4,
+ 2, 248, 1, 2, 248, 2, 2, 248,
+ 3, 2, 248, 4, 2, 249, 1, 2,
+ 249, 2, 2, 249, 3, 2, 249, 4,
+ 2, 250, 1, 2, 250, 2, 2, 250,
+ 3, 2, 250, 4, 2, 251, 1, 2,
+ 251, 2, 2, 251, 3, 2, 251, 4,
+ 2, 252, 1, 2, 252, 2, 2, 252,
+ 3, 2, 252, 4, 2, 253, 1, 2,
+ 253, 2, 2, 253, 3, 2, 253, 4,
+ 2, 254, 1, 2, 254, 2, 2, 254,
+ 3, 2, 254, 4, 2, 255, 1, 2,
+ 255, 2, 2, 255, 3, 2, 255, 4,
+ 2, 256, 1, 2, 256, 2, 2, 256,
+ 3, 2, 256, 4, 2, 257, 1, 2,
+ 257, 2, 2, 257, 3, 2, 257, 4,
+ 2, 258, 1, 2, 258, 2, 2, 258,
+ 3, 2, 258, 4, 2, 259, 0, 2,
+ 262, 1, 2, 262, 2, 2, 262, 3,
+ 2, 262, 4, 2, 263, 1, 2, 263,
+ 2, 2, 263, 3, 2, 263, 4, 2,
+ 264, 1, 2, 264, 2, 2, 264, 3,
+ 2, 264, 4, 2, 265, 1, 2, 265,
+ 2, 2, 265, 3, 2, 265, 4, 2,
+ 272, 1, 2, 272, 2, 2, 272, 3,
+ 2, 272, 4, 2, 273, 1, 2, 273,
+ 2, 2, 273, 3, 2, 273, 4, 2,
+ 276, 0, 2, 277, 306, 2, 279, 108,
+ 2, 284, 108, 2, 288, 1, 2, 288,
+ 2, 2, 288, 3, 2, 288, 4, 2,
+ 289, 0, 2, 293, 1, 2, 293, 2,
+ 2, 293, 3, 2, 293, 4, 2, 306,
+ 8, 2, 307, 1, 2, 307, 4, 2,
+ 310, 307, 2, 311, 8, 2, 311, 306,
+ 2, 312, 305, 2, 313, 305, 2, 314,
+ 305, 2, 315, 305, 2, 316, 305, 2,
+ 317, 305, 2, 318, 305, 2, 319, 305,
+ 2, 320, 305, 2, 321, 305, 2, 322,
+ 305, 2, 323, 305, 2, 324, 305, 2,
+ 325, 305, 2, 326, 305, 2, 327, 305,
+ 2, 328, 305, 2, 329, 305, 2, 330,
+ 305, 2, 331, 305, 2, 332, 305, 2,
+ 333, 305, 2, 334, 305, 2, 335, 305,
+ 2, 336, 305, 2, 337, 305, 2, 338,
+ 305, 2, 339, 305, 2, 340, 305, 2,
+ 341, 305, 2, 342, 305, 2, 343, 305,
+ 2, 344, 305, 2, 345, 305, 2, 346,
+ 305, 2, 347, 305, 2, 348, 305, 2,
+ 349, 305, 2, 350, 305, 2, 351, 305,
+ 2, 352, 305, 2, 353, 305, 2, 354,
+ 305, 2, 355, 305, 2, 356, 305, 2,
+ 357, 305, 2, 358, 305, 2, 359, 305,
+ 2, 360, 305, 2, 361, 1, 3, 0,
+ 49, 1, 3, 0, 49, 2, 3, 0,
+ 49, 3, 3, 0, 49, 4, 3, 1,
+ 7, 361, 3, 1, 32, 7, 3, 1,
+ 71, 0, 3, 1, 111, 0, 3, 1,
+ 259, 0, 3, 1, 276, 0, 3, 1,
+ 289, 0, 3, 1, 307, 361, 3, 2,
+ 7, 32, 3, 2, 32, 7, 3, 3,
+ 7, 32, 3, 3, 32, 7, 3, 4,
+ 7, 32, 3, 4, 32, 7, 3, 4,
+ 71, 0, 3, 4, 111, 0, 3, 4,
+ 259, 0, 3, 4, 276, 0, 3, 4,
+ 289, 0, 3, 4, 307, 7, 3, 5,
+ 7, 2, 3, 5, 7, 3, 3, 5,
+ 7, 4, 3, 6, 1, 361, 3, 6,
+ 361, 1, 3, 7, 2, 5, 3, 7,
+ 2, 32, 3, 7, 3, 5, 3, 7,
+ 3, 32, 3, 7, 4, 5, 3, 7,
+ 4, 32, 3, 7, 361, 1, 3, 9,
+ 11, 1, 3, 15, 21, 0, 3, 20,
+ 7, 2, 3, 20, 7, 3, 3, 20,
+ 7, 4, 3, 20, 83, 7, 3, 23,
+ 13, 14, 3, 27, 71, 0, 3, 27,
+ 295, 29, 3, 28, 94, 95, 3, 29,
+ 293, 1, 3, 29, 293, 2, 3, 29,
+ 293, 3, 3, 29, 293, 4, 3, 29,
+ 297, 293, 3, 31, 1, 93, 3, 31,
+ 2, 7, 3, 31, 2, 93, 3, 31,
+ 3, 7, 3, 31, 3, 93, 3, 31,
+ 4, 7, 3, 31, 4, 93, 3, 31,
+ 93, 7, 3, 31, 310, 307, 3, 31,
+ 312, 305, 3, 32, 1, 7, 3, 32,
+ 2, 7, 3, 32, 3, 7, 3, 32,
+ 4, 7, 3, 33, 89, 8, 3, 33,
+ 306, 8, 3, 33, 311, 8, 3, 33,
+ 311, 306, 3, 35, 1, 0, 3, 35,
+ 4, 0, 3, 37, 36, 307, 3, 38,
+ 156, 306, 3, 38, 158, 306, 3, 38,
+ 311, 8, 3, 38, 311, 306, 3, 40,
+ 42, 266, 3, 40, 42, 267, 3, 40,
+ 42, 268, 3, 40, 42, 269, 3, 40,
+ 42, 270, 3, 40, 42, 271, 3, 42,
+ 266, 1, 3, 42, 266, 2, 3, 42,
+ 266, 3, 3, 42, 266, 4, 3, 42,
+ 267, 1, 3, 42, 267, 2, 3, 42,
+ 267, 3, 3, 42, 267, 4, 3, 42,
+ 268, 1, 3, 42, 268, 2, 3, 42,
+ 268, 3, 3, 42, 268, 4, 3, 42,
+ 269, 1, 3, 42, 269, 2, 3, 42,
+ 269, 3, 3, 42, 269, 4, 3, 42,
+ 270, 1, 3, 42, 270, 2, 3, 42,
+ 270, 3, 3, 42, 270, 4, 3, 42,
+ 271, 1, 3, 42, 271, 2, 3, 42,
+ 271, 3, 3, 42, 271, 4, 3, 46,
+ 145, 293, 3, 46, 293, 1, 3, 46,
+ 293, 2, 3, 46, 293, 3, 3, 46,
+ 293, 4, 3, 48, 305, 1, 3, 48,
+ 305, 2, 3, 48, 305, 3, 3, 48,
+ 305, 4, 3, 48, 305, 307, 3, 50,
+ 38, 73, 3, 50, 38, 306, 3, 50,
+ 38, 311, 3, 55, 37, 36, 3, 56,
+ 7, 2, 3, 56, 7, 3, 3, 56,
+ 7, 4, 3, 56, 47, 0, 3, 56,
+ 47, 1, 3, 56, 47, 2, 3, 56,
+ 47, 3, 3, 56, 47, 4, 3, 56,
+ 93, 1, 3, 56, 93, 2, 3, 56,
+ 93, 3, 3, 56, 93, 4, 3, 66,
+ 68, 0, 3, 66, 68, 61, 3, 67,
+ 62, 63, 3, 68, 61, 0, 3, 70,
+ 26, 69, 3, 72, 0, 1, 3, 75,
+ 23, 13, 3, 76, 0, 1, 3, 80,
+ 2, 7, 3, 80, 3, 7, 3, 80,
+ 4, 7, 3, 80, 7, 4, 3, 82,
+ 23, 13, 3, 85, 0, 1, 3, 88,
+ 7, 1, 3, 88, 7, 4, 3, 88,
+ 30, 25, 3, 88, 32, 7, 3, 90,
+ 30, 25, 3, 90, 91, 307, 3, 93,
+ 2, 7, 3, 93, 3, 7, 3, 93,
+ 4, 7, 3, 96, 107, 306, 3, 96,
+ 156, 306, 3, 97, 98, 0, 3, 97,
+ 98, 1, 3, 97, 98, 2, 3, 97,
+ 98, 3, 3, 97, 98, 4, 3, 97,
+ 98, 29, 3, 99, 100, 0, 3, 99,
+ 100, 1, 3, 99, 100, 2, 3, 99,
+ 100, 3, 3, 99, 100, 4, 3, 99,
+ 100, 29, 3, 105, 106, 0, 3, 105,
+ 106, 1, 3, 105, 106, 2, 3, 105,
+ 106, 3, 3, 105, 106, 4, 3, 110,
+ 112, 278, 3, 110, 287, 306, 3, 147,
+ 145, 293, 3, 153, 145, 293, 3, 156,
+ 157, 306, 3, 208, 259, 0, 3, 209,
+ 259, 0, 3, 210, 259, 0, 3, 211,
+ 259, 0, 3, 212, 259, 0, 3, 213,
+ 259, 0, 3, 214, 259, 0, 3, 215,
+ 259, 0, 3, 216, 259, 0, 3, 217,
+ 259, 0, 3, 218, 259, 0, 3, 219,
+ 259, 0, 3, 220, 259, 0, 3, 221,
+ 259, 0, 3, 222, 259, 0, 3, 223,
+ 259, 0, 3, 224, 259, 0, 3, 225,
+ 259, 0, 3, 226, 259, 0, 3, 227,
+ 259, 0, 3, 228, 259, 0, 3, 229,
+ 259, 0, 3, 230, 259, 0, 3, 231,
+ 259, 0, 3, 232, 259, 0, 3, 233,
+ 259, 0, 3, 234, 259, 0, 3, 235,
+ 259, 0, 3, 236, 259, 0, 3, 237,
+ 259, 0, 3, 238, 259, 0, 3, 239,
+ 259, 0, 3, 240, 259, 0, 3, 241,
+ 259, 0, 3, 242, 259, 0, 3, 243,
+ 259, 0, 3, 244, 259, 0, 3, 245,
+ 259, 0, 3, 246, 259, 0, 3, 247,
+ 259, 0, 3, 248, 259, 0, 3, 249,
+ 259, 0, 3, 250, 259, 0, 3, 251,
+ 259, 0, 3, 252, 259, 0, 3, 253,
+ 259, 0, 3, 254, 259, 0, 3, 255,
+ 259, 0, 3, 256, 259, 0, 3, 257,
+ 259, 0, 3, 258, 259, 0, 3, 275,
+ 37, 36, 3, 280, 281, 0, 3, 280,
+ 282, 0, 3, 283, 110, 306, 3, 285,
+ 286, 0, 3, 287, 110, 306, 3, 288,
+ 289, 0, 3, 293, 289, 0, 3, 296,
+ 28, 299, 3, 306, 8, 89, 3, 307,
+ 7, 1, 3, 307, 7, 4, 3, 307,
+ 30, 25, 3, 307, 361, 1, 3, 309,
+ 30, 25, 3, 311, 306, 8, 3, 312,
+ 305, 1, 3, 312, 305, 2, 3, 312,
+ 305, 3, 3, 312, 305, 4, 3, 312,
+ 305, 7, 3, 312, 305, 307, 3, 313,
+ 305, 1, 3, 313, 305, 2, 3, 313,
+ 305, 3, 3, 313, 305, 4, 3, 313,
+ 305, 307, 3, 314, 305, 1, 3, 314,
+ 305, 2, 3, 314, 305, 3, 3, 314,
+ 305, 4, 3, 314, 305, 307, 3, 315,
+ 305, 1, 3, 315, 305, 2, 3, 315,
+ 305, 3, 3, 315, 305, 4, 3, 315,
+ 305, 307, 3, 316, 305, 1, 3, 316,
+ 305, 2, 3, 316, 305, 3, 3, 316,
+ 305, 4, 3, 316, 305, 307, 3, 317,
+ 305, 1, 3, 317, 305, 2, 3, 317,
+ 305, 3, 3, 317, 305, 4, 3, 317,
+ 305, 307, 3, 318, 305, 1, 3, 318,
+ 305, 2, 3, 318, 305, 3, 3, 318,
+ 305, 4, 3, 318, 305, 307, 3, 319,
+ 305, 1, 3, 319, 305, 2, 3, 319,
+ 305, 3, 3, 319, 305, 4, 3, 319,
+ 305, 307, 3, 320, 305, 1, 3, 320,
+ 305, 2, 3, 320, 305, 3, 3, 320,
+ 305, 4, 3, 320, 305, 307, 3, 321,
+ 305, 1, 3, 321, 305, 2, 3, 321,
+ 305, 3, 3, 321, 305, 4, 3, 321,
+ 305, 307, 3, 322, 305, 1, 3, 322,
+ 305, 2, 3, 322, 305, 3, 3, 322,
+ 305, 4, 3, 322, 305, 307, 3, 323,
+ 305, 1, 3, 323, 305, 2, 3, 323,
+ 305, 3, 3, 323, 305, 4, 3, 323,
+ 305, 307, 3, 324, 305, 1, 3, 324,
+ 305, 2, 3, 324, 305, 3, 3, 324,
+ 305, 4, 3, 324, 305, 307, 3, 325,
+ 305, 1, 3, 325, 305, 2, 3, 325,
+ 305, 3, 3, 325, 305, 4, 3, 325,
+ 305, 307, 3, 326, 305, 1, 3, 326,
+ 305, 2, 3, 326, 305, 3, 3, 326,
+ 305, 4, 3, 326, 305, 307, 3, 327,
+ 305, 1, 3, 327, 305, 2, 3, 327,
+ 305, 3, 3, 327, 305, 4, 3, 327,
+ 305, 307, 3, 328, 305, 1, 3, 328,
+ 305, 2, 3, 328, 305, 3, 3, 328,
+ 305, 4, 3, 328, 305, 307, 3, 329,
+ 305, 1, 3, 329, 305, 2, 3, 329,
+ 305, 3, 3, 329, 305, 4, 3, 329,
+ 305, 307, 3, 330, 305, 1, 3, 330,
+ 305, 2, 3, 330, 305, 3, 3, 330,
+ 305, 4, 3, 330, 305, 307, 3, 331,
+ 305, 1, 3, 331, 305, 2, 3, 331,
+ 305, 3, 3, 331, 305, 4, 3, 331,
+ 305, 307, 3, 332, 305, 1, 3, 332,
+ 305, 2, 3, 332, 305, 3, 3, 332,
+ 305, 4, 3, 332, 305, 307, 3, 333,
+ 305, 1, 3, 333, 305, 2, 3, 333,
+ 305, 3, 3, 333, 305, 4, 3, 333,
+ 305, 307, 3, 334, 305, 1, 3, 334,
+ 305, 2, 3, 334, 305, 3, 3, 334,
+ 305, 4, 3, 334, 305, 307, 3, 335,
+ 305, 1, 3, 335, 305, 2, 3, 335,
+ 305, 3, 3, 335, 305, 4, 3, 335,
+ 305, 307, 3, 336, 305, 1, 3, 336,
+ 305, 2, 3, 336, 305, 3, 3, 336,
+ 305, 4, 3, 336, 305, 307, 3, 337,
+ 305, 1, 3, 337, 305, 2, 3, 337,
+ 305, 3, 3, 337, 305, 4, 3, 337,
+ 305, 307, 3, 338, 305, 1, 3, 338,
+ 305, 2, 3, 338, 305, 3, 3, 338,
+ 305, 4, 3, 338, 305, 307, 3, 339,
+ 305, 1, 3, 339, 305, 2, 3, 339,
+ 305, 3, 3, 339, 305, 4, 3, 339,
+ 305, 307, 3, 340, 305, 1, 3, 340,
+ 305, 2, 3, 340, 305, 3, 3, 340,
+ 305, 4, 3, 340, 305, 307, 3, 341,
+ 305, 1, 3, 341, 305, 2, 3, 341,
+ 305, 3, 3, 341, 305, 4, 3, 341,
+ 305, 307, 3, 342, 305, 1, 3, 342,
+ 305, 2, 3, 342, 305, 3, 3, 342,
+ 305, 4, 3, 342, 305, 307, 3, 343,
+ 305, 1, 3, 343, 305, 2, 3, 343,
+ 305, 3, 3, 343, 305, 4, 3, 343,
+ 305, 307, 3, 344, 305, 1, 3, 344,
+ 305, 2, 3, 344, 305, 3, 3, 344,
+ 305, 4, 3, 344, 305, 307, 3, 345,
+ 305, 1, 3, 345, 305, 2, 3, 345,
+ 305, 3, 3, 345, 305, 4, 3, 345,
+ 305, 307, 3, 346, 305, 1, 3, 346,
+ 305, 2, 3, 346, 305, 3, 3, 346,
+ 305, 4, 3, 346, 305, 307, 3, 347,
+ 305, 1, 3, 347, 305, 2, 3, 347,
+ 305, 3, 3, 347, 305, 4, 3, 347,
+ 305, 307, 3, 348, 305, 1, 3, 348,
+ 305, 2, 3, 348, 305, 3, 3, 348,
+ 305, 4, 3, 348, 305, 307, 3, 349,
+ 305, 1, 3, 349, 305, 2, 3, 349,
+ 305, 3, 3, 349, 305, 4, 3, 349,
+ 305, 307, 3, 350, 305, 1, 3, 350,
+ 305, 2, 3, 350, 305, 3, 3, 350,
+ 305, 4, 3, 350, 305, 307, 3, 351,
+ 305, 1, 3, 351, 305, 2, 3, 351,
+ 305, 3, 3, 351, 305, 4, 3, 351,
+ 305, 307, 3, 352, 305, 1, 3, 352,
+ 305, 2, 3, 352, 305, 3, 3, 352,
+ 305, 4, 3, 352, 305, 307, 3, 353,
+ 305, 1, 3, 353, 305, 2, 3, 353,
+ 305, 3, 3, 353, 305, 4, 3, 353,
+ 305, 307, 3, 354, 305, 1, 3, 354,
+ 305, 2, 3, 354, 305, 3, 3, 354,
+ 305, 4, 3, 354, 305, 307, 3, 355,
+ 305, 1, 3, 355, 305, 2, 3, 355,
+ 305, 3, 3, 355, 305, 4, 3, 355,
+ 305, 307, 3, 356, 305, 1, 3, 356,
+ 305, 2, 3, 356, 305, 3, 3, 356,
+ 305, 4, 3, 356, 305, 307, 3, 357,
+ 305, 1, 3, 357, 305, 2, 3, 357,
+ 305, 3, 3, 357, 305, 4, 3, 357,
+ 305, 307, 3, 358, 305, 1, 3, 358,
+ 305, 2, 3, 358, 305, 3, 3, 358,
+ 305, 4, 3, 358, 305, 307, 3, 359,
+ 305, 1, 3, 359, 305, 2, 3, 359,
+ 305, 3, 3, 359, 305, 4, 3, 359,
+ 305, 307, 3, 360, 305, 1, 3, 360,
+ 305, 2, 3, 360, 305, 3, 3, 360,
+ 305, 4, 3, 360, 305, 307, 3, 361,
+ 1, 6, 4, 1, 7, 361, 32, 4,
+ 1, 307, 32, 7, 4, 4, 307, 7,
+ 32, 4, 4, 307, 32, 7, 4, 6,
+ 1, 7, 361, 4, 6, 1, 85, 0,
+ 4, 6, 72, 0, 1, 4, 6, 76,
+ 0, 1, 4, 6, 85, 0, 1, 4,
+ 7, 6, 361, 1, 4, 7, 72, 0,
+ 1, 4, 7, 361, 1, 6, 4, 7,
+ 361, 1, 32, 4, 18, 15, 21, 0,
+ 4, 20, 83, 7, 2, 4, 20, 83,
+ 7, 3, 4, 20, 83, 7, 4, 4,
+ 27, 1, 71, 0, 4, 27, 4, 71,
+ 0, 4, 27, 295, 29, 293, 4, 29,
+ 293, 289, 0, 4, 29, 297, 293, 1,
+ 4, 29, 297, 293, 2, 4, 29, 297,
+ 293, 3, 4, 29, 297, 293, 4, 4,
+ 31, 1, 7, 361, 4, 31, 1, 310,
+ 307, 4, 31, 1, 312, 305, 4, 31,
+ 2, 93, 7, 4, 31, 2, 310, 307,
+ 4, 31, 2, 312, 305, 4, 31, 3,
+ 93, 7, 4, 31, 3, 310, 307, 4,
+ 31, 3, 312, 305, 4, 31, 4, 93,
+ 7, 4, 31, 4, 310, 307, 4, 31,
+ 4, 312, 305, 4, 31, 312, 305, 7,
+ 4, 33, 38, 311, 8, 4, 33, 50,
+ 38, 311, 4, 33, 311, 306, 8, 4,
+ 37, 36, 30, 25, 4, 38, 311, 306,
+ 8, 4, 40, 37, 36, 41, 4, 40,
+ 42, 266, 1, 4, 40, 42, 266, 2,
+ 4, 40, 42, 266, 3, 4, 40, 42,
+ 266, 4, 4, 40, 42, 267, 1, 4,
+ 40, 42, 267, 2, 4, 40, 42, 267,
+ 3, 4, 40, 42, 267, 4, 4, 40,
+ 42, 268, 1, 4, 40, 42, 268, 2,
+ 4, 40, 42, 268, 3, 4, 40, 42,
+ 268, 4, 4, 40, 42, 269, 1, 4,
+ 40, 42, 269, 2, 4, 40, 42, 269,
+ 3, 4, 40, 42, 269, 4, 4, 40,
+ 42, 270, 1, 4, 40, 42, 270, 2,
+ 4, 40, 42, 270, 3, 4, 40, 42,
+ 270, 4, 4, 40, 42, 271, 1, 4,
+ 40, 42, 271, 2, 4, 40, 42, 271,
+ 3, 4, 40, 42, 271, 4, 4, 42,
+ 268, 276, 0, 4, 42, 269, 276, 0,
+ 4, 42, 270, 276, 0, 4, 42, 271,
+ 276, 0, 4, 43, 39, 37, 36, 4,
+ 44, 39, 37, 36, 4, 46, 145, 293,
+ 1, 4, 46, 145, 293, 2, 4, 46,
+ 145, 293, 3, 4, 46, 145, 293, 4,
+ 4, 46, 293, 289, 0, 4, 48, 305,
+ 1, 307, 4, 48, 305, 4, 307, 4,
+ 50, 38, 8, 73, 4, 56, 55, 37,
+ 36, 4, 66, 68, 61, 0, 4, 75,
+ 23, 13, 14, 4, 82, 23, 13, 14,
+ 4, 88, 32, 1, 7, 4, 88, 32,
+ 2, 7, 4, 88, 32, 3, 7, 4,
+ 88, 32, 4, 7, 4, 90, 91, 30,
+ 25, 4, 93, 1, 7, 361, 4, 96,
+ 156, 157, 306, 4, 97, 98, 1, 0,
+ 4, 97, 98, 4, 0, 4, 97, 98,
+ 29, 293, 4, 99, 100, 1, 0, 4,
+ 99, 100, 4, 0, 4, 99, 100, 29,
+ 293, 4, 105, 106, 1, 0, 4, 105,
+ 106, 4, 0, 4, 147, 145, 293, 1,
+ 4, 147, 145, 293, 2, 4, 147, 145,
+ 293, 3, 4, 147, 145, 293, 4, 4,
+ 147, 298, 37, 36, 4, 153, 145, 293,
+ 1, 4, 153, 145, 293, 2, 4, 153,
+ 145, 293, 3, 4, 153, 145, 293, 4,
+ 4, 208, 1, 259, 0, 4, 208, 4,
+ 259, 0, 4, 209, 1, 259, 0, 4,
+ 209, 4, 259, 0, 4, 210, 1, 259,
+ 0, 4, 210, 4, 259, 0, 4, 211,
+ 1, 259, 0, 4, 211, 4, 259, 0,
+ 4, 212, 1, 259, 0, 4, 212, 4,
+ 259, 0, 4, 213, 1, 259, 0, 4,
+ 213, 4, 259, 0, 4, 214, 1, 259,
+ 0, 4, 214, 4, 259, 0, 4, 215,
+ 1, 259, 0, 4, 215, 4, 259, 0,
+ 4, 216, 1, 259, 0, 4, 216, 4,
+ 259, 0, 4, 217, 1, 259, 0, 4,
+ 217, 4, 259, 0, 4, 218, 1, 259,
+ 0, 4, 218, 4, 259, 0, 4, 219,
+ 1, 259, 0, 4, 219, 4, 259, 0,
+ 4, 220, 1, 259, 0, 4, 220, 4,
+ 259, 0, 4, 221, 1, 259, 0, 4,
+ 221, 4, 259, 0, 4, 222, 1, 259,
+ 0, 4, 222, 4, 259, 0, 4, 223,
+ 1, 259, 0, 4, 223, 4, 259, 0,
+ 4, 224, 1, 259, 0, 4, 224, 4,
+ 259, 0, 4, 225, 1, 259, 0, 4,
+ 225, 4, 259, 0, 4, 226, 1, 259,
+ 0, 4, 226, 4, 259, 0, 4, 227,
+ 1, 259, 0, 4, 227, 4, 259, 0,
+ 4, 228, 1, 259, 0, 4, 228, 4,
+ 259, 0, 4, 229, 1, 259, 0, 4,
+ 229, 4, 259, 0, 4, 230, 1, 259,
+ 0, 4, 230, 4, 259, 0, 4, 231,
+ 1, 259, 0, 4, 231, 4, 259, 0,
+ 4, 232, 1, 259, 0, 4, 232, 4,
+ 259, 0, 4, 233, 1, 259, 0, 4,
+ 233, 4, 259, 0, 4, 234, 1, 259,
+ 0, 4, 234, 4, 259, 0, 4, 235,
+ 1, 259, 0, 4, 235, 4, 259, 0,
+ 4, 236, 1, 259, 0, 4, 236, 4,
+ 259, 0, 4, 237, 1, 259, 0, 4,
+ 237, 4, 259, 0, 4, 238, 1, 259,
+ 0, 4, 238, 4, 259, 0, 4, 239,
+ 1, 259, 0, 4, 239, 4, 259, 0,
+ 4, 240, 1, 259, 0, 4, 240, 4,
+ 259, 0, 4, 241, 1, 259, 0, 4,
+ 241, 4, 259, 0, 4, 242, 1, 259,
+ 0, 4, 242, 4, 259, 0, 4, 243,
+ 1, 259, 0, 4, 243, 4, 259, 0,
+ 4, 244, 1, 259, 0, 4, 244, 4,
+ 259, 0, 4, 245, 1, 259, 0, 4,
+ 245, 4, 259, 0, 4, 246, 1, 259,
+ 0, 4, 246, 4, 259, 0, 4, 247,
+ 1, 259, 0, 4, 247, 4, 259, 0,
+ 4, 248, 1, 259, 0, 4, 248, 4,
+ 259, 0, 4, 249, 1, 259, 0, 4,
+ 249, 4, 259, 0, 4, 250, 1, 259,
+ 0, 4, 250, 4, 259, 0, 4, 251,
+ 1, 259, 0, 4, 251, 4, 259, 0,
+ 4, 252, 1, 259, 0, 4, 252, 4,
+ 259, 0, 4, 253, 1, 259, 0, 4,
+ 253, 4, 259, 0, 4, 254, 1, 259,
+ 0, 4, 254, 4, 259, 0, 4, 255,
+ 1, 259, 0, 4, 255, 4, 259, 0,
+ 4, 256, 1, 259, 0, 4, 256, 4,
+ 259, 0, 4, 257, 1, 259, 0, 4,
+ 257, 4, 259, 0, 4, 258, 1, 259,
+ 0, 4, 258, 4, 259, 0, 4, 288,
+ 1, 289, 0, 4, 288, 4, 289, 0,
+ 4, 293, 1, 289, 0, 4, 293, 4,
+ 289, 0, 4, 294, 28, 26, 69, 4,
+ 307, 7, 361, 1, 4, 312, 305, 1,
+ 307, 4, 312, 305, 2, 7, 4, 312,
+ 305, 3, 7, 4, 312, 305, 4, 7,
+ 4, 312, 305, 4, 307, 4, 313, 305,
+ 1, 307, 4, 313, 305, 4, 307, 4,
+ 314, 305, 1, 307, 4, 314, 305, 4,
+ 307, 4, 315, 305, 1, 307, 4, 315,
+ 305, 4, 307, 4, 316, 305, 1, 307,
+ 4, 316, 305, 4, 307, 4, 317, 305,
+ 1, 307, 4, 317, 305, 4, 307, 4,
+ 318, 305, 1, 307, 4, 318, 305, 4,
+ 307, 4, 319, 305, 1, 307, 4, 319,
+ 305, 4, 307, 4, 320, 305, 1, 307,
+ 4, 320, 305, 4, 307, 4, 321, 305,
+ 1, 307, 4, 321, 305, 4, 307, 4,
+ 322, 305, 1, 307, 4, 322, 305, 4,
+ 307, 4, 323, 305, 1, 307, 4, 323,
+ 305, 4, 307, 4, 324, 305, 1, 307,
+ 4, 324, 305, 4, 307, 4, 325, 305,
+ 1, 307, 4, 325, 305, 4, 307, 4,
+ 326, 305, 1, 307, 4, 326, 305, 4,
+ 307, 4, 327, 305, 1, 307, 4, 327,
+ 305, 4, 307, 4, 328, 305, 1, 307,
+ 4, 328, 305, 4, 307, 4, 329, 305,
+ 1, 307, 4, 329, 305, 4, 307, 4,
+ 330, 305, 1, 307, 4, 330, 305, 4,
+ 307, 4, 331, 305, 1, 307, 4, 331,
+ 305, 4, 307, 4, 332, 305, 1, 307,
+ 4, 332, 305, 4, 307, 4, 333, 305,
+ 1, 307, 4, 333, 305, 4, 307, 4,
+ 334, 305, 1, 307, 4, 334, 305, 4,
+ 307, 4, 335, 305, 1, 307, 4, 335,
+ 305, 4, 307, 4, 336, 305, 1, 307,
+ 4, 336, 305, 4, 307, 4, 337, 305,
+ 1, 307, 4, 337, 305, 4, 307, 4,
+ 338, 305, 1, 307, 4, 338, 305, 4,
+ 307, 4, 339, 305, 1, 307, 4, 339,
+ 305, 4, 307, 4, 340, 305, 1, 307,
+ 4, 340, 305, 4, 307, 4, 341, 305,
+ 1, 307, 4, 341, 305, 4, 307, 4,
+ 342, 305, 1, 307, 4, 342, 305, 4,
+ 307, 4, 343, 305, 1, 307, 4, 343,
+ 305, 4, 307, 4, 344, 305, 1, 307,
+ 4, 344, 305, 4, 307, 4, 345, 305,
+ 1, 307, 4, 345, 305, 4, 307, 4,
+ 346, 305, 1, 307, 4, 346, 305, 4,
+ 307, 4, 347, 305, 1, 307, 4, 347,
+ 305, 4, 307, 4, 348, 305, 1, 307,
+ 4, 348, 305, 4, 307, 4, 349, 305,
+ 1, 307, 4, 349, 305, 4, 307, 4,
+ 350, 305, 1, 307, 4, 350, 305, 4,
+ 307, 4, 351, 305, 1, 307, 4, 351,
+ 305, 4, 307, 4, 352, 305, 1, 307,
+ 4, 352, 305, 4, 307, 4, 353, 305,
+ 1, 307, 4, 353, 305, 4, 307, 4,
+ 354, 305, 1, 307, 4, 354, 305, 4,
+ 307, 4, 355, 305, 1, 307, 4, 355,
+ 305, 4, 307, 4, 356, 305, 1, 307,
+ 4, 356, 305, 4, 307, 4, 357, 305,
+ 1, 307, 4, 357, 305, 4, 307, 4,
+ 358, 305, 1, 307, 4, 358, 305, 4,
+ 307, 4, 359, 305, 1, 307, 4, 359,
+ 305, 4, 307, 4, 360, 305, 1, 307,
+ 4, 360, 305, 4, 307, 5, 20, 7,
+ 76, 0, 1, 5, 27, 295, 29, 293,
+ 1, 5, 27, 295, 29, 293, 2, 5,
+ 27, 295, 29, 293, 3, 5, 27, 295,
+ 29, 293, 4, 5, 29, 293, 1, 289,
+ 0, 5, 29, 293, 4, 289, 0, 5,
+ 29, 297, 293, 289, 0, 5, 31, 1,
+ 93, 7, 361, 5, 31, 1, 312, 305,
+ 307, 5, 31, 2, 312, 305, 7, 5,
+ 31, 3, 312, 305, 7, 5, 31, 4,
+ 312, 305, 7, 5, 31, 4, 312, 305,
+ 307, 5, 33, 38, 311, 306, 8, 5,
+ 37, 36, 307, 30, 25, 5, 40, 42,
+ 268, 276, 0, 5, 40, 42, 269, 276,
+ 0, 5, 40, 42, 270, 276, 0, 5,
+ 40, 42, 271, 276, 0, 5, 42, 268,
+ 1, 276, 0, 5, 42, 268, 4, 276,
+ 0, 5, 42, 269, 1, 276, 0, 5,
+ 42, 269, 4, 276, 0, 5, 42, 270,
+ 1, 276, 0, 5, 42, 270, 4, 276,
+ 0, 5, 42, 271, 1, 276, 0, 5,
+ 42, 271, 4, 276, 0, 5, 46, 145,
+ 293, 289, 0, 5, 46, 293, 1, 289,
+ 0, 5, 46, 293, 4, 289, 0, 5,
+ 50, 38, 311, 306, 8, 5, 56, 7,
+ 72, 0, 1, 5, 80, 7, 85, 0,
+ 1, 5, 90, 91, 307, 30, 25, 5,
+ 97, 98, 29, 293, 1, 5, 97, 98,
+ 29, 293, 2, 5, 97, 98, 29, 293,
+ 3, 5, 97, 98, 29, 293, 4, 5,
+ 99, 100, 29, 293, 1, 5, 99, 100,
+ 29, 293, 2, 5, 99, 100, 29, 293,
+ 3, 5, 99, 100, 29, 293, 4, 5,
+ 147, 145, 293, 289, 0, 5, 153, 145,
+ 293, 289, 0, 5, 274, 43, 39, 37,
+ 36, 5, 312, 305, 1, 7, 361, 5,
+ 312, 305, 4, 307, 7, 5, 312, 305,
+ 307, 7, 4, 6, 20, 83, 7, 85,
+ 0, 1, 6, 27, 295, 29, 293, 289,
+ 0, 6, 29, 297, 293, 1, 289, 0,
+ 6, 29, 297, 293, 4, 289, 0, 6,
+ 31, 1, 312, 305, 7, 361, 6, 31,
+ 4, 312, 305, 307, 7, 6, 33, 50,
+ 38, 311, 306, 8, 6, 40, 42, 268,
+ 1, 276, 0, 6, 40, 42, 268, 4,
+ 276, 0, 6, 40, 42, 269, 1, 276,
+ 0, 6, 40, 42, 269, 4, 276, 0,
+ 6, 40, 42, 270, 1, 276, 0, 6,
+ 40, 42, 270, 4, 276, 0, 6, 40,
+ 42, 271, 1, 276, 0, 6, 40, 42,
+ 271, 4, 276, 0, 6, 46, 145, 293,
+ 1, 289, 0, 6, 46, 145, 293, 4,
+ 289, 0, 6, 97, 98, 29, 293, 289,
+ 0, 6, 99, 100, 29, 293, 289, 0,
+ 6, 147, 145, 293, 1, 289, 0, 6,
+ 147, 145, 293, 4, 289, 0, 6, 153,
+ 145, 293, 1, 289, 0, 6, 153, 145,
+ 293, 4, 289, 0, 6, 312, 305, 1,
+ 307, 7, 361, 6, 312, 305, 307, 7,
+ 361, 1, 7, 27, 295, 29, 293, 1,
+ 289, 0, 7, 27, 295, 29, 293, 4,
+ 289, 0, 7, 31, 1, 312, 305, 307,
+ 7, 361, 7, 97, 98, 29, 293, 1,
+ 289, 0, 7, 97, 98, 29, 293, 4,
+ 289, 0, 7, 99, 100, 29, 293, 1,
+ 289, 0, 7, 99, 100, 29, 293, 4,
+ 289, 0
};
static const short _zone_scanner_cond_offsets[] = {
@@ -918,172 +933,178 @@ static const short _zone_scanner_cond_offsets[] = {
116, 118, 118, 120, 120, 120, 120, 122,
122, 122, 124, 124, 124, 124, 126, 126,
128, 128, 128, 128, 130, 130, 130, 132,
- 132, 132, 132, 132, 132, 134, 137, 139,
- 139, 141, 143, 145, 147, 147, 149, 152,
- 152, 152, 152, 152, 152, 152, 152, 152,
- 152, 154, 156, 159, 161, 163, 166, 168,
- 168, 170, 173, 175, 177, 179, 181, 183,
- 186, 188, 190, 192, 194, 196, 198, 200,
- 202, 204, 206, 208, 210, 212, 214, 216,
- 218, 220, 222, 224, 227, 229, 229, 229,
- 229, 229, 229, 229, 229, 229, 229, 231,
- 233, 235, 238, 240, 242, 244, 246, 248,
- 250, 252, 254, 256, 258, 260, 262, 264,
- 266, 268, 270, 272, 274, 276, 278, 283,
- 288, 293, 298, 298, 298, 300, 300, 300,
- 300, 302, 302, 304, 307, 309, 311, 316,
- 321, 326, 331, 334, 336, 341, 346, 348,
- 350, 352, 354, 356, 358, 360, 362, 364,
- 366, 368, 370, 372, 374, 376, 378, 381,
- 384, 386, 389, 391, 391, 391, 391, 391,
- 391, 391, 391, 391, 391, 391, 391, 391,
- 391, 391, 391, 391, 391, 392, 393, 393,
- 393, 393, 393, 394, 396, 398, 400, 402,
- 402, 404, 404, 406, 409, 411, 413, 413,
- 415, 417, 417, 417, 417, 417, 417, 419,
- 422, 424, 426, 428, 430, 430, 432, 434,
- 434, 434, 434, 434, 434, 436, 439, 441,
- 444, 447, 447, 447, 447, 447, 449, 452,
- 452, 454, 456, 458, 458, 458, 460, 463,
- 463, 463, 465, 465, 465, 465, 465, 465,
- 467, 469, 469, 469, 471, 471, 471, 471,
- 473, 473, 473, 473, 475, 475, 475, 475,
- 475, 477, 477, 477, 477, 479, 479, 479,
- 479, 481, 483, 483, 483, 483, 483, 485,
- 485, 487, 487, 487, 487, 487, 489, 489,
- 489, 489, 491, 491, 491, 491, 491, 491,
- 491, 491, 493, 493, 493, 495, 497, 497,
- 497, 499, 499, 501, 501, 503, 505, 505,
- 505, 505, 505, 507, 509, 509, 509, 509,
- 509, 511, 511, 513, 515, 515, 517, 519,
- 519, 519, 519, 519, 521, 521, 521, 521,
- 521, 521, 521, 521, 521, 521, 523, 523,
- 523, 525, 525, 527, 527, 527, 527, 529,
- 531, 531, 531, 531, 531, 531, 533, 533,
- 535, 535, 537, 537, 539, 539, 539, 539,
- 541, 541, 541, 543, 543, 543, 543, 545,
- 545, 547, 547, 547, 547, 549, 549, 549,
- 551, 551, 551, 551, 551, 551, 553, 553,
- 553, 553, 555, 555, 557, 559, 561, 563,
- 565, 565, 567, 570, 573, 576, 578, 580,
- 582, 584, 584, 586, 589, 592, 594, 597,
- 597, 597, 597, 597, 597, 597, 597, 597,
- 597, 597, 597, 597, 597, 597, 597, 597,
- 597, 597, 597, 597, 597, 597, 597, 597,
- 597, 597, 597, 597, 597, 597, 597, 597,
- 597, 597, 597, 597, 597, 597, 597, 597,
- 597, 597, 597, 597, 599, 601, 601, 601,
- 601, 601, 601, 603, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 608, 608,
- 608, 608, 608, 610, 610, 610, 610, 610,
- 610, 610, 610, 610, 610, 610, 610, 610,
- 610, 612, 612, 612, 612, 612, 612, 612,
- 612, 612, 612, 612, 614, 614, 614, 614,
- 614, 616, 616, 618, 618, 618, 618, 618,
- 618, 618, 618, 618, 618, 618, 618, 618,
- 618, 620, 620, 620, 620, 620, 620, 620,
- 620, 620, 620, 620, 620, 620, 620, 620,
- 620, 622, 622, 622, 622, 622, 622, 622,
- 622, 624, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 626, 626, 626, 626, 626, 626,
+ 132, 132, 132, 132, 132, 134, 134, 134,
+ 134, 134, 134, 136, 139, 141, 141, 143,
+ 145, 147, 149, 149, 151, 154, 154, 154,
+ 154, 154, 154, 154, 154, 154, 154, 156,
+ 158, 161, 163, 165, 168, 170, 170, 172,
+ 175, 177, 179, 181, 183, 185, 188, 190,
+ 192, 194, 196, 198, 200, 202, 204, 206,
+ 208, 210, 212, 214, 216, 218, 220, 222,
+ 224, 226, 228, 231, 233, 233, 233, 233,
+ 233, 233, 233, 233, 233, 233, 235, 237,
+ 239, 242, 244, 246, 248, 250, 252, 254,
+ 256, 258, 260, 262, 264, 266, 268, 270,
+ 272, 274, 276, 278, 280, 282, 284, 289,
+ 294, 299, 304, 304, 304, 306, 306, 306,
+ 306, 308, 308, 310, 313, 315, 317, 322,
+ 327, 332, 337, 340, 342, 347, 352, 354,
+ 356, 358, 360, 362, 364, 366, 368, 370,
+ 372, 374, 376, 378, 380, 382, 384, 386,
+ 389, 392, 394, 397, 399, 399, 399, 399,
+ 399, 399, 399, 399, 399, 399, 399, 399,
+ 399, 399, 399, 399, 399, 399, 400, 401,
+ 401, 401, 401, 401, 402, 404, 406, 408,
+ 410, 410, 412, 412, 414, 417, 419, 421,
+ 421, 423, 425, 425, 425, 425, 425, 425,
+ 427, 430, 432, 434, 436, 438, 438, 440,
+ 442, 442, 442, 442, 442, 442, 444, 447,
+ 449, 452, 455, 455, 455, 455, 455, 457,
+ 460, 460, 462, 464, 466, 466, 466, 468,
+ 471, 471, 471, 473, 473, 473, 473, 473,
+ 473, 475, 477, 477, 477, 479, 479, 479,
+ 479, 481, 481, 481, 481, 483, 483, 483,
+ 483, 483, 485, 485, 485, 485, 487, 487,
+ 487, 487, 489, 491, 491, 491, 491, 491,
+ 493, 493, 495, 495, 495, 495, 495, 497,
+ 497, 497, 497, 499, 499, 499, 499, 499,
+ 499, 499, 499, 501, 501, 501, 503, 505,
+ 505, 505, 507, 507, 509, 509, 511, 513,
+ 513, 513, 513, 513, 515, 517, 517, 517,
+ 517, 517, 519, 519, 521, 523, 523, 525,
+ 527, 527, 527, 527, 527, 529, 529, 529,
+ 529, 529, 529, 529, 529, 529, 529, 531,
+ 531, 531, 533, 533, 535, 535, 535, 535,
+ 537, 539, 539, 539, 539, 539, 539, 541,
+ 541, 543, 543, 545, 545, 547, 547, 547,
+ 547, 549, 549, 549, 551, 551, 551, 551,
+ 553, 553, 555, 555, 555, 555, 557, 557,
+ 557, 559, 559, 559, 559, 559, 559, 561,
+ 561, 561, 561, 561, 561, 563, 563, 563,
+ 563, 565, 565, 567, 569, 571, 573, 575,
+ 575, 577, 580, 583, 586, 588, 590, 592,
+ 594, 594, 596, 599, 602, 604, 607, 607,
+ 607, 607, 607, 607, 607, 607, 607, 607,
+ 607, 607, 607, 607, 607, 607, 607, 607,
+ 607, 607, 607, 607, 607, 607, 607, 607,
+ 607, 607, 607, 607, 607, 607, 607, 607,
+ 607, 607, 607, 607, 607, 607, 607, 607,
+ 607, 607, 607, 607, 607, 607, 607, 607,
+ 607, 607, 607, 607, 607, 607, 607, 609,
+ 611, 611, 611, 611, 611, 611, 613, 616,
+ 616, 616, 616, 616, 616, 616, 616, 616,
+ 618, 620, 620, 622, 622, 622, 622, 622,
+ 622, 622, 622, 622, 622, 622, 622, 622,
+ 622, 624, 624, 624, 624, 624, 624, 624,
+ 624, 624, 624, 624, 624, 624, 624, 626,
626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 628, 630, 632, 634, 636, 638,
- 640, 642, 644, 646, 648, 650, 650, 650,
- 650, 650, 653, 655, 655, 657, 660, 662,
- 662, 664, 667, 669, 669, 671, 674, 677,
- 680, 680, 682, 684, 684, 687, 687, 689,
- 691, 691, 694, 694, 696, 698, 698, 701,
- 701, 703, 705, 708, 708, 708, 708, 710,
- 712, 714, 716, 718, 720, 722, 724, 726,
- 728, 730, 732, 734, 736, 738, 740, 740,
- 742, 744, 746, 748, 750, 752, 754, 756,
- 759, 761, 763, 766, 768, 770, 772, 775,
- 777, 779, 781, 784, 786, 788, 790, 793,
- 795, 798, 800, 802, 805, 808, 811, 813,
- 816, 818, 820, 823, 826, 826, 828, 830,
- 832, 834, 836, 838, 838, 841, 844, 847,
- 847, 849, 851, 853, 855, 857, 859, 861,
- 863, 865, 867, 867, 870, 873, 876, 879,
- 882, 882, 884, 886, 888, 890, 892, 894,
- 896, 899, 902, 905, 907, 907, 907, 907,
- 907, 907, 909, 912, 912, 912, 912, 912,
- 914, 916, 918, 920, 922, 924, 924, 926,
- 929, 932, 935, 938, 938, 940, 942, 944,
- 946, 946, 948, 951, 954, 957, 957, 959,
- 961, 963, 965, 967, 969, 975, 986, 988,
- 991, 997, 1000, 1011, 1014, 1017, 1020, 1022,
- 1024, 1026, 1028, 1034, 1037, 1040, 1042, 1044,
- 1046, 1048, 1054, 1057, 1060, 1062, 1064, 1066,
- 1068, 1074, 1077, 1080, 1083, 1083, 1085, 1087,
- 1089, 1091, 1093, 1095, 1097, 1099, 1101, 1103,
- 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1120,
- 1123, 1126, 1129, 1132, 1135, 1138, 1141, 1141,
- 1141, 1143, 1143, 1143, 1143, 1145, 1145, 1147,
- 1147, 1147, 1149, 1149, 1149, 1149, 1149, 1149,
- 1151, 1153, 1153, 1153, 1155, 1155, 1155, 1155,
- 1157, 1157, 1157, 1157, 1159, 1159, 1159, 1159,
- 1159, 1161, 1161, 1161, 1161, 1163, 1163, 1163,
- 1163, 1165, 1167, 1167, 1167, 1167, 1167, 1169,
- 1169, 1171, 1171, 1171, 1171, 1171, 1173, 1173,
- 1173, 1173, 1175, 1175, 1175, 1175, 1175, 1175,
- 1175, 1175, 1177, 1177, 1177, 1179, 1181, 1181,
- 1181, 1183, 1183, 1185, 1185, 1187, 1189, 1189,
- 1189, 1189, 1189, 1191, 1193, 1193, 1193, 1193,
- 1193, 1195, 1195, 1197, 1199, 1199, 1201, 1203,
- 1203, 1203, 1203, 1203, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1207, 1207,
- 1207, 1209, 1209, 1211, 1211, 1211, 1211, 1213,
- 1215, 1215, 1215, 1215, 1215, 1215, 1217, 1217,
- 1219, 1219, 1221, 1221, 1223, 1223, 1223, 1223,
- 1225, 1225, 1225, 1227, 1227, 1227, 1227, 1229,
- 1229, 1231, 1231, 1231, 1231, 1233, 1233, 1233,
- 1235, 1235, 1235, 1235, 1235, 1235, 1237, 1237,
- 1237, 1237, 1237, 1239, 1241, 1243, 1245, 1247,
- 1249, 1251, 1254, 1257, 1260, 1260, 1262, 1262,
- 1264, 1266, 1268, 1270, 1272, 1274, 1276, 1278,
- 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278,
- 1278, 1278, 1278, 1278, 1278, 1278, 1281, 1281,
- 1283, 1286, 1289, 1292, 1292, 1294, 1296, 1298,
- 1300, 1302, 1304, 1304, 1304, 1304, 1307, 1310,
- 1313, 1313, 1315, 1317, 1319, 1321, 1323, 1325,
- 1325, 1327, 1330, 1333, 1336, 1339, 1339, 1341,
- 1343, 1343, 1343, 1346, 1346, 1348, 1350, 1352,
- 1354, 1356, 1358, 1358, 1360, 1363, 1366, 1369,
- 1372, 1372, 1374, 1376, 1376, 1379, 1379, 1381,
- 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
- 1383, 1383, 1386, 1386, 1386, 1386, 1386, 1386,
- 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
- 1388, 1390, 1392, 1394, 1394, 1397, 1400, 1400,
- 1402, 1404, 1406, 1408, 1408, 1411, 1414, 1414,
- 1416, 1418, 1418, 1418, 1421, 1423, 1425, 1427,
- 1429, 1431, 1433, 1435, 1437, 1439, 1441, 1441,
- 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1443,
- 1443, 1445, 1448, 1448, 1450, 1453, 1453, 1455,
- 1458, 1460, 1460, 1462, 1465, 1468, 1468, 1468,
- 1470, 1473, 1473, 1473, 1473, 1473, 1473, 1473,
- 1473, 1473, 1473, 1475, 1478, 1478, 1478, 1480,
- 1483, 1485, 1488, 1490, 1493, 1495, 1498, 1498,
- 1498, 1498, 1498, 1500, 1503, 1503, 1505, 1508,
- 1508, 1510, 1513, 1513, 1519, 1522, 1533, 1536,
- 1547, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
- 1550, 1552, 1555, 1555, 1555, 1557, 1560, 1560,
- 1560, 1560, 1560, 1560, 1560
+ 626, 626, 628, 628, 628, 628, 628, 630,
+ 630, 630, 630, 630, 630, 630, 630, 630,
+ 630, 630, 630, 630, 630, 630, 632, 632,
+ 632, 632, 632, 632, 632, 632, 632, 632,
+ 632, 632, 632, 632, 632, 632, 634, 634,
+ 634, 634, 634, 636, 636, 636, 636, 636,
+ 636, 636, 636, 638, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 642, 644, 646, 648,
+ 650, 652, 654, 656, 658, 660, 662, 664,
+ 664, 664, 664, 664, 667, 669, 669, 671,
+ 674, 676, 676, 678, 681, 683, 683, 685,
+ 688, 691, 694, 694, 696, 698, 698, 701,
+ 701, 703, 705, 705, 708, 708, 710, 712,
+ 712, 715, 715, 717, 719, 722, 722, 722,
+ 722, 724, 726, 728, 730, 732, 734, 736,
+ 738, 740, 742, 744, 746, 748, 750, 752,
+ 754, 754, 756, 758, 760, 762, 764, 766,
+ 768, 770, 773, 775, 777, 780, 782, 784,
+ 786, 789, 791, 793, 795, 798, 800, 802,
+ 804, 807, 809, 812, 814, 816, 819, 822,
+ 825, 827, 830, 832, 834, 837, 840, 840,
+ 842, 844, 846, 848, 850, 852, 852, 855,
+ 858, 861, 861, 863, 865, 867, 869, 871,
+ 873, 875, 877, 879, 881, 881, 884, 887,
+ 890, 893, 896, 896, 898, 900, 902, 904,
+ 906, 908, 910, 913, 916, 919, 921, 921,
+ 921, 921, 921, 921, 923, 926, 926, 926,
+ 926, 926, 928, 930, 932, 934, 936, 938,
+ 938, 940, 943, 946, 949, 952, 952, 954,
+ 956, 958, 960, 960, 962, 965, 968, 971,
+ 971, 973, 975, 977, 979, 981, 983, 989,
+ 1000, 1002, 1005, 1011, 1014, 1025, 1028, 1031,
+ 1034, 1036, 1038, 1040, 1042, 1048, 1051, 1054,
+ 1056, 1058, 1060, 1062, 1068, 1071, 1074, 1076,
+ 1078, 1080, 1082, 1088, 1091, 1094, 1097, 1097,
+ 1099, 1101, 1103, 1105, 1107, 1109, 1111, 1113,
+ 1115, 1117, 1119, 1121, 1123, 1125, 1127, 1129,
+ 1131, 1134, 1137, 1140, 1143, 1146, 1149, 1152,
+ 1155, 1155, 1155, 1157, 1157, 1157, 1157, 1159,
+ 1159, 1161, 1161, 1161, 1163, 1163, 1163, 1163,
+ 1163, 1163, 1165, 1167, 1167, 1167, 1169, 1169,
+ 1169, 1169, 1171, 1171, 1171, 1171, 1173, 1173,
+ 1173, 1173, 1173, 1175, 1175, 1175, 1175, 1177,
+ 1177, 1177, 1177, 1179, 1181, 1181, 1181, 1181,
+ 1181, 1183, 1183, 1185, 1185, 1185, 1185, 1185,
+ 1187, 1187, 1187, 1187, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1191, 1191, 1191, 1193,
+ 1195, 1195, 1195, 1197, 1197, 1199, 1199, 1201,
+ 1203, 1203, 1203, 1203, 1203, 1205, 1207, 1207,
+ 1207, 1207, 1207, 1209, 1209, 1211, 1213, 1213,
+ 1215, 1217, 1217, 1217, 1217, 1217, 1219, 1219,
+ 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219,
+ 1221, 1221, 1221, 1223, 1223, 1225, 1225, 1225,
+ 1225, 1227, 1229, 1229, 1229, 1229, 1229, 1229,
+ 1231, 1231, 1233, 1233, 1235, 1235, 1237, 1237,
+ 1237, 1237, 1239, 1239, 1239, 1241, 1241, 1241,
+ 1241, 1243, 1243, 1245, 1245, 1245, 1245, 1247,
+ 1247, 1247, 1249, 1249, 1249, 1249, 1249, 1249,
+ 1251, 1251, 1251, 1251, 1251, 1251, 1253, 1253,
+ 1253, 1253, 1253, 1255, 1257, 1259, 1261, 1263,
+ 1265, 1267, 1270, 1273, 1276, 1276, 1278, 1278,
+ 1280, 1282, 1284, 1286, 1288, 1290, 1292, 1294,
+ 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
+ 1294, 1294, 1294, 1294, 1294, 1294, 1297, 1297,
+ 1299, 1302, 1305, 1308, 1308, 1310, 1312, 1314,
+ 1316, 1318, 1320, 1320, 1320, 1320, 1323, 1326,
+ 1329, 1329, 1331, 1333, 1335, 1337, 1339, 1341,
+ 1341, 1343, 1346, 1349, 1352, 1355, 1355, 1357,
+ 1359, 1359, 1359, 1362, 1362, 1364, 1366, 1368,
+ 1370, 1372, 1374, 1374, 1376, 1379, 1382, 1385,
+ 1388, 1388, 1390, 1392, 1392, 1395, 1395, 1397,
+ 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399,
+ 1399, 1399, 1402, 1402, 1402, 1402, 1402, 1402,
+ 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402,
+ 1404, 1406, 1408, 1410, 1410, 1413, 1416, 1416,
+ 1418, 1420, 1422, 1424, 1424, 1427, 1430, 1430,
+ 1432, 1434, 1434, 1434, 1437, 1439, 1441, 1443,
+ 1445, 1447, 1449, 1451, 1453, 1455, 1457, 1457,
+ 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1459,
+ 1459, 1461, 1464, 1464, 1466, 1469, 1469, 1471,
+ 1474, 1476, 1476, 1478, 1481, 1484, 1484, 1484,
+ 1486, 1489, 1489, 1489, 1489, 1489, 1489, 1489,
+ 1489, 1489, 1489, 1491, 1494, 1494, 1494, 1496,
+ 1499, 1501, 1504, 1506, 1509, 1511, 1514, 1514,
+ 1514, 1514, 1514, 1516, 1519, 1519, 1521, 1524,
+ 1524, 1526, 1529, 1529, 1535, 1538, 1549, 1552,
+ 1563, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
+ 1566, 1568, 1571, 1571, 1571, 1573, 1576, 1576,
+ 1576, 1576, 1576, 1576, 1576
};
static const char _zone_scanner_cond_lengths[] = {
@@ -1108,75 +1129,78 @@ static const char _zone_scanner_cond_lengths[] = {
2, 0, 2, 0, 0, 0, 2, 0,
0, 2, 0, 0, 0, 2, 0, 2,
0, 0, 0, 2, 0, 0, 2, 0,
- 0, 0, 0, 0, 2, 3, 2, 0,
- 2, 2, 2, 2, 0, 2, 3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 3, 2, 2, 3, 2, 0,
- 2, 3, 2, 2, 2, 2, 2, 3,
+ 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0, 2, 3, 2, 0, 2, 2,
+ 2, 2, 0, 2, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2, 2,
+ 3, 2, 2, 3, 2, 0, 2, 3,
+ 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, 3, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 2,
- 2, 3, 2, 2, 2, 2, 2, 2,
+ 2, 2, 3, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 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, 5, 5,
5, 5, 0, 0, 2, 0, 0, 0,
2, 0, 2, 3, 2, 2, 5, 5,
5, 5, 3, 2, 5, 5, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 3, 3,
- 2, 3, 2, 0, 0, 0, 0, 0,
+ 2, 2, 2, 2, 2, 2, 2, 3,
+ 3, 2, 3, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 1, 0, 0,
- 0, 0, 1, 2, 2, 2, 2, 0,
- 2, 0, 2, 3, 2, 2, 0, 2,
- 2, 0, 0, 0, 0, 0, 2, 3,
- 2, 2, 2, 2, 0, 2, 2, 0,
- 0, 0, 0, 0, 2, 3, 2, 3,
- 3, 0, 0, 0, 0, 2, 3, 0,
- 2, 2, 2, 0, 0, 2, 3, 0,
- 0, 2, 0, 0, 0, 0, 0, 2,
- 2, 0, 0, 2, 0, 0, 0, 2,
- 0, 0, 0, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0,
+ 0, 0, 0, 1, 2, 2, 2, 2,
+ 0, 2, 0, 2, 3, 2, 2, 0,
+ 2, 2, 0, 0, 0, 0, 0, 2,
+ 3, 2, 2, 2, 2, 0, 2, 2,
+ 0, 0, 0, 0, 0, 2, 3, 2,
+ 3, 3, 0, 0, 0, 0, 2, 3,
+ 0, 2, 2, 2, 0, 0, 2, 3,
+ 0, 0, 2, 0, 0, 0, 0, 0,
+ 2, 2, 0, 0, 2, 0, 0, 0,
2, 0, 0, 0, 2, 0, 0, 0,
- 2, 2, 0, 0, 0, 0, 2, 0,
- 2, 0, 0, 0, 0, 2, 0, 0,
- 0, 2, 0, 0, 0, 0, 0, 0,
- 0, 2, 0, 0, 2, 2, 0, 0,
- 2, 0, 2, 0, 2, 2, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 0,
- 2, 0, 2, 2, 0, 2, 2, 0,
- 0, 0, 0, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0,
- 2, 0, 2, 0, 0, 0, 2, 2,
- 0, 0, 0, 0, 0, 2, 0, 2,
+ 0, 2, 0, 0, 0, 2, 0, 0,
+ 0, 2, 2, 0, 0, 0, 0, 2,
+ 0, 2, 0, 0, 0, 0, 2, 0,
+ 0, 0, 2, 0, 0, 0, 0, 0,
+ 0, 0, 2, 0, 0, 2, 2, 0,
+ 0, 2, 0, 2, 0, 2, 2, 0,
+ 0, 0, 0, 2, 2, 0, 0, 0,
+ 0, 2, 0, 2, 2, 0, 2, 2,
+ 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2, 0,
0, 2, 0, 2, 0, 0, 0, 2,
- 0, 0, 2, 0, 0, 0, 2, 0,
- 2, 0, 0, 0, 2, 0, 0, 2,
- 0, 0, 0, 0, 0, 2, 0, 0,
- 0, 2, 0, 2, 2, 2, 2, 2,
- 0, 2, 3, 3, 3, 2, 2, 2,
- 2, 0, 2, 3, 3, 2, 3, 0,
+ 2, 0, 0, 0, 0, 0, 2, 0,
+ 2, 0, 2, 0, 2, 0, 0, 0,
+ 2, 0, 0, 2, 0, 0, 0, 2,
+ 0, 2, 0, 0, 0, 2, 0, 0,
+ 2, 0, 0, 0, 0, 0, 2, 0,
+ 0, 0, 0, 0, 2, 0, 0, 0,
+ 2, 0, 2, 2, 2, 2, 2, 0,
+ 2, 3, 3, 3, 2, 2, 2, 2,
+ 0, 2, 3, 3, 2, 3, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 2, 0, 0, 0,
- 0, 0, 2, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0,
- 0, 0, 2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2, 2,
+ 0, 0, 0, 0, 0, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2,
2, 0, 2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 0, 0, 0, 0, 0, 0,
+ 0, 2, 0, 0, 0, 0, 2, 0,
0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0,
+ 0, 0, 2, 0, 0, 0, 0, 0,
+ 0, 0, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
@@ -1193,56 +1217,59 @@ static const char _zone_scanner_cond_lengths[] = {
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, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 0, 0, 0,
- 0, 3, 2, 0, 2, 3, 2, 0,
- 2, 3, 2, 0, 2, 3, 3, 3,
- 0, 2, 2, 0, 3, 0, 2, 2,
- 0, 3, 0, 2, 2, 0, 3, 0,
- 2, 2, 3, 0, 0, 0, 2, 2,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 0,
+ 0, 0, 0, 3, 2, 0, 2, 3,
+ 2, 0, 2, 3, 2, 0, 2, 3,
+ 3, 3, 0, 2, 2, 0, 3, 0,
+ 2, 2, 0, 3, 0, 2, 2, 0,
+ 3, 0, 2, 2, 3, 0, 0, 0,
2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 0, 2,
- 2, 2, 2, 2, 2, 2, 2, 3,
- 2, 2, 3, 2, 2, 2, 3, 2,
- 2, 2, 3, 2, 2, 2, 3, 2,
- 3, 2, 2, 3, 3, 3, 2, 3,
- 2, 2, 3, 3, 0, 2, 2, 2,
- 2, 2, 2, 0, 3, 3, 3, 0,
2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 0, 3, 3, 3, 3, 3,
0, 2, 2, 2, 2, 2, 2, 2,
- 3, 3, 3, 2, 0, 0, 0, 0,
- 0, 2, 3, 0, 0, 0, 0, 2,
- 2, 2, 2, 2, 2, 0, 2, 3,
- 3, 3, 3, 0, 2, 2, 2, 2,
- 0, 2, 3, 3, 3, 0, 2, 2,
- 2, 2, 2, 2, 6, 11, 2, 3,
- 6, 3, 11, 3, 3, 3, 2, 2,
- 2, 2, 6, 3, 3, 2, 2, 2,
- 2, 6, 3, 3, 2, 2, 2, 2,
- 6, 3, 3, 3, 0, 2, 2, 2,
+ 2, 3, 2, 2, 3, 2, 2, 2,
+ 3, 2, 2, 2, 3, 2, 2, 2,
+ 3, 2, 3, 2, 2, 3, 3, 3,
+ 2, 3, 2, 2, 3, 3, 0, 2,
+ 2, 2, 2, 2, 2, 0, 3, 3,
+ 3, 0, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 0, 3, 3, 3,
+ 3, 3, 0, 2, 2, 2, 2, 2,
+ 2, 2, 3, 3, 3, 2, 0, 0,
+ 0, 0, 0, 2, 3, 0, 0, 0,
+ 0, 2, 2, 2, 2, 2, 2, 0,
+ 2, 3, 3, 3, 3, 0, 2, 2,
+ 2, 2, 0, 2, 3, 3, 3, 0,
+ 2, 2, 2, 2, 2, 2, 6, 11,
+ 2, 3, 6, 3, 11, 3, 3, 3,
+ 2, 2, 2, 2, 6, 3, 3, 2,
+ 2, 2, 2, 6, 3, 3, 2, 2,
+ 2, 2, 6, 3, 3, 3, 0, 2,
2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 3, 3,
- 3, 3, 3, 3, 3, 3, 0, 0,
- 2, 0, 0, 0, 2, 0, 2, 0,
- 0, 2, 0, 0, 0, 0, 0, 2,
- 2, 0, 0, 2, 0, 0, 0, 2,
- 0, 0, 0, 2, 0, 0, 0, 0,
- 2, 0, 0, 0, 2, 0, 0, 0,
- 2, 2, 0, 0, 0, 0, 2, 0,
- 2, 0, 0, 0, 0, 2, 0, 0,
- 0, 2, 0, 0, 0, 0, 0, 0,
- 0, 2, 0, 0, 2, 2, 0, 0,
- 2, 0, 2, 0, 2, 2, 0, 0,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 0, 0, 2, 0, 0, 0, 2, 0,
+ 2, 0, 0, 2, 0, 0, 0, 0,
+ 0, 2, 2, 0, 0, 2, 0, 0,
+ 0, 2, 0, 0, 0, 2, 0, 0,
+ 0, 0, 2, 0, 0, 0, 2, 0,
0, 0, 2, 2, 0, 0, 0, 0,
- 2, 0, 2, 2, 0, 2, 2, 0,
+ 2, 0, 2, 0, 0, 0, 0, 2,
0, 0, 0, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0,
- 2, 0, 2, 0, 0, 0, 2, 2,
- 0, 0, 0, 0, 0, 2, 0, 2,
- 0, 2, 0, 2, 0, 0, 0, 2,
- 0, 0, 2, 0, 0, 0, 2, 0,
- 2, 0, 0, 0, 2, 0, 0, 2,
+ 0, 0, 0, 2, 0, 0, 2, 2,
+ 0, 0, 2, 0, 2, 0, 2, 2,
+ 0, 0, 0, 0, 2, 2, 0, 0,
+ 0, 0, 2, 0, 2, 2, 0, 2,
+ 2, 0, 0, 0, 0, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2,
+ 0, 0, 2, 0, 2, 0, 0, 0,
+ 2, 2, 0, 0, 0, 0, 0, 2,
+ 0, 2, 0, 2, 0, 2, 0, 0,
+ 0, 2, 0, 0, 2, 0, 0, 0,
+ 2, 0, 2, 0, 0, 0, 2, 0,
+ 0, 2, 0, 0, 0, 0, 0, 2,
0, 0, 0, 0, 0, 2, 0, 0,
0, 0, 2, 2, 2, 2, 2, 2,
2, 3, 3, 3, 0, 2, 0, 2,
@@ -1310,20 +1337,21 @@ static const short _zone_scanner_cond_keys[] = {
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
- 10, 10, 59, 59, -128, 9, 10, 10,
- 11, 127, 10, 10, 59, 59, 10, 10,
- 59, 59, 10, 10, 59, 59, 10, 10,
- 59, 59, 10, 10, 59, 59, 10, 10,
- 59, 59, -128, 9, 10, 10, 11, 127,
10, 10, 59, 59, 10, 10, 59, 59,
-128, 9, 10, 10, 11, 127, 10, 10,
+ 59, 59, 10, 10, 59, 59, 10, 10,
+ 59, 59, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, -128, 9,
10, 10, 11, 127, 10, 10, 59, 59,
10, 10, 59, 59, -128, 9, 10, 10,
11, 127, 10, 10, 59, 59, 10, 10,
+ 59, 59, -128, 9, 10, 10, 11, 127,
+ 10, 10, 59, 59, 10, 10, 59, 59,
+ -128, 9, 10, 10, 11, 127, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
- 59, 59, 10, 10, 59, 59, -128, 9,
- 10, 10, 11, 127, 10, 10, 59, 59,
+ 59, 59, 10, 10, 59, 59, 10, 10,
+ 59, 59, -128, 9, 10, 10, 11, 127,
+ 10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
@@ -1346,24 +1374,25 @@ static const short _zone_scanner_cond_keys[] = {
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
- 10, 10, 59, 59, -128, 9, 10, 10,
- 11, 58, 59, 59, 60, 127, -128, 9,
- 10, 10, 11, 58, 59, 59, 60, 127,
- -128, 9, 10, 10, 11, 58, 59, 59,
- 60, 127, -128, 9, 10, 10, 11, 58,
- 59, 59, 60, 127, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
- -128, 9, 10, 10, 11, 127, 10, 10,
- 59, 59, 10, 10, 59, 59, -128, 9,
- 10, 10, 11, 58, 59, 59, 60, 127,
-128, 9, 10, 10, 11, 58, 59, 59,
60, 127, -128, 9, 10, 10, 11, 58,
59, 59, 60, 127, -128, 9, 10, 10,
11, 58, 59, 59, 60, 127, -128, 9,
- 10, 10, 11, 127, 10, 10, 59, 59,
+ 10, 10, 11, 58, 59, 59, 60, 127,
+ 10, 10, 59, 59, 10, 10, 59, 59,
+ 10, 10, 59, 59, -128, 9, 10, 10,
+ 11, 127, 10, 10, 59, 59, 10, 10,
+ 59, 59, -128, 9, 10, 10, 11, 58,
+ 59, 59, 60, 127, -128, 9, 10, 10,
+ 11, 58, 59, 59, 60, 127, -128, 9,
+ 10, 10, 11, 58, 59, 59, 60, 127,
-128, 9, 10, 10, 11, 58, 59, 59,
- 60, 127, -128, 9, 10, 10, 11, 58,
- 59, 59, 60, 127, 10, 10, 59, 59,
+ 60, 127, -128, 9, 10, 10, 11, 127,
+ 10, 10, 59, 59, -128, 9, 10, 10,
+ 11, 58, 59, 59, 60, 127, -128, 9,
+ 10, 10, 11, 58, 59, 59, 60, 127,
+ 10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
@@ -1418,17 +1447,17 @@ static const short _zone_scanner_cond_keys[] = {
59, 59, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
- 59, 59, 10, 10, 59, 59, -128, 9,
- 10, 10, 11, 127, -128, 9, 10, 10,
- 11, 127, -128, 9, 10, 10, 11, 127,
+ 59, 59, 10, 10, 59, 59, 10, 10,
+ 59, 59, -128, 9, 10, 10, 11, 127,
+ -128, 9, 10, 10, 11, 127, -128, 9,
+ 10, 10, 11, 127, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
- 10, 10, 59, 59, -128, 9, 10, 10,
- 11, 127, -128, 9, 10, 10, 11, 127,
- 10, 10, 59, 59, -128, 9, 10, 10,
- 11, 127, 10, 10, 59, 59, 10, 10,
- 59, 59, 10, 10, 59, 59, -128, 9,
+ -128, 9, 10, 10, 11, 127, -128, 9,
10, 10, 11, 127, 10, 10, 59, 59,
+ -128, 9, 10, 10, 11, 127, 10, 10,
+ 59, 59, 10, 10, 59, 59, 10, 10,
+ 59, 59, -128, 9, 10, 10, 11, 127,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
@@ -1439,14 +1468,7 @@ static const short _zone_scanner_cond_keys[] = {
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
- 10, 10, 59, 59, -128, 9, 10, 10,
- 11, 127, 10, 10, 59, 59, 10, 10,
- 59, 59, -128, 9, 10, 10, 11, 127,
10, 10, 59, 59, 10, 10, 59, 59,
- -128, 9, 10, 10, 11, 127, 10, 10,
- 59, 59, 10, 10, 59, 59, -128, 9,
- 10, 10, 11, 127, -128, 9, 10, 10,
- 11, 127, -128, 9, 10, 10, 11, 127,
10, 10, 59, 59, 10, 10, 59, 59,
-128, 9, 10, 10, 11, 127, 10, 10,
59, 59, 10, 10, 59, 59, -128, 9,
@@ -1454,7 +1476,15 @@ static const short _zone_scanner_cond_keys[] = {
10, 10, 59, 59, -128, 9, 10, 10,
11, 127, 10, 10, 59, 59, 10, 10,
59, 59, -128, 9, 10, 10, 11, 127,
+ -128, 9, 10, 10, 11, 127, -128, 9,
+ 10, 10, 11, 127, 10, 10, 59, 59,
+ 10, 10, 59, 59, -128, 9, 10, 10,
+ 11, 127, 10, 10, 59, 59, 10, 10,
+ 59, 59, -128, 9, 10, 10, 11, 127,
10, 10, 59, 59, 10, 10, 59, 59,
+ -128, 9, 10, 10, 11, 127, 10, 10,
+ 59, 59, 10, 10, 59, 59, -128, 9,
+ 10, 10, 11, 127, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
@@ -1466,89 +1496,89 @@ static const short _zone_scanner_cond_keys[] = {
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
- -128, 9, 10, 10, 11, 127, 10, 10,
+ 10, 10, 59, 59, -128, 9, 10, 10,
+ 11, 127, 10, 10, 59, 59, 10, 10,
+ 59, 59, -128, 9, 10, 10, 11, 127,
+ 10, 10, 59, 59, 10, 10, 59, 59,
+ 10, 10, 59, 59, -128, 9, 10, 10,
+ 11, 127, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, -128, 9,
10, 10, 11, 127, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
-128, 9, 10, 10, 11, 127, 10, 10,
- 59, 59, 10, 10, 59, 59, 10, 10,
59, 59, -128, 9, 10, 10, 11, 127,
10, 10, 59, 59, 10, 10, 59, 59,
- 10, 10, 59, 59, -128, 9, 10, 10,
+ -128, 9, 10, 10, 11, 127, -128, 9,
+ 10, 10, 11, 127, -128, 9, 10, 10,
11, 127, 10, 10, 59, 59, -128, 9,
10, 10, 11, 127, 10, 10, 59, 59,
10, 10, 59, 59, -128, 9, 10, 10,
11, 127, -128, 9, 10, 10, 11, 127,
- -128, 9, 10, 10, 11, 127, 10, 10,
- 59, 59, -128, 9, 10, 10, 11, 127,
10, 10, 59, 59, 10, 10, 59, 59,
- -128, 9, 10, 10, 11, 127, -128, 9,
- 10, 10, 11, 127, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
- 10, 10, 59, 59, -128, 9, 10, 10,
- 11, 127, -128, 9, 10, 10, 11, 127,
- -128, 9, 10, 10, 11, 127, 10, 10,
+ -128, 9, 10, 10, 11, 127, -128, 9,
+ 10, 10, 11, 127, -128, 9, 10, 10,
+ 11, 127, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
- 59, 59, 10, 10, 59, 59, -128, 9,
- 10, 10, 11, 127, -128, 9, 10, 10,
- 11, 127, -128, 9, 10, 10, 11, 127,
- -128, 9, 10, 10, 11, 127, -128, 9,
- 10, 10, 11, 127, 10, 10, 59, 59,
- 10, 10, 59, 59, 10, 10, 59, 59,
- 10, 10, 59, 59, 10, 10, 59, 59,
- 10, 10, 59, 59, 10, 10, 59, 59,
+ 59, 59, -128, 9, 10, 10, 11, 127,
-128, 9, 10, 10, 11, 127, -128, 9,
10, 10, 11, 127, -128, 9, 10, 10,
- 11, 127, 10, 10, 59, 59, 10, 10,
- 59, 59, -128, 9, 10, 10, 11, 127,
+ 11, 127, -128, 9, 10, 10, 11, 127,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, -128, 9, 10, 10,
11, 127, -128, 9, 10, 10, 11, 127,
- -128, 9, 10, 10, 11, 127, -128, 9,
+ -128, 9, 10, 10, 11, 127, 10, 10,
+ 59, 59, 10, 10, 59, 59, -128, 9,
10, 10, 11, 127, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
+ 10, 10, 59, 59, 10, 10, 59, 59,
-128, 9, 10, 10, 11, 127, -128, 9,
10, 10, 11, 127, -128, 9, 10, 10,
- 11, 127, 10, 10, 59, 59, 10, 10,
- 59, 59, 10, 10, 59, 59, 10, 10,
- 59, 59, 10, 10, 59, 59, 10, 10,
- 59, 59, 9, 9, 10, 10, 32, 32,
- 40, 40, 41, 41, 59, 59, 9, 9,
- 10, 10, 32, 32, 40, 40, 41, 41,
- 43, 43, 47, 47, 48, 57, 59, 59,
- 65, 90, 97, 122, 10, 10, 59, 59,
- -128, 9, 10, 10, 11, 127, 9, 9,
- 10, 10, 32, 32, 40, 40, 41, 41,
- 59, 59, -128, 9, 10, 10, 11, 127,
- 9, 9, 10, 10, 32, 32, 40, 40,
- 41, 41, 43, 43, 47, 47, 48, 57,
- 59, 59, 65, 90, 97, 122, -128, 9,
- 10, 10, 11, 127, -128, 9, 10, 10,
11, 127, -128, 9, 10, 10, 11, 127,
10, 10, 59, 59, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
- 9, 9, 10, 10, 32, 32, 40, 40,
- 41, 41, 59, 59, -128, 9, 10, 10,
+ 10, 10, 59, 59, -128, 9, 10, 10,
11, 127, -128, 9, 10, 10, 11, 127,
+ -128, 9, 10, 10, 11, 127, 10, 10,
+ 59, 59, 10, 10, 59, 59, 10, 10,
+ 59, 59, 10, 10, 59, 59, 10, 10,
+ 59, 59, 10, 10, 59, 59, 9, 9,
+ 10, 10, 32, 32, 40, 40, 41, 41,
+ 59, 59, 9, 9, 10, 10, 32, 32,
+ 40, 40, 41, 41, 43, 43, 47, 47,
+ 48, 57, 59, 59, 65, 90, 97, 122,
+ 10, 10, 59, 59, -128, 9, 10, 10,
+ 11, 127, 9, 9, 10, 10, 32, 32,
+ 40, 40, 41, 41, 59, 59, -128, 9,
+ 10, 10, 11, 127, 9, 9, 10, 10,
+ 32, 32, 40, 40, 41, 41, 43, 43,
+ 47, 47, 48, 57, 59, 59, 65, 90,
+ 97, 122, -128, 9, 10, 10, 11, 127,
+ -128, 9, 10, 10, 11, 127, -128, 9,
+ 10, 10, 11, 127, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
+ 10, 10, 59, 59, 9, 9, 10, 10,
+ 32, 32, 40, 40, 41, 41, 59, 59,
+ -128, 9, 10, 10, 11, 127, -128, 9,
+ 10, 10, 11, 127, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
- 9, 9, 10, 10, 32, 32, 40, 40,
- 41, 41, 59, 59, -128, 9, 10, 10,
- 11, 127, -128, 9, 10, 10, 11, 127,
- 10, 10, 59, 59, 10, 10, 59, 59,
+ 10, 10, 59, 59, 9, 9, 10, 10,
+ 32, 32, 40, 40, 41, 41, 59, 59,
+ -128, 9, 10, 10, 11, 127, -128, 9,
+ 10, 10, 11, 127, 10, 10, 59, 59,
10, 10, 59, 59, 10, 10, 59, 59,
- 9, 9, 10, 10, 32, 32, 40, 40,
- 41, 41, 59, 59, -128, 9, 10, 10,
- 11, 127, -128, 9, 10, 10, 11, 127,
- -128, 9, 10, 10, 11, 127, 10, 10,
- 59, 59, 10, 10, 59, 59, 10, 10,
+ 10, 10, 59, 59, 9, 9, 10, 10,
+ 32, 32, 40, 40, 41, 41, 59, 59,
+ -128, 9, 10, 10, 11, 127, -128, 9,
+ 10, 10, 11, 127, -128, 9, 10, 10,
+ 11, 127, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
@@ -1556,13 +1586,14 @@ static const short _zone_scanner_cond_keys[] = {
59, 59, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
- 59, 59, -128, 9, 10, 10, 11, 127,
- -128, 9, 10, 10, 11, 127, -128, 9,
+ 59, 59, 10, 10, 59, 59, -128, 9,
10, 10, 11, 127, -128, 9, 10, 10,
11, 127, -128, 9, 10, 10, 11, 127,
-128, 9, 10, 10, 11, 127, -128, 9,
10, 10, 11, 127, -128, 9, 10, 10,
- 11, 127, 10, 10, 59, 59, 10, 10,
+ 11, 127, -128, 9, 10, 10, 11, 127,
+ -128, 9, 10, 10, 11, 127, 10, 10,
+ 59, 59, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
59, 59, 10, 10, 59, 59, 10, 10,
@@ -1687,32 +1718,33 @@ static const char _zone_scanner_cond_spaces[] = {
7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 0, 0,
+ 7, 7, 7, 7, 7, 7, 7, 7,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 7, 7, 7,
- 7, 7, 7, 7, 7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 7,
+ 0, 0, 0, 0, 0, 0, 0, 7,
+ 7, 7, 7, 7, 7, 7, 7, 0,
0, 0, 0, 0, 0, 0, 0, 0,
+ 7, 7, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 7,
- 7, 7, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 7, 7, 7, 7, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7, 7, 7, 7, 7, 7,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
+ 7, 7, 7, 7, 7, 7, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 7,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7, 7, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
@@ -1740,16 +1772,16 @@ static const char _zone_scanner_cond_spaces[] = {
7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 0, 0, 0,
- 0, 0, 0, 0, 0, 7, 7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
+ 7, 7, 7, 7, 7, 7, 7, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7,
+ 7, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 7, 7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 7, 7, 7,
- 7, 7, 7, 0, 0, 0, 7, 7,
+ 0, 0, 7, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7,
+ 7, 7, 7, 7, 7, 0, 0, 0,
+ 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
@@ -1758,19 +1790,19 @@ static const char _zone_scanner_cond_spaces[] = {
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, 7, 7, 7,
- 7, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7, 7, 7, 7, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 7, 7, 7, 7,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 0, 0, 0, 7,
+ 7, 7, 0, 0, 0, 7, 7, 7,
+ 7, 0, 0, 0, 7, 7, 7, 7,
+ 7, 7, 0, 0, 0, 7, 7, 7,
7, 7, 7, 0, 0, 0, 7, 7,
- 7, 7, 7, 7, 0, 0, 0, 7,
- 7, 7, 7, 7, 7, 0, 0, 0,
- 7, 7, 7, 7, 7, 7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
+ 7, 7, 7, 7, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
@@ -1782,35 +1814,36 @@ static const char _zone_scanner_cond_spaces[] = {
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, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 7, 7, 7, 7, 0, 0, 0,
+ 0, 0, 0, 0, 1, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7,
+ 7, 7, 7, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 7, 7, 0, 0,
+ 0, 0, 7, 7, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7, 7, 0, 0, 0, 0,
+ 7, 7, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 10,
+ 13, 10, 10, 10, 13, 5, 8, 5,
+ 5, 5, 5, 5, 5, 8, 5, 5,
+ 1, 1, 8, 8, 8, 6, 11, 6,
+ 6, 6, 11, 9, 9, 9, 10, 13,
+ 10, 10, 10, 5, 5, 5, 13, 5,
+ 5, 12, 12, 12, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 10, 13, 10, 10, 10, 13, 5,
- 8, 5, 5, 5, 5, 5, 5, 8,
- 5, 5, 1, 1, 8, 8, 8, 6,
- 11, 6, 6, 6, 11, 9, 9, 9,
- 10, 13, 10, 10, 10, 5, 5, 5,
- 13, 5, 5, 12, 12, 12, 0, 0,
+ 0, 0, 10, 13, 10, 10, 10, 13,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 10, 13, 10, 10,
- 10, 13, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 10, 13,
+ 10, 10, 10, 13, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 10, 13, 10, 10, 10, 13, 0, 0,
+ 0, 0, 10, 13, 10, 10, 10, 13,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 10, 13, 10, 10,
- 10, 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, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 1, 0, 0, 0,
+ 0, 1, 1, 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,
@@ -1870,236 +1903,243 @@ static const char _zone_scanner_cond_spaces[] = {
};
static const short _zone_scanner_key_offsets[] = {
- 0, 0, 44, 62, 102, 118, 135, 143,
- 151, 152, 153, 156, 175, 194, 200, 256,
- 276, 318, 328, 330, 340, 354, 368, 372,
- 374, 376, 378, 380, 390, 400, 402, 404,
- 414, 416, 418, 420, 430, 432, 434, 436,
- 446, 452, 454, 456, 458, 468, 472, 474,
- 476, 486, 488, 490, 492, 502, 512, 514,
- 516, 518, 519, 529, 530, 540, 544, 546,
- 548, 550, 560, 562, 564, 566, 576, 580,
- 586, 626, 628, 630, 632, 634, 636, 638,
- 640, 650, 654, 656, 666, 676, 682, 683,
- 693, 694, 704, 706, 716, 726, 730, 732,
- 734, 736, 746, 756, 762, 764, 766, 768,
- 778, 780, 790, 802, 804, 815, 827, 829,
- 831, 833, 835, 845, 847, 849, 851, 853,
- 855, 857, 859, 861, 863, 873, 875, 877,
- 887, 893, 903, 905, 907, 909, 919, 929,
- 941, 943, 945, 947, 949, 959, 961, 971,
- 973, 983, 985, 995, 997, 999, 1001, 1011,
- 1013, 1015, 1025, 1031, 1033, 1035, 1045, 1047,
- 1057, 1059, 1061, 1063, 1075, 1077, 1079, 1089,
- 1091, 1093, 1095, 1097, 1099, 1109, 1112, 1156,
- 1160, 1166, 1208, 1226, 1234, 1246, 1254, 1257,
- 1258, 1264, 1266, 1268, 1270, 1272, 1274, 1276,
- 1282, 1288, 1330, 1333, 1351, 1393, 1396, 1404,
- 1416, 1424, 1427, 1443, 1497, 1515, 1534, 1578,
- 1584, 1598, 1612, 1668, 1686, 1700, 1710, 1722,
- 1734, 1746, 1760, 1772, 1786, 1796, 1806, 1820,
- 1840, 1854, 1864, 1874, 1880, 1894, 1896, 1898,
- 1900, 1902, 1904, 1910, 1912, 1914, 1920, 1928,
- 1948, 1992, 1998, 2016, 2072, 2090, 2104, 2114,
- 2126, 2138, 2150, 2164, 2176, 2190, 2200, 2210,
- 2224, 2244, 2258, 2268, 2278, 2293, 2337, 2351,
- 2365, 2381, 2397, 2399, 2401, 2411, 2413, 2415,
- 2417, 2427, 2429, 2439, 2445, 2459, 2473, 2489,
- 2505, 2521, 2537, 2540, 2596, 2610, 2624, 2640,
- 2652, 2660, 2670, 2680, 2690, 2702, 2712, 2724,
- 2732, 2740, 2752, 2770, 2782, 2790, 2798, 2804,
- 2810, 2820, 2826, 2835, 2836, 2837, 2848, 2864,
- 2880, 2882, 2884, 2886, 2902, 2908, 2914, 2920,
- 2932, 2938, 2940, 2942, 2954, 2962, 2970, 2976,
- 2982, 2984, 2986, 2994, 3000, 3008, 3028, 3036,
- 3037, 3047, 3059, 3069, 3072, 3078, 3094, 3104,
- 3122, 3130, 3131, 3133, 3135, 3137, 3147, 3155,
- 3158, 3164, 3176, 3184, 3202, 3212, 3230, 3238,
- 3239, 3241, 3243, 3245, 3255, 3263, 3269, 3285,
- 3288, 3291, 3298, 3305, 3313, 3321, 3338, 3341,
- 3342, 3352, 3396, 3412, 3414, 3416, 3426, 3429,
- 3439, 3441, 3451, 3455, 3457, 3459, 3461, 3463,
- 3473, 3483, 3485, 3487, 3497, 3499, 3501, 3503,
- 3513, 3515, 3517, 3519, 3529, 3535, 3537, 3539,
- 3541, 3551, 3555, 3557, 3559, 3569, 3571, 3573,
- 3575, 3585, 3595, 3597, 3599, 3601, 3602, 3612,
- 3613, 3623, 3627, 3629, 3631, 3633, 3643, 3645,
- 3647, 3649, 3659, 3661, 3663, 3665, 3667, 3669,
- 3671, 3673, 3683, 3687, 3689, 3699, 3709, 3715,
- 3716, 3726, 3727, 3737, 3739, 3749, 3759, 3763,
- 3765, 3767, 3769, 3779, 3789, 3795, 3797, 3799,
- 3801, 3811, 3813, 3823, 3835, 3837, 3848, 3860,
- 3862, 3864, 3866, 3868, 3878, 3880, 3882, 3884,
- 3886, 3888, 3890, 3892, 3894, 3896, 3906, 3908,
- 3910, 3920, 3926, 3936, 3938, 3940, 3942, 3952,
- 3962, 3974, 3976, 3978, 3980, 3982, 3992, 3994,
- 4004, 4006, 4016, 4018, 4028, 4030, 4032, 4034,
- 4044, 4046, 4048, 4058, 4064, 4066, 4068, 4078,
- 4080, 4090, 4092, 4094, 4096, 4108, 4110, 4112,
- 4122, 4124, 4126, 4128, 4130, 4132, 4142, 4144,
- 4146, 4148, 4158, 4160, 4170, 4176, 4184, 4192,
- 4204, 4210, 4226, 4229, 4232, 4235, 4241, 4250,
- 4260, 4272, 4278, 4294, 4297, 4300, 4308, 4311,
- 4317, 4318, 4319, 4320, 4328, 4329, 4330, 4338,
- 4339, 4340, 4342, 4343, 4344, 4345, 4346, 4354,
- 4355, 4356, 4357, 4358, 4366, 4367, 4368, 4370,
- 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387,
- 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4402,
- 4403, 4404, 4405, 4413, 4423, 4440, 4441, 4442,
- 4443, 4444, 4451, 4461, 4464, 4465, 4466, 4467,
- 4475, 4482, 4489, 4497, 4505, 4513, 4523, 4524,
- 4531, 4539, 4547, 4564, 4565, 4566, 4567, 4569,
- 4570, 4571, 4572, 4573, 4574, 4578, 4581, 4586,
- 4589, 4603, 4606, 4607, 4608, 4609, 4610, 4611,
- 4619, 4626, 4635, 4642, 4660, 4667, 4668, 4669,
- 4671, 4684, 4690, 4700, 4701, 4702, 4703, 4704,
- 4705, 4706, 4707, 4708, 4709, 4714, 4718, 4720,
- 4724, 4735, 4739, 4740, 4741, 4742, 4743, 4744,
- 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752,
- 4753, 4763, 4764, 4765, 4766, 4767, 4770, 4772,
- 4775, 4787, 4803, 4804, 4816, 4824, 4828, 4834,
- 4836, 4843, 4845, 4847, 4849, 4851, 4852, 4853,
- 4855, 4857, 4859, 4860, 4866, 4870, 4874, 4875,
- 4877, 4879, 4881, 4883, 4889, 4891, 4893, 4895,
- 4897, 4898, 4899, 4901, 4903, 4905, 4906, 4907,
- 4908, 4914, 4915, 4916, 4918, 4920, 4922, 4923,
- 4924, 4925, 4931, 4933, 4934, 4935, 4936, 4937,
- 4943, 4944, 4945, 4951, 4953, 4955, 4957, 4959,
- 4961, 4963, 4965, 4971, 4973, 4975, 4977, 4979,
- 4981, 4983, 4987, 4989, 4991, 4997, 4999, 5001,
- 5007, 5009, 5011, 5015, 5017, 5018, 5024, 5026,
- 5028, 5031, 5038, 5040, 5042, 5044, 5046, 5047,
- 5048, 5050, 5052, 5054, 5055, 5061, 5062, 5063,
- 5069, 5070, 5071, 5077, 5091, 5099, 5101, 5103,
- 5105, 5107, 5109, 5115, 5121, 5123, 5125, 5127,
- 5129, 5131, 5137, 5141, 5143, 5149, 5151, 5153,
- 5159, 5161, 5163, 5165, 5171, 5173, 5175, 5181,
- 5185, 5187, 5193, 5195, 5197, 5203, 5205, 5207,
- 5209, 5215, 5217, 5219, 5225, 5228, 5237, 5246,
- 5252, 5261, 5267, 5282, 5288, 5296, 5304, 5312,
- 5330, 5338, 5356, 5364, 5382, 5390, 5408, 5416,
- 5428, 5436, 5439, 5447, 5459, 5467, 5470, 5478,
- 5490, 5498, 5501, 5509, 5521, 5529, 5532, 5535,
- 5538, 5544, 5550, 5562, 5568, 5571, 5580, 5586,
- 5601, 5607, 5610, 5612, 5620, 5635, 5641, 5644,
- 5650, 5660, 5676, 5679, 5686, 5699, 5701, 5709,
- 5719, 5727, 5737, 5746, 5754, 5760, 5768, 5776,
- 5786, 5794, 5804, 5813, 5821, 5827, 5836, 5838,
- 5852, 5864, 5878, 5890, 5904, 5916, 5930, 5940,
- 5943, 5956, 5969, 5972, 5985, 5998, 6008, 6011,
- 6024, 6037, 6047, 6050, 6063, 6076, 6086, 6089,
- 6095, 6098, 6106, 6114, 6117, 6120, 6123, 6129,
- 6132, 6140, 6148, 6151, 6154, 6156, 6164, 6172,
- 6180, 6188, 6196, 6211, 6217, 6220, 6223, 6226,
- 6228, 6236, 6244, 6252, 6264, 6270, 6282, 6288,
- 6300, 6306, 6321, 6327, 6330, 6333, 6336, 6339,
- 6342, 6348, 6354, 6362, 6370, 6382, 6388, 6401,
- 6403, 6406, 6409, 6412, 6425, 6427, 6428, 6431,
- 6434, 6436, 6448, 6451, 6452, 6459, 6466, 6468,
- 6476, 6488, 6494, 6502, 6510, 6522, 6528, 6544,
- 6547, 6550, 6553, 6556, 6558, 6566, 6574, 6582,
- 6594, 6600, 6616, 6619, 6622, 6625, 6627, 6635,
- 6645, 6651, 6659, 6667, 6674, 6708, 6721, 6723,
- 6726, 6740, 6743, 6784, 6793, 6796, 6799, 6805,
- 6813, 6821, 6830, 6867, 6870, 6873, 6879, 6887,
- 6895, 6908, 6949, 6952, 6955, 6961, 6969, 6977,
- 6992, 7026, 7029, 7032, 7035, 7069, 7081, 7093,
- 7099, 7107, 7115, 7123, 7131, 7139, 7147, 7155,
- 7163, 7171, 7179, 7194, 7200, 7213, 7215, 7218,
- 7221, 7224, 7227, 7230, 7233, 7236, 7239, 7241,
- 7243, 7249, 7251, 7253, 7255, 7261, 7263, 7269,
- 7279, 7281, 7287, 7291, 7293, 7295, 7297, 7299,
- 7305, 7311, 7313, 7315, 7321, 7323, 7325, 7327,
- 7333, 7335, 7337, 7339, 7345, 7351, 7353, 7355,
- 7357, 7363, 7367, 7369, 7371, 7377, 7379, 7381,
- 7383, 7389, 7395, 7397, 7399, 7401, 7402, 7408,
- 7409, 7415, 7419, 7421, 7423, 7425, 7431, 7433,
- 7435, 7437, 7443, 7445, 7447, 7449, 7451, 7453,
- 7455, 7457, 7463, 7467, 7469, 7475, 7481, 7487,
- 7488, 7494, 7495, 7501, 7503, 7509, 7515, 7519,
- 7521, 7523, 7525, 7531, 7537, 7543, 7545, 7547,
- 7549, 7555, 7557, 7563, 7571, 7573, 7580, 7588,
- 7590, 7592, 7594, 7596, 7602, 7604, 7606, 7608,
- 7610, 7612, 7614, 7616, 7618, 7620, 7626, 7628,
- 7630, 7636, 7642, 7648, 7650, 7652, 7654, 7660,
- 7666, 7678, 7680, 7682, 7684, 7686, 7692, 7694,
- 7700, 7702, 7708, 7710, 7716, 7718, 7720, 7722,
- 7728, 7730, 7732, 7738, 7744, 7746, 7748, 7754,
- 7756, 7762, 7764, 7766, 7768, 7776, 7778, 7780,
- 7786, 7788, 7790, 7792, 7794, 7796, 7802, 7811,
- 7817, 7823, 7825, 7833, 7841, 7849, 7861, 7867,
- 7880, 7882, 7885, 7888, 7891, 7898, 7900, 7902,
- 7910, 7918, 7926, 7934, 7942, 7955, 7961, 7973,
- 7979, 7986, 7992, 7999, 8006, 8012, 8019, 8031,
- 8037, 8038, 8039, 8040, 8041, 8042, 8045, 8051,
- 8063, 8066, 8069, 8072, 8074, 8082, 8090, 8098,
- 8106, 8114, 8127, 8133, 8139, 8151, 8154, 8157,
- 8160, 8162, 8170, 8178, 8186, 8194, 8202, 8214,
- 8220, 8236, 8239, 8242, 8245, 8248, 8250, 8258,
- 8266, 8274, 8280, 8283, 8285, 8293, 8301, 8309,
- 8317, 8325, 8337, 8343, 8359, 8362, 8365, 8368,
- 8371, 8373, 8381, 8390, 8399, 8402, 8404, 8412,
- 8424, 8430, 8436, 8442, 8443, 8449, 8455, 8461,
- 8467, 8474, 8477, 8483, 8489, 8490, 8496, 8502,
- 8509, 8515, 8521, 8522, 8528, 8534, 8541, 8543,
- 8551, 8559, 8567, 8579, 8585, 8588, 8591, 8593,
- 8601, 8613, 8619, 8631, 8637, 8640, 8643, 8645,
- 8653, 8668, 8674, 8680, 8683, 8701, 8734, 8786,
- 8840, 8858, 8912, 8930, 8963, 9032, 9101, 9101,
- 9101, 9101, 9101, 9113, 9113, 9113, 9113, 9129,
- 9129, 9146, 9149, 9149, 9193, 9196, 9196, 9212,
- 9215, 9227, 9227, 9243, 9246, 9249, 9249, 9249,
- 9266, 9269, 9269, 9269, 9269, 9269, 9269, 9269,
- 9269, 9269, 9269, 9285, 9288, 9288, 9288, 9298,
- 9301, 9313, 9316, 9328, 9331, 9343, 9346, 9346,
- 9346, 9346, 9346, 9359, 9362, 9362, 9378, 9381,
- 9381, 9397, 9400, 9400, 9414, 9417, 9430, 9433,
- 9474, 9483, 9483, 9483, 9483, 9483, 9483, 9483,
- 9483, 9499, 9502, 9502, 9502, 9518, 9521, 9521,
- 9521, 9521, 9521, 9521, 9521
+ 0, 0, 46, 64, 106, 122, 139, 147,
+ 155, 156, 157, 160, 179, 198, 204, 262,
+ 282, 326, 336, 338, 348, 362, 376, 380,
+ 382, 384, 386, 388, 398, 408, 410, 412,
+ 422, 424, 426, 428, 438, 440, 442, 444,
+ 454, 460, 462, 464, 466, 476, 480, 482,
+ 484, 494, 496, 498, 500, 510, 520, 522,
+ 524, 526, 527, 537, 538, 548, 552, 554,
+ 556, 558, 568, 570, 572, 574, 584, 588,
+ 594, 636, 638, 640, 642, 644, 646, 648,
+ 650, 660, 664, 666, 676, 686, 692, 693,
+ 703, 704, 714, 716, 726, 736, 740, 742,
+ 744, 746, 756, 766, 772, 774, 776, 778,
+ 788, 790, 800, 812, 814, 825, 837, 839,
+ 841, 843, 845, 855, 857, 859, 861, 863,
+ 865, 867, 869, 871, 873, 883, 885, 887,
+ 897, 903, 913, 915, 917, 919, 929, 939,
+ 951, 953, 955, 957, 959, 969, 971, 981,
+ 983, 993, 995, 1005, 1007, 1009, 1011, 1021,
+ 1023, 1025, 1035, 1041, 1043, 1045, 1055, 1057,
+ 1067, 1069, 1071, 1073, 1085, 1087, 1089, 1099,
+ 1101, 1103, 1105, 1107, 1109, 1119, 1121, 1123,
+ 1125, 1127, 1129, 1139, 1142, 1188, 1192, 1198,
+ 1242, 1260, 1268, 1280, 1288, 1291, 1292, 1298,
+ 1300, 1302, 1304, 1306, 1308, 1310, 1316, 1322,
+ 1366, 1369, 1387, 1431, 1434, 1442, 1454, 1462,
+ 1465, 1481, 1537, 1555, 1574, 1620, 1626, 1640,
+ 1654, 1712, 1730, 1744, 1754, 1766, 1778, 1790,
+ 1804, 1816, 1830, 1840, 1850, 1864, 1884, 1898,
+ 1908, 1918, 1928, 1934, 1948, 1950, 1952, 1954,
+ 1956, 1958, 1964, 1966, 1968, 1974, 1982, 2002,
+ 2048, 2054, 2072, 2130, 2148, 2162, 2172, 2184,
+ 2196, 2208, 2222, 2234, 2248, 2258, 2268, 2282,
+ 2302, 2316, 2326, 2336, 2346, 2361, 2407, 2421,
+ 2435, 2451, 2467, 2469, 2471, 2481, 2483, 2485,
+ 2487, 2497, 2499, 2509, 2515, 2529, 2543, 2559,
+ 2575, 2591, 2607, 2610, 2668, 2682, 2696, 2712,
+ 2724, 2732, 2742, 2752, 2762, 2774, 2784, 2796,
+ 2804, 2812, 2824, 2842, 2854, 2862, 2870, 2878,
+ 2884, 2890, 2900, 2906, 2915, 2916, 2917, 2928,
+ 2944, 2960, 2962, 2964, 2966, 2982, 2988, 2994,
+ 3000, 3012, 3018, 3020, 3022, 3034, 3042, 3050,
+ 3056, 3062, 3064, 3066, 3074, 3080, 3088, 3108,
+ 3116, 3117, 3127, 3139, 3149, 3152, 3158, 3174,
+ 3184, 3202, 3210, 3211, 3213, 3215, 3217, 3227,
+ 3235, 3238, 3244, 3256, 3264, 3282, 3292, 3310,
+ 3318, 3319, 3321, 3323, 3325, 3335, 3343, 3349,
+ 3365, 3368, 3371, 3378, 3385, 3393, 3401, 3418,
+ 3421, 3422, 3432, 3478, 3494, 3496, 3498, 3508,
+ 3511, 3521, 3523, 3533, 3537, 3539, 3541, 3543,
+ 3545, 3555, 3565, 3567, 3569, 3579, 3581, 3583,
+ 3585, 3595, 3597, 3599, 3601, 3611, 3617, 3619,
+ 3621, 3623, 3633, 3637, 3639, 3641, 3651, 3653,
+ 3655, 3657, 3667, 3677, 3679, 3681, 3683, 3684,
+ 3694, 3695, 3705, 3709, 3711, 3713, 3715, 3725,
+ 3727, 3729, 3731, 3741, 3743, 3745, 3747, 3749,
+ 3751, 3753, 3755, 3765, 3769, 3771, 3781, 3791,
+ 3797, 3798, 3808, 3809, 3819, 3821, 3831, 3841,
+ 3845, 3847, 3849, 3851, 3861, 3871, 3877, 3879,
+ 3881, 3883, 3893, 3895, 3905, 3917, 3919, 3930,
+ 3942, 3944, 3946, 3948, 3950, 3960, 3962, 3964,
+ 3966, 3968, 3970, 3972, 3974, 3976, 3978, 3988,
+ 3990, 3992, 4002, 4008, 4018, 4020, 4022, 4024,
+ 4034, 4044, 4056, 4058, 4060, 4062, 4064, 4074,
+ 4076, 4086, 4088, 4098, 4100, 4110, 4112, 4114,
+ 4116, 4126, 4128, 4130, 4140, 4146, 4148, 4150,
+ 4160, 4162, 4172, 4174, 4176, 4178, 4190, 4192,
+ 4194, 4204, 4206, 4208, 4210, 4212, 4214, 4224,
+ 4226, 4228, 4230, 4232, 4234, 4244, 4246, 4248,
+ 4250, 4260, 4262, 4272, 4278, 4286, 4294, 4306,
+ 4312, 4328, 4331, 4334, 4337, 4343, 4352, 4362,
+ 4374, 4380, 4396, 4399, 4402, 4410, 4413, 4421,
+ 4422, 4423, 4424, 4432, 4433, 4434, 4435, 4436,
+ 4437, 4438, 4446, 4447, 4448, 4456, 4457, 4458,
+ 4460, 4461, 4462, 4463, 4464, 4472, 4473, 4474,
+ 4475, 4476, 4484, 4485, 4486, 4488, 4498, 4499,
+ 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507,
+ 4508, 4509, 4510, 4511, 4512, 4520, 4521, 4522,
+ 4523, 4524, 4532, 4533, 4534, 4535, 4543, 4553,
+ 4572, 4573, 4574, 4575, 4576, 4583, 4593, 4596,
+ 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4610,
+ 4620, 4636, 4637, 4647, 4648, 4649, 4650, 4658,
+ 4665, 4672, 4680, 4688, 4696, 4697, 4704, 4712,
+ 4720, 4737, 4738, 4739, 4740, 4742, 4743, 4744,
+ 4745, 4746, 4747, 4751, 4754, 4759, 4762, 4776,
+ 4779, 4780, 4781, 4782, 4783, 4784, 4792, 4799,
+ 4808, 4815, 4833, 4840, 4841, 4842, 4844, 4857,
+ 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870,
+ 4871, 4872, 4877, 4881, 4883, 4887, 4898, 4902,
+ 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910,
+ 4911, 4912, 4913, 4914, 4915, 4916, 4926, 4927,
+ 4928, 4929, 4930, 4940, 4941, 4942, 4943, 4944,
+ 4947, 4949, 4952, 4964, 4980, 4981, 4993, 5001,
+ 5005, 5011, 5013, 5020, 5022, 5024, 5026, 5028,
+ 5029, 5030, 5032, 5034, 5036, 5037, 5043, 5047,
+ 5051, 5052, 5054, 5056, 5058, 5060, 5066, 5068,
+ 5070, 5072, 5074, 5075, 5076, 5078, 5080, 5082,
+ 5083, 5084, 5085, 5091, 5092, 5093, 5095, 5097,
+ 5099, 5100, 5101, 5102, 5108, 5110, 5111, 5112,
+ 5113, 5114, 5120, 5121, 5122, 5128, 5130, 5132,
+ 5134, 5136, 5138, 5140, 5142, 5148, 5150, 5152,
+ 5154, 5156, 5158, 5160, 5164, 5166, 5168, 5174,
+ 5176, 5178, 5184, 5186, 5188, 5192, 5194, 5195,
+ 5201, 5203, 5205, 5208, 5215, 5217, 5219, 5221,
+ 5223, 5224, 5225, 5227, 5229, 5231, 5232, 5238,
+ 5239, 5240, 5246, 5247, 5248, 5254, 5268, 5276,
+ 5278, 5280, 5282, 5284, 5286, 5292, 5298, 5300,
+ 5302, 5304, 5306, 5308, 5314, 5318, 5320, 5326,
+ 5328, 5330, 5336, 5338, 5340, 5342, 5348, 5350,
+ 5352, 5358, 5362, 5364, 5370, 5372, 5374, 5380,
+ 5382, 5384, 5386, 5392, 5394, 5396, 5402, 5405,
+ 5414, 5423, 5429, 5438, 5444, 5459, 5465, 5473,
+ 5481, 5489, 5507, 5515, 5533, 5541, 5559, 5567,
+ 5585, 5593, 5605, 5613, 5616, 5624, 5636, 5644,
+ 5647, 5655, 5667, 5675, 5678, 5686, 5698, 5706,
+ 5709, 5712, 5715, 5721, 5727, 5739, 5745, 5748,
+ 5757, 5763, 5778, 5784, 5787, 5789, 5797, 5812,
+ 5818, 5821, 5827, 5837, 5853, 5856, 5863, 5876,
+ 5878, 5886, 5896, 5904, 5914, 5923, 5931, 5937,
+ 5945, 5953, 5963, 5971, 5981, 5990, 5998, 6004,
+ 6013, 6015, 6029, 6041, 6055, 6067, 6081, 6093,
+ 6107, 6117, 6120, 6133, 6146, 6149, 6162, 6175,
+ 6185, 6188, 6201, 6214, 6224, 6227, 6240, 6253,
+ 6263, 6266, 6272, 6275, 6283, 6291, 6294, 6297,
+ 6300, 6306, 6309, 6317, 6325, 6328, 6331, 6333,
+ 6341, 6349, 6357, 6365, 6373, 6388, 6394, 6397,
+ 6400, 6403, 6405, 6413, 6421, 6429, 6441, 6447,
+ 6459, 6465, 6477, 6483, 6498, 6504, 6507, 6510,
+ 6513, 6516, 6519, 6525, 6531, 6539, 6547, 6559,
+ 6565, 6578, 6580, 6583, 6586, 6589, 6602, 6604,
+ 6605, 6608, 6611, 6613, 6625, 6628, 6629, 6636,
+ 6643, 6645, 6653, 6665, 6671, 6679, 6687, 6699,
+ 6705, 6721, 6724, 6727, 6730, 6733, 6735, 6743,
+ 6751, 6759, 6771, 6777, 6793, 6796, 6799, 6802,
+ 6804, 6812, 6822, 6828, 6836, 6844, 6851, 6885,
+ 6898, 6900, 6903, 6917, 6920, 6961, 6970, 6973,
+ 6976, 6982, 6990, 6998, 7007, 7044, 7047, 7050,
+ 7056, 7064, 7072, 7085, 7126, 7129, 7132, 7138,
+ 7146, 7154, 7169, 7203, 7206, 7209, 7212, 7248,
+ 7260, 7272, 7278, 7286, 7294, 7302, 7310, 7318,
+ 7326, 7334, 7342, 7350, 7358, 7373, 7379, 7392,
+ 7394, 7397, 7400, 7403, 7406, 7409, 7412, 7415,
+ 7418, 7420, 7422, 7428, 7430, 7432, 7434, 7440,
+ 7442, 7448, 7458, 7460, 7466, 7470, 7472, 7474,
+ 7476, 7478, 7484, 7490, 7492, 7494, 7500, 7502,
+ 7504, 7506, 7512, 7514, 7516, 7518, 7524, 7530,
+ 7532, 7534, 7536, 7542, 7546, 7548, 7550, 7556,
+ 7558, 7560, 7562, 7568, 7574, 7576, 7578, 7580,
+ 7581, 7587, 7588, 7594, 7598, 7600, 7602, 7604,
+ 7610, 7612, 7614, 7616, 7622, 7624, 7626, 7628,
+ 7630, 7632, 7634, 7636, 7642, 7646, 7648, 7654,
+ 7660, 7666, 7667, 7673, 7674, 7680, 7682, 7688,
+ 7694, 7698, 7700, 7702, 7704, 7710, 7716, 7722,
+ 7724, 7726, 7728, 7734, 7736, 7742, 7750, 7752,
+ 7759, 7767, 7769, 7771, 7773, 7775, 7781, 7783,
+ 7785, 7787, 7789, 7791, 7793, 7795, 7797, 7799,
+ 7805, 7807, 7809, 7815, 7821, 7827, 7829, 7831,
+ 7833, 7839, 7845, 7857, 7859, 7861, 7863, 7865,
+ 7871, 7873, 7879, 7881, 7887, 7889, 7895, 7897,
+ 7899, 7901, 7907, 7909, 7911, 7917, 7923, 7925,
+ 7927, 7933, 7935, 7941, 7943, 7945, 7947, 7955,
+ 7957, 7959, 7965, 7967, 7969, 7971, 7973, 7975,
+ 7981, 7983, 7985, 7987, 7989, 7991, 7997, 8006,
+ 8012, 8018, 8020, 8028, 8036, 8044, 8056, 8062,
+ 8075, 8077, 8080, 8083, 8086, 8093, 8095, 8097,
+ 8105, 8113, 8121, 8129, 8137, 8150, 8156, 8168,
+ 8174, 8181, 8187, 8194, 8201, 8207, 8214, 8226,
+ 8232, 8233, 8234, 8235, 8236, 8237, 8240, 8246,
+ 8258, 8261, 8264, 8267, 8269, 8277, 8285, 8293,
+ 8301, 8309, 8322, 8328, 8334, 8346, 8349, 8352,
+ 8355, 8357, 8365, 8373, 8381, 8389, 8397, 8409,
+ 8415, 8431, 8434, 8437, 8440, 8443, 8445, 8453,
+ 8461, 8469, 8475, 8478, 8480, 8488, 8496, 8504,
+ 8512, 8520, 8532, 8538, 8554, 8557, 8560, 8563,
+ 8566, 8568, 8576, 8585, 8594, 8597, 8599, 8607,
+ 8619, 8625, 8631, 8637, 8638, 8644, 8650, 8656,
+ 8662, 8669, 8672, 8678, 8684, 8685, 8691, 8697,
+ 8704, 8710, 8716, 8717, 8723, 8729, 8736, 8738,
+ 8746, 8754, 8762, 8774, 8780, 8783, 8786, 8788,
+ 8796, 8808, 8814, 8826, 8832, 8835, 8838, 8840,
+ 8848, 8863, 8869, 8875, 8878, 8896, 8929, 8983,
+ 9039, 9057, 9113, 9131, 9164, 9235, 9306, 9306,
+ 9306, 9306, 9306, 9318, 9318, 9318, 9318, 9334,
+ 9334, 9351, 9354, 9354, 9400, 9403, 9403, 9419,
+ 9422, 9434, 9434, 9450, 9453, 9456, 9456, 9456,
+ 9475, 9478, 9478, 9478, 9478, 9478, 9478, 9478,
+ 9478, 9478, 9478, 9494, 9497, 9497, 9497, 9507,
+ 9510, 9522, 9525, 9537, 9540, 9552, 9555, 9555,
+ 9555, 9555, 9555, 9568, 9571, 9571, 9587, 9590,
+ 9590, 9606, 9609, 9609, 9623, 9626, 9639, 9642,
+ 9683, 9692, 9692, 9692, 9692, 9692, 9692, 9692,
+ 9692, 9708, 9711, 9711, 9711, 9727, 9730, 9730,
+ 9730, 9730, 9730, 9730, 9730
};
static const short _zone_scanner_trans_keys[] = {
9, 32, 40, 41, 65, 67, 68, 69,
72, 73, 75, 76, 77, 78, 79, 80,
- 82, 83, 84, 85, 90, 97, 99, 100,
- 101, 104, 105, 107, 108, 109, 110, 111,
- 112, 114, 115, 116, 117, 122, 1802, 1851,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 68, 72, 77, 83, 87, 100, 104, 109,
- 115, 119, 2058, 2107, 48, 57, 9, 32,
- 40, 41, 65, 67, 68, 69, 72, 73,
- 75, 76, 77, 78, 79, 80, 82, 83,
- 84, 85, 90, 97, 99, 100, 101, 104,
- 105, 107, 108, 109, 110, 111, 112, 114,
- 115, 116, 117, 122, 2058, 2107, 9, 32,
- 40, 41, 65, 70, 80, 97, 102, 112,
- 3082, 3131, 3338, 3387, 3594, 3643, 9, 32,
- 40, 41, 92, 3082, 3131, 3338, 3387, 3594,
- 3643, -128, 8, 11, 58, 60, 127, 9,
- 32, 40, 41, 1802, 1851, 2058, 2107, 9,
- 32, 40, 41, 1802, 1851, 2058, 2107, 10,
- 35, 2058, 1920, 2175, 9, 32, 40, 41,
- 92, 2826, 2875, 3082, 3131, 3338, 3387, 3594,
- 3643, -128, 8, 11, 58, 60, 127, 9,
- 32, 40, 41, 92, 2826, 2875, 3082, 3131,
- 3338, 3387, 3594, 3643, -128, 8, 11, 58,
- 60, 127, 1802, 2058, 1664, 1919, 1920, 2175,
- 9, 32, 40, 41, 58, 65, 67, 68,
- 69, 72, 73, 75, 76, 77, 78, 79,
- 80, 82, 83, 84, 85, 90, 92, 97,
- 99, 100, 101, 104, 105, 107, 108, 109,
- 110, 111, 112, 114, 115, 116, 117, 122,
+ 82, 83, 84, 85, 87, 90, 97, 99,
+ 100, 101, 104, 105, 107, 108, 109, 110,
+ 111, 112, 114, 115, 116, 117, 119, 122,
+ 1802, 1851, 2058, 2107, 48, 57, 9, 32,
+ 40, 41, 68, 72, 77, 83, 87, 100,
+ 104, 109, 115, 119, 2058, 2107, 48, 57,
+ 9, 32, 40, 41, 65, 67, 68, 69,
+ 72, 73, 75, 76, 77, 78, 79, 80,
+ 82, 83, 84, 85, 87, 90, 97, 99,
+ 100, 101, 104, 105, 107, 108, 109, 110,
+ 111, 112, 114, 115, 116, 117, 119, 122,
+ 2058, 2107, 9, 32, 40, 41, 65, 70,
+ 80, 97, 102, 112, 3082, 3131, 3338, 3387,
+ 3594, 3643, 9, 32, 40, 41, 92, 3082,
+ 3131, 3338, 3387, 3594, 3643, -128, 8, 11,
+ 58, 60, 127, 9, 32, 40, 41, 1802,
+ 1851, 2058, 2107, 9, 32, 40, 41, 1802,
+ 1851, 2058, 2107, 10, 35, 2058, 1920, 2175,
+ 9, 32, 40, 41, 92, 2826, 2875, 3082,
+ 3131, 3338, 3387, 3594, 3643, -128, 8, 11,
+ 58, 60, 127, 9, 32, 40, 41, 92,
2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643,
- -128, 8, 11, 47, 48, 57, 60, 127,
- 9, 32, 40, 41, 68, 72, 77, 83,
- 87, 100, 104, 109, 115, 119, 1802, 1851,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 65, 67, 68, 69, 72, 73, 75, 76,
- 77, 78, 79, 80, 82, 83, 84, 85,
- 90, 97, 99, 100, 101, 104, 105, 107,
- 108, 109, 110, 111, 112, 114, 115, 116,
- 117, 122, 1802, 1851, 2058, 2107, 65, 68,
+ -128, 8, 11, 58, 60, 127, 1802, 2058,
+ 1664, 1919, 1920, 2175, 9, 32, 40, 41,
+ 58, 65, 67, 68, 69, 72, 73, 75,
+ 76, 77, 78, 79, 80, 82, 83, 84,
+ 85, 87, 90, 92, 97, 99, 100, 101,
+ 104, 105, 107, 108, 109, 110, 111, 112,
+ 114, 115, 116, 117, 119, 122, 2826, 2875,
+ 3082, 3131, 3338, 3387, 3594, 3643, -128, 8,
+ 11, 47, 48, 57, 60, 127, 9, 32,
+ 40, 41, 68, 72, 77, 83, 87, 100,
+ 104, 109, 115, 119, 1802, 1851, 2058, 2107,
+ 48, 57, 9, 32, 40, 41, 65, 67,
+ 68, 69, 72, 73, 75, 76, 77, 78,
+ 79, 80, 82, 83, 84, 85, 87, 90,
+ 97, 99, 100, 101, 104, 105, 107, 108,
+ 109, 110, 111, 112, 114, 115, 116, 117,
+ 119, 122, 1802, 1851, 2058, 2107, 65, 68,
69, 78, 83, 97, 100, 101, 110, 115,
65, 97, 9, 32, 40, 41, 3082, 3131,
3338, 3387, 3594, 3643, 1801, 1802, 1824, 1832,
@@ -2135,117 +2175,121 @@ static const short _zone_scanner_trans_keys[] = {
78, 80, 110, 112, 9, 32, 40, 41,
2058, 2107, 9, 32, 40, 41, 65, 67,
68, 69, 72, 73, 75, 76, 77, 78,
- 79, 80, 82, 83, 84, 85, 90, 97,
- 99, 100, 101, 104, 105, 107, 108, 109,
- 110, 111, 112, 114, 115, 116, 117, 122,
- 2058, 2107, 80, 112, 83, 115, 69, 101,
- 67, 99, 75, 107, 69, 101, 89, 121,
- 9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 69, 88, 101, 120, 89, 121,
- 9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 9, 32, 40, 41, 3082, 3131,
- 3338, 3387, 3594, 3643, 51, 54, 79, 80,
- 111, 112, 50, 9, 32, 40, 41, 3082,
- 3131, 3338, 3387, 3594, 3643, 52, 9, 32,
- 40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
- 67, 99, 9, 32, 40, 41, 3082, 3131,
+ 79, 80, 82, 83, 84, 85, 87, 90,
+ 97, 99, 100, 101, 104, 105, 107, 108,
+ 109, 110, 111, 112, 114, 115, 116, 117,
+ 119, 122, 2058, 2107, 80, 112, 83, 115,
+ 69, 101, 67, 99, 75, 107, 69, 101,
+ 89, 121, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 69, 88, 101, 120,
+ 89, 121, 9, 32, 40, 41, 3082, 3131,
3338, 3387, 3594, 3643, 9, 32, 40, 41,
- 3082, 3131, 3338, 3387, 3594, 3643, 73, 88,
- 105, 120, 78, 110, 70, 102, 79, 111,
- 9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 9, 32, 40, 41, 3082, 3131,
- 3338, 3387, 3594, 3643, 65, 73, 83, 97,
- 105, 115, 80, 112, 84, 116, 82, 114,
+ 3082, 3131, 3338, 3387, 3594, 3643, 51, 54,
+ 79, 80, 111, 112, 50, 9, 32, 40,
+ 41, 3082, 3131, 3338, 3387, 3594, 3643, 52,
9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 68, 100, 9, 32, 40, 41,
- 3082, 3131, 3338, 3387, 3594, 3643, 9, 32,
- 40, 41, 69, 101, 3082, 3131, 3338, 3387,
3594, 3643, 67, 99, 9, 32, 40, 41,
- 51, 3082, 3131, 3338, 3387, 3594, 3643, 9,
- 32, 40, 41, 80, 112, 3082, 3131, 3338,
- 3387, 3594, 3643, 65, 97, 82, 114, 65,
- 97, 77, 109, 9, 32, 40, 41, 3082,
- 3131, 3338, 3387, 3594, 3643, 80, 112, 69,
- 101, 78, 110, 80, 112, 71, 103, 80,
- 112, 75, 107, 69, 101, 89, 121, 9,
- 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 84, 116, 82, 114, 9, 32, 40,
+ 3082, 3131, 3338, 3387, 3594, 3643, 9, 32,
+ 40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
+ 73, 88, 105, 120, 78, 110, 70, 102,
+ 79, 111, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 9, 32, 40, 41,
+ 3082, 3131, 3338, 3387, 3594, 3643, 65, 73,
+ 83, 97, 105, 115, 80, 112, 84, 116,
+ 82, 114, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 68, 100, 9, 32,
+ 40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
+ 9, 32, 40, 41, 69, 101, 3082, 3131,
+ 3338, 3387, 3594, 3643, 67, 99, 9, 32,
+ 40, 41, 51, 3082, 3131, 3338, 3387, 3594,
+ 3643, 9, 32, 40, 41, 80, 112, 3082,
+ 3131, 3338, 3387, 3594, 3643, 65, 97, 82,
+ 114, 65, 97, 77, 109, 9, 32, 40,
41, 3082, 3131, 3338, 3387, 3594, 3643, 80,
- 82, 84, 112, 114, 116, 9, 32, 40,
- 41, 3082, 3131, 3338, 3387, 3594, 3643, 83,
- 115, 73, 105, 71, 103, 9, 32, 40,
- 41, 3082, 3131, 3338, 3387, 3594, 3643, 9,
+ 112, 69, 101, 78, 110, 80, 112, 71,
+ 103, 80, 112, 75, 107, 69, 101, 89,
+ 121, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 84, 116, 82, 114, 9,
32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 77, 79, 80, 82, 83, 86, 109,
- 111, 112, 114, 115, 118, 73, 105, 77,
- 109, 69, 101, 65, 97, 9, 32, 40,
- 41, 3082, 3131, 3338, 3387, 3594, 3643, 65,
- 97, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 70, 102, 9, 32, 40,
- 41, 3082, 3131, 3338, 3387, 3594, 3643, 86,
- 118, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 72, 104, 70, 102, 80,
- 112, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 67, 99, 66, 98, 9,
+ 3643, 80, 82, 84, 112, 114, 116, 9,
32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 76, 88, 89, 108, 120, 121, 83,
- 115, 65, 97, 9, 32, 40, 41, 3082,
- 3131, 3338, 3387, 3594, 3643, 84, 116, 9,
+ 3643, 83, 115, 73, 105, 71, 103, 9,
32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 80, 112, 69, 101, 48, 57, 9,
+ 3643, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 77, 79, 80, 82, 83,
+ 86, 109, 111, 112, 114, 115, 118, 73,
+ 105, 77, 109, 69, 101, 65, 97, 9,
32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 48, 57, 82, 114, 73, 105, 9,
+ 3643, 65, 97, 9, 32, 40, 41, 3082,
+ 3131, 3338, 3387, 3594, 3643, 70, 102, 9,
32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 79, 111, 78, 110, 69, 101, 77,
- 109, 68, 100, 9, 32, 40, 41, 3082,
- 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175,
- 9, 32, 40, 41, 65, 67, 68, 69,
- 72, 73, 75, 76, 77, 78, 79, 80,
- 82, 83, 84, 85, 90, 97, 99, 100,
- 101, 104, 105, 107, 108, 109, 110, 111,
- 112, 114, 115, 116, 117, 122, 1802, 1851,
+ 3643, 86, 118, 9, 32, 40, 41, 3082,
+ 3131, 3338, 3387, 3594, 3643, 72, 104, 70,
+ 102, 80, 112, 9, 32, 40, 41, 3082,
+ 3131, 3338, 3387, 3594, 3643, 67, 99, 66,
+ 98, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 76, 88, 89, 108, 120,
+ 121, 83, 115, 65, 97, 9, 32, 40,
+ 41, 3082, 3131, 3338, 3387, 3594, 3643, 84,
+ 116, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 80, 112, 69, 101, 48,
+ 57, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 48, 57, 82, 114, 73,
+ 105, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 65, 97, 76, 108, 76,
+ 108, 69, 101, 84, 116, 9, 32, 40,
+ 41, 3082, 3131, 3338, 3387, 3594, 3643, 79,
+ 111, 78, 110, 69, 101, 77, 109, 68,
+ 100, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 2058, 1920, 2175, 9, 32,
+ 40, 41, 65, 67, 68, 69, 72, 73,
+ 75, 76, 77, 78, 79, 80, 82, 83,
+ 84, 85, 87, 90, 97, 99, 100, 101,
+ 104, 105, 107, 108, 109, 110, 111, 112,
+ 114, 115, 116, 117, 119, 122, 1802, 1851,
2058, 2107, 48, 57, 78, 80, 110, 112,
9, 32, 40, 41, 2058, 2107, 9, 32,
40, 41, 65, 67, 68, 69, 72, 73,
75, 76, 77, 78, 79, 80, 82, 83,
- 84, 85, 90, 97, 99, 100, 101, 104,
- 105, 107, 108, 109, 110, 111, 112, 114,
- 115, 116, 117, 122, 2058, 2107, 48, 57,
- 9, 32, 40, 41, 68, 72, 77, 83,
- 87, 100, 104, 109, 115, 119, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 68, 72, 77, 83, 87, 100,
- 104, 109, 115, 119, 48, 57, 9, 32,
- 40, 41, 2058, 2107, 48, 57, 2058, 1920,
- 2175, 10, 73, 79, 84, 105, 111, 116,
- 78, 110, 67, 99, 76, 108, 85, 117,
- 68, 100, 69, 101, 32, 59, 9, 10,
- 40, 41, 9, 32, 40, 41, 2058, 2107,
- 9, 32, 40, 41, 65, 67, 68, 69,
- 72, 73, 75, 76, 77, 78, 79, 80,
- 82, 83, 84, 85, 90, 97, 99, 100,
- 101, 104, 105, 107, 108, 109, 110, 111,
- 112, 114, 115, 116, 117, 122, 2058, 2107,
- 48, 57, 2058, 1920, 2175, 9, 32, 40,
- 41, 68, 72, 77, 83, 87, 100, 104,
- 109, 115, 119, 2058, 2107, 48, 57, 9,
- 32, 40, 41, 65, 67, 68, 69, 72,
- 73, 75, 76, 77, 78, 79, 80, 82,
- 83, 84, 85, 90, 97, 99, 100, 101,
+ 84, 85, 87, 90, 97, 99, 100, 101,
104, 105, 107, 108, 109, 110, 111, 112,
- 114, 115, 116, 117, 122, 2058, 2107, 48,
- 57, 2058, 1920, 2175, 9, 32, 40, 41,
+ 114, 115, 116, 117, 119, 122, 2058, 2107,
+ 48, 57, 9, 32, 40, 41, 68, 72,
+ 77, 83, 87, 100, 104, 109, 115, 119,
+ 2058, 2107, 48, 57, 9, 32, 40, 41,
2058, 2107, 48, 57, 68, 72, 77, 83,
87, 100, 104, 109, 115, 119, 48, 57,
9, 32, 40, 41, 2058, 2107, 48, 57,
- 2058, 1920, 2175, 9, 32, 40, 41, 65,
- 70, 80, 97, 102, 112, 3082, 3131, 3338,
- 3387, 3594, 3643, 9, 32, 40, 41, 58,
- 65, 67, 68, 69, 72, 73, 75, 76,
- 77, 78, 79, 80, 82, 83, 84, 85,
- 90, 92, 97, 99, 100, 101, 104, 105,
- 107, 108, 109, 110, 111, 112, 114, 115,
- 116, 117, 122, 3082, 3131, 3338, 3387, 3594,
+ 2058, 1920, 2175, 10, 73, 79, 84, 105,
+ 111, 116, 78, 110, 67, 99, 76, 108,
+ 85, 117, 68, 100, 69, 101, 32, 59,
+ 9, 10, 40, 41, 9, 32, 40, 41,
+ 2058, 2107, 9, 32, 40, 41, 65, 67,
+ 68, 69, 72, 73, 75, 76, 77, 78,
+ 79, 80, 82, 83, 84, 85, 87, 90,
+ 97, 99, 100, 101, 104, 105, 107, 108,
+ 109, 110, 111, 112, 114, 115, 116, 117,
+ 119, 122, 2058, 2107, 48, 57, 2058, 1920,
+ 2175, 9, 32, 40, 41, 68, 72, 77,
+ 83, 87, 100, 104, 109, 115, 119, 2058,
+ 2107, 48, 57, 9, 32, 40, 41, 65,
+ 67, 68, 69, 72, 73, 75, 76, 77,
+ 78, 79, 80, 82, 83, 84, 85, 87,
+ 90, 97, 99, 100, 101, 104, 105, 107,
+ 108, 109, 110, 111, 112, 114, 115, 116,
+ 117, 119, 122, 2058, 2107, 48, 57, 2058,
+ 1920, 2175, 9, 32, 40, 41, 2058, 2107,
+ 48, 57, 68, 72, 77, 83, 87, 100,
+ 104, 109, 115, 119, 48, 57, 9, 32,
+ 40, 41, 2058, 2107, 48, 57, 2058, 1920,
+ 2175, 9, 32, 40, 41, 65, 70, 80,
+ 97, 102, 112, 3082, 3131, 3338, 3387, 3594,
+ 3643, 9, 32, 40, 41, 58, 65, 67,
+ 68, 69, 72, 73, 75, 76, 77, 78,
+ 79, 80, 82, 83, 84, 85, 87, 90,
+ 92, 97, 99, 100, 101, 104, 105, 107,
+ 108, 109, 110, 111, 112, 114, 115, 116,
+ 117, 119, 122, 3082, 3131, 3338, 3387, 3594,
3643, -128, 8, 11, 47, 48, 57, 60,
127, 9, 32, 40, 41, 65, 70, 80,
97, 102, 112, 2826, 2875, 3082, 3131, 3338,
@@ -2254,69 +2298,19 @@ static const short _zone_scanner_trans_keys[] = {
-128, 8, 11, 58, 60, 127, 9, 32,
40, 41, 65, 67, 68, 69, 72, 73,
75, 76, 77, 78, 79, 80, 82, 83,
- 84, 85, 90, 97, 99, 100, 101, 104,
- 105, 107, 108, 109, 110, 111, 112, 114,
- 115, 116, 117, 122, 1802, 1851, 2058, 2107,
- 48, 57, 1802, 2058, 1664, 1919, 1920, 2175,
+ 84, 85, 87, 90, 97, 99, 100, 101,
+ 104, 105, 107, 108, 109, 110, 111, 112,
+ 114, 115, 116, 117, 119, 122, 1802, 1851,
+ 2058, 2107, 48, 57, 1802, 2058, 1664, 1919,
+ 1920, 2175, 9, 32, 40, 41, 1802, 1851,
+ 2058, 2107, -128, 8, 11, 58, 60, 127,
9, 32, 40, 41, 1802, 1851, 2058, 2107,
-128, 8, 11, 58, 60, 127, 9, 32,
- 40, 41, 1802, 1851, 2058, 2107, -128, 8,
- 11, 58, 60, 127, 9, 32, 40, 41,
- 58, 65, 67, 68, 69, 72, 73, 75,
- 76, 77, 78, 79, 80, 82, 83, 84,
- 85, 90, 92, 97, 99, 100, 101, 104,
- 105, 107, 108, 109, 110, 111, 112, 114,
- 115, 116, 117, 122, 2826, 2875, 3082, 3131,
- 3338, 3387, 3594, 3643, -128, 8, 11, 47,
- 48, 57, 60, 127, 9, 32, 40, 41,
- 65, 68, 69, 78, 83, 97, 100, 101,
- 110, 115, 1802, 1851, 2058, 2107, 9, 32,
- 40, 41, 72, 78, 83, 104, 110, 115,
- 1802, 1851, 2058, 2107, 9, 32, 40, 41,
- 85, 117, 1802, 1851, 2058, 2107, 9, 32,
- 40, 41, 73, 84, 105, 116, 1802, 1851,
- 2058, 2107, 9, 32, 40, 41, 78, 80,
- 110, 112, 1802, 1851, 2058, 2107, 9, 32,
- 40, 41, 69, 88, 101, 120, 1802, 1851,
- 2058, 2107, 9, 32, 40, 41, 51, 54,
- 79, 80, 111, 112, 1802, 1851, 2058, 2107,
- 9, 32, 40, 41, 73, 88, 105, 120,
- 1802, 1851, 2058, 2107, 9, 32, 40, 41,
- 65, 73, 83, 97, 105, 115, 1802, 1851,
- 2058, 2107, 9, 32, 40, 41, 80, 112,
- 1802, 1851, 2058, 2107, 9, 32, 40, 41,
- 84, 116, 1802, 1851, 2058, 2107, 9, 32,
- 40, 41, 80, 82, 84, 112, 114, 116,
- 1802, 1851, 2058, 2107, 9, 32, 40, 41,
- 77, 79, 80, 82, 83, 86, 109, 111,
- 112, 114, 115, 118, 1802, 1851, 2058, 2107,
- 9, 32, 40, 41, 76, 88, 89, 108,
- 120, 121, 1802, 1851, 2058, 2107, 9, 32,
- 40, 41, 82, 114, 1802, 1851, 2058, 2107,
- 9, 32, 40, 41, 79, 111, 1802, 1851,
- 2058, 2107, 1802, 2058, 1664, 1919, 1920, 2175,
- 9, 32, 40, 41, 73, 79, 84, 105,
- 111, 116, 1802, 1851, 2058, 2107, 82, 114,
- 73, 105, 71, 103, 73, 105, 78, 110,
- 32, 59, 9, 10, 40, 41, 84, 116,
- 76, 108, 32, 59, 9, 10, 40, 41,
- 9, 32, 40, 41, 1802, 1851, 2058, 2107,
- 9, 32, 40, 41, 68, 72, 77, 83,
- 87, 100, 104, 109, 115, 119, 1802, 1851,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 65, 67, 68, 69, 72, 73, 75, 76,
- 77, 78, 79, 80, 82, 83, 84, 85,
- 90, 97, 99, 100, 101, 104, 105, 107,
- 108, 109, 110, 111, 112, 114, 115, 116,
- 117, 122, 1802, 1851, 2058, 2107, 48, 57,
- 1802, 2058, 1664, 1919, 1920, 2175, 9, 32,
- 40, 41, 65, 70, 80, 97, 102, 112,
- 2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643,
- 9, 32, 40, 41, 58, 65, 67, 68,
- 69, 72, 73, 75, 76, 77, 78, 79,
- 80, 82, 83, 84, 85, 90, 92, 97,
- 99, 100, 101, 104, 105, 107, 108, 109,
- 110, 111, 112, 114, 115, 116, 117, 122,
+ 40, 41, 58, 65, 67, 68, 69, 72,
+ 73, 75, 76, 77, 78, 79, 80, 82,
+ 83, 84, 85, 87, 90, 92, 97, 99,
+ 100, 101, 104, 105, 107, 108, 109, 110,
+ 111, 112, 114, 115, 116, 117, 119, 122,
2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643,
-128, 8, 11, 47, 48, 57, 60, 127,
9, 32, 40, 41, 65, 68, 69, 78,
@@ -2344,45 +2338,99 @@ static const short _zone_scanner_trans_keys[] = {
76, 88, 89, 108, 120, 121, 1802, 1851,
2058, 2107, 9, 32, 40, 41, 82, 114,
1802, 1851, 2058, 2107, 9, 32, 40, 41,
- 79, 111, 1802, 1851, 2058, 2107, 9, 32,
- 35, 40, 41, 1802, 1851, 2058, 2107, -128,
- 8, 11, 58, 60, 127, 9, 32, 40,
- 41, 65, 67, 68, 69, 72, 73, 75,
- 76, 77, 78, 79, 80, 82, 83, 84,
- 85, 90, 97, 99, 100, 101, 104, 105,
- 107, 108, 109, 110, 111, 112, 114, 115,
- 116, 117, 122, 1802, 1851, 2058, 2107, 48,
- 57, 1801, 1802, 1824, 1832, 1833, 1851, 2057,
- 2058, 2080, 2088, 2089, 2107, 1920, 2175, 1801,
+ 65, 97, 1802, 1851, 2058, 2107, 9, 32,
+ 40, 41, 79, 111, 1802, 1851, 2058, 2107,
+ 1802, 2058, 1664, 1919, 1920, 2175, 9, 32,
+ 40, 41, 73, 79, 84, 105, 111, 116,
+ 1802, 1851, 2058, 2107, 82, 114, 73, 105,
+ 71, 103, 73, 105, 78, 110, 32, 59,
+ 9, 10, 40, 41, 84, 116, 76, 108,
+ 32, 59, 9, 10, 40, 41, 9, 32,
+ 40, 41, 1802, 1851, 2058, 2107, 9, 32,
+ 40, 41, 68, 72, 77, 83, 87, 100,
+ 104, 109, 115, 119, 1802, 1851, 2058, 2107,
+ 48, 57, 9, 32, 40, 41, 65, 67,
+ 68, 69, 72, 73, 75, 76, 77, 78,
+ 79, 80, 82, 83, 84, 85, 87, 90,
+ 97, 99, 100, 101, 104, 105, 107, 108,
+ 109, 110, 111, 112, 114, 115, 116, 117,
+ 119, 122, 1802, 1851, 2058, 2107, 48, 57,
+ 1802, 2058, 1664, 1919, 1920, 2175, 9, 32,
+ 40, 41, 65, 70, 80, 97, 102, 112,
+ 2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643,
+ 9, 32, 40, 41, 58, 65, 67, 68,
+ 69, 72, 73, 75, 76, 77, 78, 79,
+ 80, 82, 83, 84, 85, 87, 90, 92,
+ 97, 99, 100, 101, 104, 105, 107, 108,
+ 109, 110, 111, 112, 114, 115, 116, 117,
+ 119, 122, 2826, 2875, 3082, 3131, 3338, 3387,
+ 3594, 3643, -128, 8, 11, 47, 48, 57,
+ 60, 127, 9, 32, 40, 41, 65, 68,
+ 69, 78, 83, 97, 100, 101, 110, 115,
+ 1802, 1851, 2058, 2107, 9, 32, 40, 41,
+ 72, 78, 83, 104, 110, 115, 1802, 1851,
+ 2058, 2107, 9, 32, 40, 41, 85, 117,
+ 1802, 1851, 2058, 2107, 9, 32, 40, 41,
+ 73, 84, 105, 116, 1802, 1851, 2058, 2107,
+ 9, 32, 40, 41, 78, 80, 110, 112,
+ 1802, 1851, 2058, 2107, 9, 32, 40, 41,
+ 69, 88, 101, 120, 1802, 1851, 2058, 2107,
+ 9, 32, 40, 41, 51, 54, 79, 80,
+ 111, 112, 1802, 1851, 2058, 2107, 9, 32,
+ 40, 41, 73, 88, 105, 120, 1802, 1851,
+ 2058, 2107, 9, 32, 40, 41, 65, 73,
+ 83, 97, 105, 115, 1802, 1851, 2058, 2107,
+ 9, 32, 40, 41, 80, 112, 1802, 1851,
+ 2058, 2107, 9, 32, 40, 41, 84, 116,
+ 1802, 1851, 2058, 2107, 9, 32, 40, 41,
+ 80, 82, 84, 112, 114, 116, 1802, 1851,
+ 2058, 2107, 9, 32, 40, 41, 77, 79,
+ 80, 82, 83, 86, 109, 111, 112, 114,
+ 115, 118, 1802, 1851, 2058, 2107, 9, 32,
+ 40, 41, 76, 88, 89, 108, 120, 121,
+ 1802, 1851, 2058, 2107, 9, 32, 40, 41,
+ 82, 114, 1802, 1851, 2058, 2107, 9, 32,
+ 40, 41, 65, 97, 1802, 1851, 2058, 2107,
+ 9, 32, 40, 41, 79, 111, 1802, 1851,
+ 2058, 2107, 9, 32, 35, 40, 41, 1802,
+ 1851, 2058, 2107, -128, 8, 11, 58, 60,
+ 127, 9, 32, 40, 41, 65, 67, 68,
+ 69, 72, 73, 75, 76, 77, 78, 79,
+ 80, 82, 83, 84, 85, 87, 90, 97,
+ 99, 100, 101, 104, 105, 107, 108, 109,
+ 110, 111, 112, 114, 115, 116, 117, 119,
+ 122, 1802, 1851, 2058, 2107, 48, 57, 1801,
1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080,
2088, 2089, 2107, 1920, 2175, 1801, 1802, 1824,
1832, 1833, 1851, 2057, 2058, 2080, 2088, 2089,
- 2107, 1664, 1919, 1920, 2175, 1801, 1802, 1824,
- 1832, 1833, 1851, 2057, 2058, 2080, 2088, 2089,
- 2107, 1664, 1919, 1920, 2175, 65, 97, 65,
- 97, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 83, 115, 68, 100, 66,
- 98, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 76, 108, 9, 32, 40,
- 41, 3082, 3131, 3338, 3387, 3594, 3643, 1802,
- 2058, 1664, 1919, 1920, 2175, 9, 32, 40,
- 41, 1802, 1851, 2058, 2107, -128, 8, 11,
- 58, 60, 127, 9, 32, 40, 41, 1802,
+ 2107, 1920, 2175, 1801, 1802, 1824, 1832, 1833,
+ 1851, 2057, 2058, 2080, 2088, 2089, 2107, 1664,
+ 1919, 1920, 2175, 1801, 1802, 1824, 1832, 1833,
+ 1851, 2057, 2058, 2080, 2088, 2089, 2107, 1664,
+ 1919, 1920, 2175, 65, 97, 65, 97, 9,
+ 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
+ 3643, 83, 115, 68, 100, 66, 98, 9,
+ 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
+ 3643, 76, 108, 9, 32, 40, 41, 3082,
+ 3131, 3338, 3387, 3594, 3643, 1802, 2058, 1664,
+ 1919, 1920, 2175, 9, 32, 40, 41, 1802,
1851, 2058, 2107, -128, 8, 11, 58, 60,
- 127, 1801, 1802, 1824, 1832, 1833, 1851, 2057,
- 2058, 2080, 2088, 2089, 2107, 1664, 1919, 1920,
- 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057,
- 2058, 2080, 2088, 2089, 2107, 1664, 1919, 1920,
- 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057,
- 2058, 2080, 2088, 2089, 2107, 1664, 1919, 1920,
- 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057,
- 2058, 2080, 2088, 2089, 2107, 1664, 1919, 1920,
- 2175, 2058, 1920, 2175, 9, 32, 40, 41,
- 58, 65, 67, 68, 69, 72, 73, 75,
- 76, 77, 78, 79, 80, 82, 83, 84,
- 85, 90, 92, 97, 99, 100, 101, 104,
- 105, 107, 108, 109, 110, 111, 112, 114,
- 115, 116, 117, 122, 2826, 2875, 3082, 3131,
+ 127, 9, 32, 40, 41, 1802, 1851, 2058,
+ 2107, -128, 8, 11, 58, 60, 127, 1801,
+ 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080,
+ 2088, 2089, 2107, 1664, 1919, 1920, 2175, 1801,
+ 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080,
+ 2088, 2089, 2107, 1664, 1919, 1920, 2175, 1801,
+ 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080,
+ 2088, 2089, 2107, 1664, 1919, 1920, 2175, 1801,
+ 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080,
+ 2088, 2089, 2107, 1664, 1919, 1920, 2175, 2058,
+ 1920, 2175, 9, 32, 40, 41, 58, 65,
+ 67, 68, 69, 72, 73, 75, 76, 77,
+ 78, 79, 80, 82, 83, 84, 85, 87,
+ 90, 92, 97, 99, 100, 101, 104, 105,
+ 107, 108, 109, 110, 111, 112, 114, 115,
+ 116, 117, 119, 122, 2826, 2875, 3082, 3131,
3338, 3387, 3594, 3643, -128, 8, 11, 47,
48, 57, 60, 127, 1801, 1802, 1824, 1832,
1833, 1851, 2057, 2058, 2080, 2088, 2089, 2107,
@@ -2409,6 +2457,7 @@ static const short _zone_scanner_trans_keys[] = {
2058, 2107, 9, 32, 40, 41, 76, 88,
89, 108, 120, 121, 2058, 2107, 9, 32,
40, 41, 82, 114, 2058, 2107, 9, 32,
+ 40, 41, 65, 97, 2058, 2107, 9, 32,
40, 41, 79, 111, 2058, 2107, 1802, 2058,
1664, 1919, 1920, 2175, 1802, 2058, 1664, 1919,
1920, 2175, 9, 32, 40, 41, 78, 80,
@@ -2481,265 +2530,281 @@ static const short _zone_scanner_trans_keys[] = {
40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
9, 32, 40, 41, 65, 67, 68, 69,
72, 73, 75, 76, 77, 78, 79, 80,
- 82, 83, 84, 85, 90, 97, 99, 100,
- 101, 104, 105, 107, 108, 109, 110, 111,
- 112, 114, 115, 116, 117, 122, 3082, 3131,
- 3338, 3387, 3594, 3643, 9, 32, 40, 41,
- 65, 70, 80, 97, 102, 112, 3082, 3131,
- 3338, 3387, 3594, 3643, 65, 97, 65, 97,
- 9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 2058, 1920, 2175, 65, 68, 69,
- 78, 83, 97, 100, 101, 110, 115, 65,
- 97, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 78, 83, 110, 115, 83,
- 115, 75, 107, 69, 101, 89, 121, 9,
- 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 82, 114, 84, 116, 9,
- 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 65, 97, 77, 109, 69, 101, 9,
- 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 89, 121, 78, 110, 67, 99, 9,
- 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 72, 78, 83, 104, 110, 115, 67,
- 99, 73, 105, 68, 100, 9, 32, 40,
- 41, 3082, 3131, 3338, 3387, 3594, 3643, 65,
- 83, 97, 115, 77, 109, 69, 101, 9,
- 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 75, 107, 69, 101, 89, 121, 9,
- 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 85, 117, 73, 105, 52,
- 54, 56, 9, 32, 40, 41, 3082, 3131,
- 3338, 3387, 3594, 3643, 52, 9, 32, 40,
- 41, 3082, 3131, 3338, 3387, 3594, 3643, 73,
- 84, 105, 116, 78, 110, 70, 102, 79,
- 111, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 84, 116, 80, 112, 83,
- 115, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 80, 112, 83, 115, 69,
- 101, 67, 99, 75, 107, 69, 101, 89,
+ 82, 83, 84, 85, 87, 90, 97, 99,
+ 100, 101, 104, 105, 107, 108, 109, 110,
+ 111, 112, 114, 115, 116, 117, 119, 122,
+ 3082, 3131, 3338, 3387, 3594, 3643, 9, 32,
+ 40, 41, 65, 70, 80, 97, 102, 112,
+ 3082, 3131, 3338, 3387, 3594, 3643, 65, 97,
+ 65, 97, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 2058, 1920, 2175, 65,
+ 68, 69, 78, 83, 97, 100, 101, 110,
+ 115, 65, 97, 9, 32, 40, 41, 3082,
+ 3131, 3338, 3387, 3594, 3643, 78, 83, 110,
+ 115, 83, 115, 75, 107, 69, 101, 89,
121, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 69, 88, 101, 120, 89,
+ 3387, 3594, 3643, 9, 32, 40, 41, 3082,
+ 3131, 3338, 3387, 3594, 3643, 82, 114, 84,
+ 116, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 65, 97, 77, 109, 69,
+ 101, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 89, 121, 78, 110, 67,
+ 99, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 72, 78, 83, 104, 110,
+ 115, 67, 99, 73, 105, 68, 100, 9,
+ 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
+ 3643, 65, 83, 97, 115, 77, 109, 69,
+ 101, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 75, 107, 69, 101, 89,
121, 9, 32, 40, 41, 3082, 3131, 3338,
3387, 3594, 3643, 9, 32, 40, 41, 3082,
- 3131, 3338, 3387, 3594, 3643, 51, 54, 79,
- 80, 111, 112, 50, 9, 32, 40, 41,
+ 3131, 3338, 3387, 3594, 3643, 85, 117, 73,
+ 105, 52, 54, 56, 9, 32, 40, 41,
3082, 3131, 3338, 3387, 3594, 3643, 52, 9,
32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 67, 99, 9, 32, 40, 41, 3082,
+ 3643, 73, 84, 105, 116, 78, 110, 70,
+ 102, 79, 111, 9, 32, 40, 41, 3082,
+ 3131, 3338, 3387, 3594, 3643, 84, 116, 80,
+ 112, 83, 115, 9, 32, 40, 41, 3082,
+ 3131, 3338, 3387, 3594, 3643, 80, 112, 83,
+ 115, 69, 101, 67, 99, 75, 107, 69,
+ 101, 89, 121, 9, 32, 40, 41, 3082,
+ 3131, 3338, 3387, 3594, 3643, 69, 88, 101,
+ 120, 89, 121, 9, 32, 40, 41, 3082,
3131, 3338, 3387, 3594, 3643, 9, 32, 40,
- 41, 3082, 3131, 3338, 3387, 3594, 3643, 73,
- 88, 105, 120, 78, 110, 70, 102, 79,
- 111, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 9, 32, 40, 41, 3082,
- 3131, 3338, 3387, 3594, 3643, 65, 73, 83,
- 97, 105, 115, 80, 112, 84, 116, 82,
- 114, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 68, 100, 9, 32, 40,
- 41, 3082, 3131, 3338, 3387, 3594, 3643, 9,
- 32, 40, 41, 69, 101, 3082, 3131, 3338,
- 3387, 3594, 3643, 67, 99, 9, 32, 40,
- 41, 51, 3082, 3131, 3338, 3387, 3594, 3643,
- 9, 32, 40, 41, 80, 112, 3082, 3131,
- 3338, 3387, 3594, 3643, 65, 97, 82, 114,
- 65, 97, 77, 109, 9, 32, 40, 41,
- 3082, 3131, 3338, 3387, 3594, 3643, 80, 112,
- 69, 101, 78, 110, 80, 112, 71, 103,
- 80, 112, 75, 107, 69, 101, 89, 121,
- 9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 84, 116, 82, 114, 9, 32,
- 40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
- 80, 82, 84, 112, 114, 116, 9, 32,
+ 41, 3082, 3131, 3338, 3387, 3594, 3643, 51,
+ 54, 79, 80, 111, 112, 50, 9, 32,
40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
- 83, 115, 73, 105, 71, 103, 9, 32,
- 40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
- 9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 77, 79, 80, 82, 83, 86,
- 109, 111, 112, 114, 115, 118, 73, 105,
- 77, 109, 69, 101, 65, 97, 9, 32,
- 40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
- 65, 97, 9, 32, 40, 41, 3082, 3131,
- 3338, 3387, 3594, 3643, 70, 102, 9, 32,
+ 52, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 67, 99, 9, 32, 40,
+ 41, 3082, 3131, 3338, 3387, 3594, 3643, 9,
+ 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
+ 3643, 73, 88, 105, 120, 78, 110, 70,
+ 102, 79, 111, 9, 32, 40, 41, 3082,
+ 3131, 3338, 3387, 3594, 3643, 9, 32, 40,
+ 41, 3082, 3131, 3338, 3387, 3594, 3643, 65,
+ 73, 83, 97, 105, 115, 80, 112, 84,
+ 116, 82, 114, 9, 32, 40, 41, 3082,
+ 3131, 3338, 3387, 3594, 3643, 68, 100, 9,
+ 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
+ 3643, 9, 32, 40, 41, 69, 101, 3082,
+ 3131, 3338, 3387, 3594, 3643, 67, 99, 9,
+ 32, 40, 41, 51, 3082, 3131, 3338, 3387,
+ 3594, 3643, 9, 32, 40, 41, 80, 112,
+ 3082, 3131, 3338, 3387, 3594, 3643, 65, 97,
+ 82, 114, 65, 97, 77, 109, 9, 32,
40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
- 86, 118, 9, 32, 40, 41, 3082, 3131,
- 3338, 3387, 3594, 3643, 72, 104, 70, 102,
- 80, 112, 9, 32, 40, 41, 3082, 3131,
- 3338, 3387, 3594, 3643, 67, 99, 66, 98,
+ 80, 112, 69, 101, 78, 110, 80, 112,
+ 71, 103, 80, 112, 75, 107, 69, 101,
+ 89, 121, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 84, 116, 82, 114,
9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 76, 88, 89, 108, 120, 121,
- 83, 115, 65, 97, 9, 32, 40, 41,
- 3082, 3131, 3338, 3387, 3594, 3643, 84, 116,
+ 3594, 3643, 80, 82, 84, 112, 114, 116,
9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 80, 112, 69, 101, 48, 57,
+ 3594, 3643, 83, 115, 73, 105, 71, 103,
9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 48, 57, 82, 114, 73, 105,
+ 3594, 3643, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 77, 79, 80, 82,
+ 83, 86, 109, 111, 112, 114, 115, 118,
+ 73, 105, 77, 109, 69, 101, 65, 97,
9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 79, 111, 78, 110, 69, 101,
- 77, 109, 68, 100, 9, 32, 40, 41,
- 3082, 3131, 3338, 3387, 3594, 3643, 83, 115,
- 68, 100, 66, 98, 9, 32, 40, 41,
- 3082, 3131, 3338, 3387, 3594, 3643, 76, 108,
+ 3594, 3643, 65, 97, 9, 32, 40, 41,
+ 3082, 3131, 3338, 3387, 3594, 3643, 70, 102,
9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 9, 32, 40, 41, 2058, 2107,
- 9, 32, 40, 41, 2058, 2107, 48, 57,
- 9, 32, 40, 41, 2058, 2107, 48, 57,
- 9, 32, 40, 41, 2058, 2107, 48, 57,
- 65, 70, 97, 102, 48, 57, 65, 70,
- 97, 102, 9, 32, 40, 41, 3082, 3131,
- 3338, 3387, 3594, 3643, 48, 57, 65, 70,
- 97, 102, 2058, 1920, 2175, 2058, 1920, 2175,
- 2058, 1920, 2175, 9, 32, 40, 41, 2058,
- 2107, 9, 32, 40, 41, 48, 2058, 2107,
- 49, 57, 9, 32, 40, 41, 1802, 1851,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 65, 70, 97, 102,
- 48, 57, 65, 70, 97, 102, 9, 32,
+ 3594, 3643, 86, 118, 9, 32, 40, 41,
+ 3082, 3131, 3338, 3387, 3594, 3643, 72, 104,
+ 70, 102, 80, 112, 9, 32, 40, 41,
+ 3082, 3131, 3338, 3387, 3594, 3643, 67, 99,
+ 66, 98, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 76, 88, 89, 108,
+ 120, 121, 83, 115, 65, 97, 9, 32,
40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
- 48, 57, 65, 70, 97, 102, 2058, 1920,
- 2175, 2058, 1920, 2175, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 2058, 1920, 2175, 97,
- 101, 105, 107, 110, 112, 108, 112, 110,
+ 84, 116, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 80, 112, 69, 101,
+ 48, 57, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 48, 57, 82, 114,
+ 73, 105, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 65, 97, 76, 108,
+ 76, 108, 69, 101, 84, 116, 9, 32,
+ 40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
+ 79, 111, 78, 110, 69, 101, 77, 109,
+ 68, 100, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 83, 115, 68, 100,
+ 66, 98, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 76, 108, 9, 32,
+ 40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
+ 9, 32, 40, 41, 2058, 2107, 9, 32,
+ 40, 41, 2058, 2107, 48, 57, 9, 32,
+ 40, 41, 2058, 2107, 48, 57, 9, 32,
+ 40, 41, 2058, 2107, 48, 57, 65, 70,
+ 97, 102, 48, 57, 65, 70, 97, 102,
+ 9, 32, 40, 41, 3082, 3131, 3338, 3387,
+ 3594, 3643, 48, 57, 65, 70, 97, 102,
+ 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920,
+ 2175, 9, 32, 40, 41, 2058, 2107, 9,
+ 32, 40, 41, 48, 2058, 2107, 49, 57,
+ 9, 32, 40, 41, 1802, 1851, 2058, 2107,
+ 48, 57, 9, 32, 40, 41, 2058, 2107,
+ 48, 57, 65, 70, 97, 102, 48, 57,
+ 65, 70, 97, 102, 9, 32, 40, 41,
+ 3082, 3131, 3338, 3387, 3594, 3643, 48, 57,
+ 65, 70, 97, 102, 2058, 1920, 2175, 2058,
+ 1920, 2175, 9, 32, 40, 41, 2058, 2107,
+ 48, 57, 2058, 1920, 2175, 97, 100, 101,
+ 105, 107, 110, 111, 112, 108, 112, 110,
32, 34, 44, 59, 9, 10, 40, 41,
- 99, 104, 32, 34, 44, 59, 9, 10,
- 40, 41, 112, 118, 52, 54, 104, 105,
- 110, 116, 32, 34, 44, 59, 9, 10,
- 40, 41, 104, 105, 110, 116, 32, 34,
- 44, 59, 9, 10, 40, 41, 101, 121,
- 48, 57, 32, 34, 44, 59, 9, 10,
- 40, 41, 48, 57, 111, 45, 100, 101,
- 102, 97, 117, 108, 116, 45, 97, 108,
- 112, 110, 32, 34, 44, 59, 9, 10,
- 40, 41, 111, 114, 116, 32, 34, 44,
- 59, 9, 10, 40, 41, 9, 32, 40,
- 41, 3082, 3131, 3338, 3387, 3594, 3643, 9,
- 32, 40, 41, 97, 101, 105, 107, 109,
- 110, 112, 3082, 3131, 3338, 3387, 3594, 3643,
- 108, 112, 110, 61, 32, 34, 59, 9,
- 10, 40, 41, 9, 32, 40, 41, 3082,
- 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175,
- 99, 104, 61, 34, 43, 47, 57, 65,
- 90, 97, 122, 43, 47, 57, 65, 90,
- 97, 122, 43, 47, 57, 65, 90, 97,
- 122, 43, 61, 47, 57, 65, 90, 97,
- 122, 43, 61, 47, 57, 65, 90, 97,
- 122, 34, 43, 47, 57, 65, 90, 97,
- 122, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 61, 43, 47, 57, 65,
- 90, 97, 122, 43, 61, 47, 57, 65,
- 90, 97, 122, 43, 61, 47, 57, 65,
- 90, 97, 122, 9, 32, 40, 41, 43,
- 3082, 3131, 3338, 3387, 3594, 3643, 47, 57,
- 65, 90, 97, 122, 61, 112, 118, 52,
- 54, 104, 105, 110, 116, 61, 34, 46,
- 48, 57, 46, 48, 57, 34, 44, 46,
- 48, 57, 46, 48, 57, 9, 32, 40,
- 41, 44, 46, 3082, 3131, 3338, 3387, 3594,
- 3643, 48, 57, 46, 48, 57, 104, 105,
- 110, 116, 61, 34, 46, 48, 58, 65,
- 70, 97, 102, 46, 48, 58, 65, 70,
- 97, 102, 34, 44, 46, 48, 58, 65,
- 70, 97, 102, 46, 48, 58, 65, 70,
- 97, 102, 9, 32, 40, 41, 44, 46,
- 3082, 3131, 3338, 3387, 3594, 3643, 48, 58,
- 65, 70, 97, 102, 46, 48, 58, 65,
- 70, 97, 102, 101, 121, 48, 57, 9,
- 32, 40, 41, 61, 3082, 3131, 3338, 3387,
- 3594, 3643, 48, 57, 32, 59, 9, 10,
- 40, 41, 9, 32, 40, 41, 3082, 3131,
- 3338, 3387, 3594, 3643, 97, 110, 100, 97,
- 116, 111, 114, 121, 61, 34, 65, 90,
- 97, 122, 65, 90, 97, 122, 34, 44,
- 65, 90, 97, 122, 9, 32, 40, 41,
- 44, 3082, 3131, 3338, 3387, 3594, 3643, 65,
- 90, 97, 122, 111, 45, 100, 101, 102,
- 97, 117, 108, 116, 45, 97, 108, 112,
- 110, 9, 32, 40, 41, 3082, 3131, 3338,
- 3387, 3594, 3643, 111, 114, 116, 61, 34,
- 48, 57, 48, 57, 34, 48, 57, 9,
+ 111, 104, 112, 97, 116, 104, 32, 34,
+ 44, 59, 9, 10, 40, 41, 99, 104,
+ 32, 34, 44, 59, 9, 10, 40, 41,
+ 112, 118, 52, 54, 104, 105, 110, 116,
+ 32, 34, 44, 59, 9, 10, 40, 41,
+ 104, 105, 110, 116, 32, 34, 44, 59,
+ 9, 10, 40, 41, 101, 121, 48, 57,
+ 32, 34, 44, 59, 9, 10, 40, 41,
+ 48, 57, 111, 45, 100, 101, 102, 97,
+ 117, 108, 116, 45, 97, 108, 112, 110,
+ 32, 34, 44, 59, 9, 10, 40, 41,
+ 104, 116, 116, 112, 32, 34, 44, 59,
+ 9, 10, 40, 41, 111, 114, 116, 32,
+ 34, 44, 59, 9, 10, 40, 41, 9,
32, 40, 41, 3082, 3131, 3338, 3387, 3594,
- 3643, 48, 57, 9, 32, 40, 41, 3082,
- 3131, 3338, 3387, 3594, 3643, -128, 8, 11,
- 58, 60, 127, 34, 68, 69, 73, 80,
- 82, 100, 101, 105, 112, 114, 48, 57,
- 32, 59, 9, 10, 40, 41, 48, 57,
- 72, 83, 104, 115, 32, 59, 9, 10,
- 40, 41, 65, 97, 32, 45, 59, 9,
- 10, 40, 41, 78, 110, 83, 115, 69,
- 101, 67, 99, 51, 45, 83, 115, 72,
- 104, 65, 97, 49, 32, 59, 9, 10,
- 40, 41, 67, 68, 99, 100, 67, 68,
- 99, 100, 45, 71, 103, 79, 111, 83,
- 115, 84, 116, 32, 59, 9, 10, 40,
- 41, 83, 115, 65, 97, 80, 112, 50,
- 51, 53, 54, 83, 115, 72, 104, 65,
- 97, 50, 53, 54, 32, 59, 9, 10,
- 40, 41, 56, 52, 83, 115, 72, 104,
- 65, 97, 51, 56, 52, 32, 59, 9,
- 10, 40, 41, 50, 52, 53, 53, 49,
- 57, 32, 59, 9, 10, 40, 41, 52,
- 56, 32, 59, 9, 10, 40, 41, 78,
- 110, 68, 100, 73, 105, 82, 114, 69,
- 101, 67, 99, 84, 116, 32, 59, 9,
- 10, 40, 41, 82, 114, 73, 105, 86,
- 118, 65, 97, 84, 116, 69, 101, 68,
- 79, 100, 111, 78, 110, 83, 115, 32,
- 59, 9, 10, 40, 41, 73, 105, 68,
- 100, 32, 59, 9, 10, 40, 41, 83,
- 115, 65, 97, 77, 83, 109, 115, 68,
- 100, 53, 32, 59, 9, 10, 40, 41,
- 72, 104, 65, 97, 49, 50, 53, 32,
- 45, 59, 9, 10, 40, 41, 78, 110,
- 83, 115, 69, 101, 67, 99, 51, 45,
- 83, 115, 72, 104, 65, 97, 49, 32,
- 59, 9, 10, 40, 41, 53, 54, 32,
- 59, 9, 10, 40, 41, 49, 50, 32,
- 59, 9, 10, 40, 41, 65, 73, 79,
- 80, 83, 85, 97, 105, 111, 112, 115,
- 117, 48, 57, 32, 59, 9, 10, 40,
- 41, 48, 57, 67, 99, 80, 112, 75,
- 107, 73, 105, 88, 120, 32, 59, 9,
- 10, 40, 41, 65, 80, 83, 97, 112,
- 115, 67, 99, 80, 112, 75, 107, 73,
- 105, 88, 120, 32, 59, 9, 10, 40,
- 41, 71, 75, 103, 107, 80, 112, 32,
- 59, 9, 10, 40, 41, 73, 105, 88,
- 120, 32, 59, 9, 10, 40, 41, 80,
- 112, 75, 107, 73, 105, 32, 59, 9,
- 10, 40, 41, 73, 105, 68, 100, 32,
- 59, 9, 10, 40, 41, 71, 75, 103,
- 107, 80, 112, 32, 59, 9, 10, 40,
- 41, 73, 105, 88, 120, 32, 59, 9,
- 10, 40, 41, 80, 112, 75, 107, 73,
- 105, 32, 59, 9, 10, 40, 41, 82,
- 114, 73, 105, 32, 59, 9, 10, 40,
- 41, 46, 48, 57, 32, 46, 59, 9,
- 10, 40, 41, 48, 57, 42, 92, 95,
- 45, 57, 64, 90, 97, 122, 32, 59,
- 9, 10, 40, 41, 42, 92, 95, 45,
- 57, 64, 90, 97, 122, 9, 32, 40,
- 41, 2058, 2107, 9, 32, 40, 41, 42,
- 92, 95, 2058, 2107, 45, 57, 64, 90,
- 97, 122, 9, 32, 40, 41, 2058, 2107,
- 9, 32, 40, 41, 2058, 2107, 48, 57,
- 9, 32, 40, 41, 2058, 2107, 48, 57,
+ 3643, 9, 32, 40, 41, 97, 100, 101,
+ 105, 107, 109, 110, 111, 112, 3082, 3131,
+ 3338, 3387, 3594, 3643, 108, 112, 110, 61,
+ 32, 34, 59, 9, 10, 40, 41, 9,
+ 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
+ 3643, 2058, 1920, 2175, 111, 104, 112, 97,
+ 116, 104, 61, 32, 34, 59, 9, 10,
+ 40, 41, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 9, 32, 40, 41,
+ 3082, 3131, 3338, 3387, 3594, 3643, -128, 8,
+ 11, 58, 60, 127, 34, 9, 32, 40,
+ 41, 3082, 3131, 3338, 3387, 3594, 3643, 99,
+ 104, 61, 34, 43, 47, 57, 65, 90,
+ 97, 122, 43, 47, 57, 65, 90, 97,
+ 122, 43, 47, 57, 65, 90, 97, 122,
+ 43, 61, 47, 57, 65, 90, 97, 122,
+ 43, 61, 47, 57, 65, 90, 97, 122,
+ 34, 43, 47, 57, 65, 90, 97, 122,
+ 61, 43, 47, 57, 65, 90, 97, 122,
+ 43, 61, 47, 57, 65, 90, 97, 122,
+ 43, 61, 47, 57, 65, 90, 97, 122,
+ 9, 32, 40, 41, 43, 3082, 3131, 3338,
+ 3387, 3594, 3643, 47, 57, 65, 90, 97,
+ 122, 61, 112, 118, 52, 54, 104, 105,
+ 110, 116, 61, 34, 46, 48, 57, 46,
+ 48, 57, 34, 44, 46, 48, 57, 46,
+ 48, 57, 9, 32, 40, 41, 44, 46,
+ 3082, 3131, 3338, 3387, 3594, 3643, 48, 57,
+ 46, 48, 57, 104, 105, 110, 116, 61,
+ 34, 46, 48, 58, 65, 70, 97, 102,
+ 46, 48, 58, 65, 70, 97, 102, 34,
+ 44, 46, 48, 58, 65, 70, 97, 102,
+ 46, 48, 58, 65, 70, 97, 102, 9,
+ 32, 40, 41, 44, 46, 3082, 3131, 3338,
+ 3387, 3594, 3643, 48, 58, 65, 70, 97,
+ 102, 46, 48, 58, 65, 70, 97, 102,
+ 101, 121, 48, 57, 9, 32, 40, 41,
+ 61, 3082, 3131, 3338, 3387, 3594, 3643, 48,
+ 57, 32, 59, 9, 10, 40, 41, 97,
+ 110, 100, 97, 116, 111, 114, 121, 61,
+ 34, 65, 90, 97, 122, 65, 90, 97,
+ 122, 34, 44, 65, 90, 97, 122, 9,
+ 32, 40, 41, 44, 3082, 3131, 3338, 3387,
+ 3594, 3643, 65, 90, 97, 122, 111, 45,
+ 100, 101, 102, 97, 117, 108, 116, 45,
+ 97, 108, 112, 110, 9, 32, 40, 41,
+ 3082, 3131, 3338, 3387, 3594, 3643, 104, 116,
+ 116, 112, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 111, 114, 116, 61,
+ 34, 48, 57, 48, 57, 34, 48, 57,
+ 9, 32, 40, 41, 3082, 3131, 3338, 3387,
+ 3594, 3643, 48, 57, 9, 32, 40, 41,
+ 3082, 3131, 3338, 3387, 3594, 3643, -128, 8,
+ 11, 58, 60, 127, 34, 68, 69, 73,
+ 80, 82, 100, 101, 105, 112, 114, 48,
+ 57, 32, 59, 9, 10, 40, 41, 48,
+ 57, 72, 83, 104, 115, 32, 59, 9,
+ 10, 40, 41, 65, 97, 32, 45, 59,
+ 9, 10, 40, 41, 78, 110, 83, 115,
+ 69, 101, 67, 99, 51, 45, 83, 115,
+ 72, 104, 65, 97, 49, 32, 59, 9,
+ 10, 40, 41, 67, 68, 99, 100, 67,
+ 68, 99, 100, 45, 71, 103, 79, 111,
+ 83, 115, 84, 116, 32, 59, 9, 10,
+ 40, 41, 83, 115, 65, 97, 80, 112,
+ 50, 51, 53, 54, 83, 115, 72, 104,
+ 65, 97, 50, 53, 54, 32, 59, 9,
+ 10, 40, 41, 56, 52, 83, 115, 72,
+ 104, 65, 97, 51, 56, 52, 32, 59,
+ 9, 10, 40, 41, 50, 52, 53, 53,
+ 49, 57, 32, 59, 9, 10, 40, 41,
+ 52, 56, 32, 59, 9, 10, 40, 41,
+ 78, 110, 68, 100, 73, 105, 82, 114,
+ 69, 101, 67, 99, 84, 116, 32, 59,
+ 9, 10, 40, 41, 82, 114, 73, 105,
+ 86, 118, 65, 97, 84, 116, 69, 101,
+ 68, 79, 100, 111, 78, 110, 83, 115,
+ 32, 59, 9, 10, 40, 41, 73, 105,
+ 68, 100, 32, 59, 9, 10, 40, 41,
+ 83, 115, 65, 97, 77, 83, 109, 115,
+ 68, 100, 53, 32, 59, 9, 10, 40,
+ 41, 72, 104, 65, 97, 49, 50, 53,
+ 32, 45, 59, 9, 10, 40, 41, 78,
+ 110, 83, 115, 69, 101, 67, 99, 51,
+ 45, 83, 115, 72, 104, 65, 97, 49,
+ 32, 59, 9, 10, 40, 41, 53, 54,
+ 32, 59, 9, 10, 40, 41, 49, 50,
+ 32, 59, 9, 10, 40, 41, 65, 73,
+ 79, 80, 83, 85, 97, 105, 111, 112,
+ 115, 117, 48, 57, 32, 59, 9, 10,
+ 40, 41, 48, 57, 67, 99, 80, 112,
+ 75, 107, 73, 105, 88, 120, 32, 59,
+ 9, 10, 40, 41, 65, 80, 83, 97,
+ 112, 115, 67, 99, 80, 112, 75, 107,
+ 73, 105, 88, 120, 32, 59, 9, 10,
+ 40, 41, 71, 75, 103, 107, 80, 112,
+ 32, 59, 9, 10, 40, 41, 73, 105,
+ 88, 120, 32, 59, 9, 10, 40, 41,
+ 80, 112, 75, 107, 73, 105, 32, 59,
+ 9, 10, 40, 41, 73, 105, 68, 100,
+ 32, 59, 9, 10, 40, 41, 71, 75,
+ 103, 107, 80, 112, 32, 59, 9, 10,
+ 40, 41, 73, 105, 88, 120, 32, 59,
+ 9, 10, 40, 41, 80, 112, 75, 107,
+ 73, 105, 32, 59, 9, 10, 40, 41,
+ 82, 114, 73, 105, 32, 59, 9, 10,
+ 40, 41, 46, 48, 57, 32, 46, 59,
+ 9, 10, 40, 41, 48, 57, 42, 92,
+ 95, 45, 57, 64, 90, 97, 122, 32,
+ 59, 9, 10, 40, 41, 42, 92, 95,
+ 45, 57, 64, 90, 97, 122, 9, 32,
+ 40, 41, 2058, 2107, 9, 32, 40, 41,
+ 42, 92, 95, 2058, 2107, 45, 57, 64,
+ 90, 97, 122, 9, 32, 40, 41, 2058,
+ 2107, 9, 32, 40, 41, 2058, 2107, 48,
+ 57, 9, 32, 40, 41, 2058, 2107, 48,
+ 57, 9, 32, 40, 41, 2058, 2107, 48,
+ 57, 9, 32, 40, 41, 68, 72, 77,
+ 83, 87, 100, 104, 109, 115, 119, 2058,
+ 2107, 48, 57, 9, 32, 40, 41, 2058,
+ 2107, 48, 57, 9, 32, 40, 41, 68,
+ 72, 77, 83, 87, 100, 104, 109, 115,
+ 119, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 68, 72, 77, 83, 87, 100, 104,
+ 109, 115, 119, 2058, 2107, 48, 57, 9,
+ 32, 40, 41, 2058, 2107, 48, 57, 32,
+ 59, 68, 72, 77, 83, 87, 100, 104,
+ 109, 115, 119, 9, 10, 40, 41, 48,
+ 57, 32, 59, 9, 10, 40, 41, 48,
+ 57, 68, 72, 77, 83, 87, 100, 104,
+ 109, 115, 119, 48, 57, 32, 59, 9,
+ 10, 40, 41, 48, 57, 2058, 1920, 2175,
9, 32, 40, 41, 2058, 2107, 48, 57,
- 9, 32, 40, 41, 68, 72, 77, 83,
- 87, 100, 104, 109, 115, 119, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 68, 72,
- 77, 83, 87, 100, 104, 109, 115, 119,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
68, 72, 77, 83, 87, 100, 104, 109,
- 115, 119, 2058, 2107, 48, 57, 9, 32,
- 40, 41, 2058, 2107, 48, 57, 32, 59,
- 68, 72, 77, 83, 87, 100, 104, 109,
- 115, 119, 9, 10, 40, 41, 48, 57,
- 32, 59, 9, 10, 40, 41, 48, 57,
- 68, 72, 77, 83, 87, 100, 104, 109,
- 115, 119, 48, 57, 32, 59, 9, 10,
- 40, 41, 48, 57, 2058, 1920, 2175, 9,
+ 115, 119, 48, 57, 9, 32, 40, 41,
+ 2058, 2107, 48, 57, 2058, 1920, 2175, 9,
32, 40, 41, 2058, 2107, 48, 57, 68,
72, 77, 83, 87, 100, 104, 109, 115,
119, 48, 57, 9, 32, 40, 41, 2058,
@@ -2747,66 +2812,67 @@ static const short _zone_scanner_trans_keys[] = {
40, 41, 2058, 2107, 48, 57, 68, 72,
77, 83, 87, 100, 104, 109, 115, 119,
48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 2058, 1920, 2175, 9, 32, 40,
- 41, 2058, 2107, 48, 57, 68, 72, 77,
- 83, 87, 100, 104, 109, 115, 119, 48,
- 57, 9, 32, 40, 41, 2058, 2107, 48,
- 57, 2058, 1920, 2175, 2058, 1920, 2175, 2058,
- 1920, 2175, 32, 59, 9, 10, 40, 41,
- 9, 32, 40, 41, 2058, 2107, 9, 32,
- 40, 41, 2058, 2107, -128, 8, 11, 58,
- 60, 127, 32, 59, 9, 10, 40, 41,
- 2058, 1920, 2175, 42, 92, 95, 45, 57,
- 64, 90, 97, 122, 9, 32, 40, 41,
- 2058, 2107, 9, 32, 40, 41, 42, 92,
- 95, 2058, 2107, 45, 57, 64, 90, 97,
- 122, 32, 59, 9, 10, 40, 41, 2058,
- 1920, 2175, 48, 57, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 42, 92, 95, 2058, 2107, 45, 57, 64,
- 90, 97, 122, 32, 59, 9, 10, 40,
- 41, 2058, 1920, 2175, 32, 59, 9, 10,
- 40, 41, 9, 32, 40, 41, 3082, 3131,
- 3338, 3387, 3594, 3643, 9, 32, 40, 41,
- 3082, 3131, 3338, 3387, 3594, 3643, -128, 8,
- 11, 58, 60, 127, 2058, 1920, 2175, 46,
- 48, 58, 65, 70, 97, 102, 32, 46,
- 59, 9, 10, 40, 41, 48, 58, 65,
- 70, 97, 102, 48, 57, 9, 32, 40,
+ 48, 57, 2058, 1920, 2175, 2058, 1920, 2175,
+ 2058, 1920, 2175, 32, 59, 9, 10, 40,
+ 41, 9, 32, 40, 41, 2058, 2107, 9,
+ 32, 40, 41, 2058, 2107, -128, 8, 11,
+ 58, 60, 127, 32, 59, 9, 10, 40,
+ 41, 2058, 1920, 2175, 42, 92, 95, 45,
+ 57, 64, 90, 97, 122, 9, 32, 40,
+ 41, 2058, 2107, 9, 32, 40, 41, 42,
+ 92, 95, 2058, 2107, 45, 57, 64, 90,
+ 97, 122, 32, 59, 9, 10, 40, 41,
+ 2058, 1920, 2175, 48, 57, 9, 32, 40,
41, 2058, 2107, 48, 57, 9, 32, 40,
- 41, 78, 83, 2058, 2107, 48, 57, 9,
- 32, 40, 41, 2058, 2107, 48, 57, 9,
- 32, 40, 41, 78, 83, 2058, 2107, 48,
- 57, 9, 32, 40, 41, 46, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 78, 83,
- 2058, 2107, 9, 32, 40, 41, 2058, 2107,
- 9, 32, 40, 41, 2058, 2107, 48, 57,
+ 41, 42, 92, 95, 2058, 2107, 45, 57,
+ 64, 90, 97, 122, 32, 59, 9, 10,
+ 40, 41, 2058, 1920, 2175, 32, 59, 9,
+ 10, 40, 41, 9, 32, 40, 41, 3082,
+ 3131, 3338, 3387, 3594, 3643, 9, 32, 40,
+ 41, 3082, 3131, 3338, 3387, 3594, 3643, -128,
+ 8, 11, 58, 60, 127, 2058, 1920, 2175,
+ 46, 48, 58, 65, 70, 97, 102, 32,
+ 46, 59, 9, 10, 40, 41, 48, 58,
+ 65, 70, 97, 102, 48, 57, 9, 32,
+ 40, 41, 2058, 2107, 48, 57, 9, 32,
+ 40, 41, 78, 83, 2058, 2107, 48, 57,
9, 32, 40, 41, 2058, 2107, 48, 57,
- 9, 32, 40, 41, 69, 87, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 69, 87,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 46, 2058, 2107, 48, 57, 9, 32, 40,
- 41, 69, 87, 2058, 2107, 9, 32, 40,
- 41, 2058, 2107, 9, 32, 40, 41, 45,
- 2058, 2107, 48, 57, 48, 57, 9, 32,
- 40, 41, 46, 109, 3082, 3131, 3338, 3387,
- 3594, 3643, 48, 57, 9, 32, 40, 41,
- 3082, 3131, 3338, 3387, 3594, 3643, 48, 57,
- 9, 32, 40, 41, 46, 109, 3082, 3131,
- 3338, 3387, 3594, 3643, 48, 57, 9, 32,
- 40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
- 48, 57, 9, 32, 40, 41, 46, 109,
- 3082, 3131, 3338, 3387, 3594, 3643, 48, 57,
- 9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 48, 57, 9, 32, 40, 41,
- 46, 109, 3082, 3131, 3338, 3387, 3594, 3643,
- 48, 57, 9, 32, 40, 41, 3082, 3131,
- 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9,
- 32, 40, 41, 109, 3082, 3131, 3338, 3387,
- 3594, 3643, 48, 57, 9, 32, 40, 41,
+ 9, 32, 40, 41, 78, 83, 2058, 2107,
+ 48, 57, 9, 32, 40, 41, 46, 2058,
+ 2107, 48, 57, 9, 32, 40, 41, 78,
+ 83, 2058, 2107, 9, 32, 40, 41, 2058,
+ 2107, 9, 32, 40, 41, 2058, 2107, 48,
+ 57, 9, 32, 40, 41, 2058, 2107, 48,
+ 57, 9, 32, 40, 41, 69, 87, 2058,
+ 2107, 48, 57, 9, 32, 40, 41, 2058,
+ 2107, 48, 57, 9, 32, 40, 41, 69,
+ 87, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 46, 2058, 2107, 48, 57, 9, 32,
+ 40, 41, 69, 87, 2058, 2107, 9, 32,
+ 40, 41, 2058, 2107, 9, 32, 40, 41,
+ 45, 2058, 2107, 48, 57, 48, 57, 9,
+ 32, 40, 41, 46, 109, 3082, 3131, 3338,
+ 3387, 3594, 3643, 48, 57, 9, 32, 40,
+ 41, 3082, 3131, 3338, 3387, 3594, 3643, 48,
+ 57, 9, 32, 40, 41, 46, 109, 3082,
+ 3131, 3338, 3387, 3594, 3643, 48, 57, 9,
+ 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
+ 3643, 48, 57, 9, 32, 40, 41, 46,
109, 3082, 3131, 3338, 3387, 3594, 3643, 48,
- 57, 2058, 1920, 2175, 9, 32, 40, 41,
+ 57, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 48, 57, 9, 32, 40,
+ 41, 46, 109, 3082, 3131, 3338, 3387, 3594,
+ 3643, 48, 57, 9, 32, 40, 41, 3082,
+ 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175,
+ 9, 32, 40, 41, 109, 3082, 3131, 3338,
+ 3387, 3594, 3643, 48, 57, 9, 32, 40,
+ 41, 109, 3082, 3131, 3338, 3387, 3594, 3643,
+ 48, 57, 2058, 1920, 2175, 9, 32, 40,
+ 41, 109, 3082, 3131, 3338, 3387, 3594, 3643,
+ 48, 57, 9, 32, 40, 41, 109, 3082,
+ 3131, 3338, 3387, 3594, 3643, 48, 57, 9,
+ 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
+ 3643, 2058, 1920, 2175, 9, 32, 40, 41,
109, 3082, 3131, 3338, 3387, 3594, 3643, 48,
57, 9, 32, 40, 41, 109, 3082, 3131,
3338, 3387, 3594, 3643, 48, 57, 9, 32,
@@ -2816,285 +2882,267 @@ static const short _zone_scanner_trans_keys[] = {
9, 32, 40, 41, 109, 3082, 3131, 3338,
3387, 3594, 3643, 48, 57, 9, 32, 40,
41, 3082, 3131, 3338, 3387, 3594, 3643, 2058,
- 1920, 2175, 9, 32, 40, 41, 109, 3082,
- 3131, 3338, 3387, 3594, 3643, 48, 57, 9,
- 32, 40, 41, 109, 3082, 3131, 3338, 3387,
- 3594, 3643, 48, 57, 9, 32, 40, 41,
- 3082, 3131, 3338, 3387, 3594, 3643, 2058, 1920,
- 2175, 9, 32, 40, 41, 2058, 2107, 2058,
1920, 2175, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 2058, 1920, 2175, 2058, 1920, 2175,
2058, 1920, 2175, 9, 32, 40, 41, 2058,
- 2107, 2058, 1920, 2175, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 2058, 1920, 2175, 2058,
- 1920, 2175, 48, 57, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 42, 92, 95, 2058, 2107, 45, 57, 64,
- 90, 97, 122, 32, 59, 9, 10, 40,
- 41, 2058, 1920, 2175, 2058, 1920, 2175, 2058,
+ 2107, 48, 57, 9, 32, 40, 41, 2058,
+ 2107, 48, 57, 2058, 1920, 2175, 2058, 1920,
+ 2175, 2058, 1920, 2175, 9, 32, 40, 41,
+ 2058, 2107, 2058, 1920, 2175, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 2058, 1920, 2175,
+ 2058, 1920, 2175, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 42, 92, 95, 2058, 2107, 45, 57,
+ 64, 90, 97, 122, 32, 59, 9, 10,
+ 40, 41, 2058, 1920, 2175, 2058, 1920, 2175,
+ 2058, 1920, 2175, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, -128, 8, 11, 58, 60,
+ 127, 9, 32, 40, 41, 2058, 2107, 9,
+ 32, 40, 41, 2058, 2107, -128, 8, 11,
+ 58, 60, 127, 9, 32, 40, 41, 2058,
+ 2107, 9, 32, 40, 41, 2058, 2107, -128,
+ 8, 11, 58, 60, 127, 9, 32, 40,
+ 41, 2058, 2107, 9, 32, 40, 41, 42,
+ 92, 95, 2058, 2107, 45, 57, 64, 90,
+ 97, 122, 32, 59, 9, 10, 40, 41,
+ 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920,
+ 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48,
+ 57, 65, 90, 97, 122, 9, 32, 40,
+ 41, 2058, 2107, 9, 32, 40, 41, 2058,
+ 2107, 48, 57, 9, 32, 40, 41, 2058,
+ 2107, 48, 57, 9, 32, 40, 41, 2058,
+ 2107, 48, 57, 65, 90, 97, 122, 9,
+ 32, 40, 41, 2058, 2107, 9, 32, 40,
+ 41, 43, 2058, 2107, 47, 57, 65, 90,
+ 97, 122, 2570, 2619, 2058, 1920, 2175, 2058,
+ 1920, 2175, 2058, 1920, 2175, 9, 32, 33,
+ 40, 41, 49, 50, 3082, 3131, 3338, 3387,
+ 3594, 3643, 49, 50, 58, 46, 48, 57,
+ 47, 46, 57, 48, 57, 9, 32, 40,
+ 41, 3082, 3131, 3338, 3387, 3594, 3643, 48,
+ 57, 2058, 1920, 2175, 58, 46, 48, 58,
+ 65, 70, 97, 102, 47, 46, 58, 65,
+ 70, 97, 102, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 65, 90, 97,
+ 122, 9, 32, 40, 41, 2058, 2107, 9,
+ 32, 40, 41, 2058, 2107, 48, 57, 9,
+ 32, 40, 41, 2058, 2107, 48, 57, 9,
+ 32, 40, 41, 2058, 2107, 48, 57, 65,
+ 70, 97, 102, 48, 57, 65, 70, 97,
+ 102, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 48, 57, 65, 70, 97,
+ 102, 2058, 1920, 2175, 2058, 1920, 2175, 2058,
+ 1920, 2175, 2058, 1920, 2175, 48, 57, 9,
+ 32, 40, 41, 2058, 2107, 48, 57, 9,
+ 32, 40, 41, 2058, 2107, 48, 57, 9,
+ 32, 40, 41, 2058, 2107, 48, 57, 9,
+ 32, 40, 41, 2058, 2107, 48, 57, 65,
+ 70, 97, 102, 48, 57, 65, 70, 97,
+ 102, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 48, 57, 65, 70, 97,
+ 102, 2058, 1920, 2175, 2058, 1920, 2175, 2058,
1920, 2175, 48, 57, 9, 32, 40, 41,
2058, 2107, 48, 57, 9, 32, 40, 41,
+ 48, 49, 50, 51, 2058, 2107, 9, 32,
+ 40, 41, 2058, 2107, 9, 32, 40, 41,
2058, 2107, 48, 57, 9, 32, 40, 41,
2058, 2107, 48, 57, 9, 32, 40, 41,
- 2058, 2107, -128, 8, 11, 58, 60, 127,
+ 46, 2058, 2107, 7177, 7200, 7208, 7209, 7433,
+ 7456, 7464, 7465, 7689, 7712, 7720, 7721, 10506,
+ 10555, 10762, 10811, 11274, 11323, 11530, 11579, 11786,
+ 11835, 12298, 12347, 12554, 12603, 12810, 12859, 13322,
+ 13371, 13578, 13627, 13834, 13883, 4105, 4128, 4136,
+ 4137, 4139, 5130, 5179, 4143, 4153, 4161, 4186,
+ 4193, 4218, 2570, 2619, 5130, 4992, 5247, 5641,
+ 5664, 5672, 5673, 14602, 14651, 14858, 14907, 15370,
+ 15419, 15626, 15675, 15882, 15931, 6666, 6528, 6783,
+ 4139, 7177, 7200, 7208, 7209, 7433, 7456, 7464,
+ 7465, 7689, 7712, 7720, 7721, 10506, 10555, 10762,
+ 10811, 11274, 11323, 11530, 11579, 11786, 11835, 12298,
+ 12347, 12554, 12603, 12810, 12859, 13322, 13371, 13578,
+ 13627, 13834, 13883, 4143, 4153, 4161, 4186, 4193,
+ 4218, 8714, 9226, 9738, 8576, 8831, 9088, 9343,
+ 9600, 9855, 2058, 1920, 2175, 2058, 1920, 2175,
9, 32, 40, 41, 2058, 2107, 9, 32,
- 40, 41, 2058, 2107, -128, 8, 11, 58,
- 60, 127, 9, 32, 40, 41, 2058, 2107,
- 9, 32, 40, 41, 2058, 2107, -128, 8,
- 11, 58, 60, 127, 9, 32, 40, 41,
- 2058, 2107, 9, 32, 40, 41, 42, 92,
- 95, 2058, 2107, 45, 57, 64, 90, 97,
- 122, 32, 59, 9, 10, 40, 41, 2058,
- 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175,
- 2058, 1920, 2175, 2058, 1920, 2175, 48, 57,
- 65, 90, 97, 122, 9, 32, 40, 41,
+ 40, 41, 2058, 2107, 48, 57, 9, 32,
+ 40, 41, 2058, 2107, 48, 57, 9, 32,
+ 40, 41, 46, 2058, 2107, 48, 57, 46,
+ 7177, 7200, 7208, 7209, 7433, 7456, 7464, 7465,
+ 7689, 7712, 7720, 7721, 10506, 10555, 10762, 10811,
+ 11274, 11323, 11530, 11579, 11786, 11835, 12298, 12347,
+ 12554, 12603, 12810, 12859, 13322, 13371, 13578, 13627,
+ 13834, 13883, 48, 57, 2058, 1920, 2175, 2058,
+ 1920, 2175, 9, 32, 40, 41, 2058, 2107,
+ 9, 32, 40, 41, 2058, 2107, 48, 57,
+ 9, 32, 40, 41, 2058, 2107, 48, 57,
+ 9, 32, 40, 41, 46, 2058, 2107, 48,
+ 58, 65, 70, 97, 102, 46, 7177, 7200,
+ 7208, 7209, 7433, 7456, 7464, 7465, 7689, 7712,
+ 7720, 7721, 10506, 10555, 10762, 10811, 11274, 11323,
+ 11530, 11579, 11786, 11835, 12298, 12347, 12554, 12603,
+ 12810, 12859, 13322, 13371, 13578, 13627, 13834, 13883,
+ 48, 58, 65, 70, 97, 102, 2058, 1920,
+ 2175, 2058, 1920, 2175, 9, 32, 40, 41,
2058, 2107, 9, 32, 40, 41, 2058, 2107,
48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 65, 90, 97, 122, 9, 32,
- 40, 41, 2058, 2107, 9, 32, 40, 41,
- 43, 2058, 2107, 47, 57, 65, 90, 97,
- 122, 2570, 2619, 2058, 1920, 2175, 2058, 1920,
- 2175, 2058, 1920, 2175, 9, 32, 33, 40,
- 41, 49, 50, 3082, 3131, 3338, 3387, 3594,
- 3643, 49, 50, 58, 46, 48, 57, 47,
- 46, 57, 48, 57, 9, 32, 40, 41,
- 3082, 3131, 3338, 3387, 3594, 3643, 48, 57,
- 2058, 1920, 2175, 58, 46, 48, 58, 65,
- 70, 97, 102, 47, 46, 58, 65, 70,
- 97, 102, 48, 57, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
+ 48, 57, 9, 32, 40, 41, 42, 92,
+ 95, 2058, 2107, 45, 57, 64, 90, 97,
+ 122, 7177, 7200, 7208, 7209, 7433, 7456, 7464,
+ 7465, 7689, 7712, 7720, 7721, 10506, 10555, 10762,
+ 10811, 11274, 11323, 11530, 11579, 11786, 11835, 12298,
+ 12347, 12554, 12603, 12810, 12859, 13322, 13371, 13578,
+ 13627, 13834, 13883, 2058, 1920, 2175, 2058, 1920,
+ 2175, 2058, 1920, 2175, 65, 67, 68, 69,
+ 72, 73, 75, 76, 77, 78, 79, 80,
+ 82, 83, 84, 85, 87, 90, 97, 99,
+ 100, 101, 104, 105, 107, 108, 109, 110,
+ 111, 112, 114, 115, 116, 117, 119, 122,
+ 9, 32, 40, 41, 65, 70, 80, 97,
+ 102, 112, 2058, 2107, 9, 32, 40, 41,
2058, 2107, 48, 57, 65, 90, 97, 122,
9, 32, 40, 41, 2058, 2107, 9, 32,
40, 41, 2058, 2107, 48, 57, 9, 32,
40, 41, 2058, 2107, 48, 57, 9, 32,
- 40, 41, 2058, 2107, 48, 57, 65, 70,
- 97, 102, 48, 57, 65, 70, 97, 102,
- 9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 48, 57, 65, 70, 97, 102,
- 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920,
- 2175, 2058, 1920, 2175, 48, 57, 9, 32,
40, 41, 2058, 2107, 48, 57, 9, 32,
40, 41, 2058, 2107, 48, 57, 9, 32,
40, 41, 2058, 2107, 48, 57, 9, 32,
- 40, 41, 2058, 2107, 48, 57, 65, 70,
- 97, 102, 48, 57, 65, 70, 97, 102,
- 9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 48, 57, 65, 70, 97, 102,
- 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920,
- 2175, 48, 57, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 9, 32, 40, 41, 48,
- 49, 50, 51, 2058, 2107, 9, 32, 40,
- 41, 2058, 2107, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 9, 32, 40, 41, 46,
- 2058, 2107, 7177, 7200, 7208, 7209, 7433, 7456,
- 7464, 7465, 7689, 7712, 7720, 7721, 10506, 10555,
- 10762, 10811, 11274, 11323, 11530, 11579, 11786, 11835,
- 12298, 12347, 12554, 12603, 12810, 12859, 13322, 13371,
- 13578, 13627, 13834, 13883, 4105, 4128, 4136, 4137,
- 4139, 5130, 5179, 4143, 4153, 4161, 4186, 4193,
- 4218, 2570, 2619, 5130, 4992, 5247, 5641, 5664,
- 5672, 5673, 14602, 14651, 14858, 14907, 15370, 15419,
- 15626, 15675, 15882, 15931, 6666, 6528, 6783, 4139,
- 7177, 7200, 7208, 7209, 7433, 7456, 7464, 7465,
- 7689, 7712, 7720, 7721, 10506, 10555, 10762, 10811,
- 11274, 11323, 11530, 11579, 11786, 11835, 12298, 12347,
- 12554, 12603, 12810, 12859, 13322, 13371, 13578, 13627,
- 13834, 13883, 4143, 4153, 4161, 4186, 4193, 4218,
- 8714, 9226, 9738, 8576, 8831, 9088, 9343, 9600,
- 9855, 2058, 1920, 2175, 2058, 1920, 2175, 9,
- 32, 40, 41, 2058, 2107, 9, 32, 40,
- 41, 2058, 2107, 48, 57, 9, 32, 40,
- 41, 2058, 2107, 48, 57, 9, 32, 40,
- 41, 46, 2058, 2107, 48, 57, 46, 7177,
- 7200, 7208, 7209, 7433, 7456, 7464, 7465, 7689,
- 7712, 7720, 7721, 10506, 10555, 10762, 10811, 11274,
- 11323, 11530, 11579, 11786, 11835, 12298, 12347, 12554,
- 12603, 12810, 12859, 13322, 13371, 13578, 13627, 13834,
- 13883, 48, 57, 2058, 1920, 2175, 2058, 1920,
- 2175, 9, 32, 40, 41, 2058, 2107, 9,
- 32, 40, 41, 2058, 2107, 48, 57, 9,
- 32, 40, 41, 2058, 2107, 48, 57, 9,
- 32, 40, 41, 46, 2058, 2107, 48, 58,
- 65, 70, 97, 102, 46, 7177, 7200, 7208,
- 7209, 7433, 7456, 7464, 7465, 7689, 7712, 7720,
- 7721, 10506, 10555, 10762, 10811, 11274, 11323, 11530,
- 11579, 11786, 11835, 12298, 12347, 12554, 12603, 12810,
- 12859, 13322, 13371, 13578, 13627, 13834, 13883, 48,
- 58, 65, 70, 97, 102, 2058, 1920, 2175,
- 2058, 1920, 2175, 9, 32, 40, 41, 2058,
- 2107, 9, 32, 40, 41, 2058, 2107, 48,
- 57, 9, 32, 40, 41, 2058, 2107, 48,
- 57, 9, 32, 40, 41, 42, 92, 95,
- 2058, 2107, 45, 57, 64, 90, 97, 122,
- 7177, 7200, 7208, 7209, 7433, 7456, 7464, 7465,
- 7689, 7712, 7720, 7721, 10506, 10555, 10762, 10811,
- 11274, 11323, 11530, 11579, 11786, 11835, 12298, 12347,
- 12554, 12603, 12810, 12859, 13322, 13371, 13578, 13627,
- 13834, 13883, 2058, 1920, 2175, 2058, 1920, 2175,
- 2058, 1920, 2175, 65, 67, 68, 69, 72,
- 73, 75, 76, 77, 78, 79, 80, 82,
- 83, 84, 85, 90, 97, 99, 100, 101,
- 104, 105, 107, 108, 109, 110, 111, 112,
- 114, 115, 116, 117, 122, 9, 32, 40,
- 41, 65, 70, 80, 97, 102, 112, 2058,
- 2107, 9, 32, 40, 41, 2058, 2107, 48,
- 57, 65, 90, 97, 122, 9, 32, 40,
- 41, 2058, 2107, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 9, 32, 40, 41, 42,
- 92, 95, 2058, 2107, 45, 57, 64, 90,
- 97, 122, 9, 32, 40, 41, 2058, 2107,
- 9, 32, 40, 41, 43, 2058, 2107, 47,
- 57, 65, 90, 97, 122, 2570, 2619, 2058,
- 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175,
+ 40, 41, 2058, 2107, 48, 57, 9, 32,
+ 40, 41, 2058, 2107, 48, 57, 9, 32,
+ 40, 41, 2058, 2107, 48, 57, 9, 32,
+ 40, 41, 2058, 2107, 48, 57, 9, 32,
+ 40, 41, 2058, 2107, 48, 57, 9, 32,
+ 40, 41, 42, 92, 95, 2058, 2107, 45,
+ 57, 64, 90, 97, 122, 9, 32, 40,
+ 41, 2058, 2107, 9, 32, 40, 41, 43,
+ 2058, 2107, 47, 57, 65, 90, 97, 122,
+ 2570, 2619, 2058, 1920, 2175, 2058, 1920, 2175,
2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920,
- 2175, 2058, 1920, 2175, 2058, 1920, 2175, 65,
- 97, 65, 97, 9, 32, 40, 41, 2058,
- 2107, 83, 115, 68, 100, 66, 98, 9,
- 32, 40, 41, 2058, 2107, 76, 108, 9,
- 32, 40, 41, 2058, 2107, 65, 68, 69,
- 78, 83, 97, 100, 101, 110, 115, 65,
- 97, 9, 32, 40, 41, 2058, 2107, 78,
- 83, 110, 115, 83, 115, 75, 107, 69,
- 101, 89, 121, 9, 32, 40, 41, 2058,
- 2107, 9, 32, 40, 41, 2058, 2107, 82,
- 114, 84, 116, 9, 32, 40, 41, 2058,
- 2107, 65, 97, 77, 109, 69, 101, 9,
- 32, 40, 41, 2058, 2107, 89, 121, 78,
- 110, 67, 99, 9, 32, 40, 41, 2058,
- 2107, 72, 78, 83, 104, 110, 115, 67,
- 99, 73, 105, 68, 100, 9, 32, 40,
- 41, 2058, 2107, 65, 83, 97, 115, 77,
- 109, 69, 101, 9, 32, 40, 41, 2058,
- 2107, 75, 107, 69, 101, 89, 121, 9,
- 32, 40, 41, 2058, 2107, 9, 32, 40,
- 41, 2058, 2107, 85, 117, 73, 105, 52,
- 54, 56, 9, 32, 40, 41, 2058, 2107,
- 52, 9, 32, 40, 41, 2058, 2107, 73,
- 84, 105, 116, 78, 110, 70, 102, 79,
- 111, 9, 32, 40, 41, 2058, 2107, 84,
- 116, 80, 112, 83, 115, 9, 32, 40,
- 41, 2058, 2107, 80, 112, 83, 115, 69,
- 101, 67, 99, 75, 107, 69, 101, 89,
- 121, 9, 32, 40, 41, 2058, 2107, 69,
- 88, 101, 120, 89, 121, 9, 32, 40,
- 41, 2058, 2107, 9, 32, 40, 41, 2058,
- 2107, 51, 54, 79, 80, 111, 112, 50,
- 9, 32, 40, 41, 2058, 2107, 52, 9,
- 32, 40, 41, 2058, 2107, 67, 99, 9,
- 32, 40, 41, 2058, 2107, 9, 32, 40,
- 41, 2058, 2107, 73, 88, 105, 120, 78,
- 110, 70, 102, 79, 111, 9, 32, 40,
- 41, 2058, 2107, 9, 32, 40, 41, 2058,
- 2107, 65, 73, 83, 97, 105, 115, 80,
- 112, 84, 116, 82, 114, 9, 32, 40,
- 41, 2058, 2107, 68, 100, 9, 32, 40,
- 41, 2058, 2107, 9, 32, 40, 41, 69,
- 101, 2058, 2107, 67, 99, 9, 32, 40,
- 41, 51, 2058, 2107, 9, 32, 40, 41,
- 80, 112, 2058, 2107, 65, 97, 82, 114,
- 65, 97, 77, 109, 9, 32, 40, 41,
- 2058, 2107, 80, 112, 69, 101, 78, 110,
- 80, 112, 71, 103, 80, 112, 75, 107,
- 69, 101, 89, 121, 9, 32, 40, 41,
- 2058, 2107, 84, 116, 82, 114, 9, 32,
- 40, 41, 2058, 2107, 80, 82, 84, 112,
- 114, 116, 9, 32, 40, 41, 2058, 2107,
- 83, 115, 73, 105, 71, 103, 9, 32,
+ 2175, 2058, 1920, 2175, 2058, 1920, 2175, 2058,
+ 1920, 2175, 65, 97, 65, 97, 9, 32,
+ 40, 41, 2058, 2107, 83, 115, 68, 100,
+ 66, 98, 9, 32, 40, 41, 2058, 2107,
+ 76, 108, 9, 32, 40, 41, 2058, 2107,
+ 65, 68, 69, 78, 83, 97, 100, 101,
+ 110, 115, 65, 97, 9, 32, 40, 41,
+ 2058, 2107, 78, 83, 110, 115, 83, 115,
+ 75, 107, 69, 101, 89, 121, 9, 32,
40, 41, 2058, 2107, 9, 32, 40, 41,
- 2058, 2107, 77, 79, 80, 82, 83, 86,
- 109, 111, 112, 114, 115, 118, 73, 105,
- 77, 109, 69, 101, 65, 97, 9, 32,
- 40, 41, 2058, 2107, 65, 97, 9, 32,
- 40, 41, 2058, 2107, 70, 102, 9, 32,
- 40, 41, 2058, 2107, 86, 118, 9, 32,
- 40, 41, 2058, 2107, 72, 104, 70, 102,
- 80, 112, 9, 32, 40, 41, 2058, 2107,
- 67, 99, 66, 98, 9, 32, 40, 41,
- 2058, 2107, 76, 88, 89, 108, 120, 121,
- 83, 115, 65, 97, 9, 32, 40, 41,
- 2058, 2107, 84, 116, 9, 32, 40, 41,
- 2058, 2107, 80, 112, 69, 101, 48, 57,
- 9, 32, 40, 41, 2058, 2107, 48, 57,
- 82, 114, 73, 105, 9, 32, 40, 41,
- 2058, 2107, 79, 111, 78, 110, 69, 101,
- 77, 109, 68, 100, 9, 32, 40, 41,
- 2058, 2107, 42, 92, 95, 45, 57, 64,
- 90, 97, 122, 32, 59, 9, 10, 40,
- 41, 32, 59, 9, 10, 40, 41, 48,
+ 2058, 2107, 82, 114, 84, 116, 9, 32,
+ 40, 41, 2058, 2107, 65, 97, 77, 109,
+ 69, 101, 9, 32, 40, 41, 2058, 2107,
+ 89, 121, 78, 110, 67, 99, 9, 32,
+ 40, 41, 2058, 2107, 72, 78, 83, 104,
+ 110, 115, 67, 99, 73, 105, 68, 100,
+ 9, 32, 40, 41, 2058, 2107, 65, 83,
+ 97, 115, 77, 109, 69, 101, 9, 32,
+ 40, 41, 2058, 2107, 75, 107, 69, 101,
+ 89, 121, 9, 32, 40, 41, 2058, 2107,
+ 9, 32, 40, 41, 2058, 2107, 85, 117,
+ 73, 105, 52, 54, 56, 9, 32, 40,
+ 41, 2058, 2107, 52, 9, 32, 40, 41,
+ 2058, 2107, 73, 84, 105, 116, 78, 110,
+ 70, 102, 79, 111, 9, 32, 40, 41,
+ 2058, 2107, 84, 116, 80, 112, 83, 115,
+ 9, 32, 40, 41, 2058, 2107, 80, 112,
+ 83, 115, 69, 101, 67, 99, 75, 107,
+ 69, 101, 89, 121, 9, 32, 40, 41,
+ 2058, 2107, 69, 88, 101, 120, 89, 121,
+ 9, 32, 40, 41, 2058, 2107, 9, 32,
+ 40, 41, 2058, 2107, 51, 54, 79, 80,
+ 111, 112, 50, 9, 32, 40, 41, 2058,
+ 2107, 52, 9, 32, 40, 41, 2058, 2107,
+ 67, 99, 9, 32, 40, 41, 2058, 2107,
+ 9, 32, 40, 41, 2058, 2107, 73, 88,
+ 105, 120, 78, 110, 70, 102, 79, 111,
+ 9, 32, 40, 41, 2058, 2107, 9, 32,
+ 40, 41, 2058, 2107, 65, 73, 83, 97,
+ 105, 115, 80, 112, 84, 116, 82, 114,
+ 9, 32, 40, 41, 2058, 2107, 68, 100,
+ 9, 32, 40, 41, 2058, 2107, 9, 32,
+ 40, 41, 69, 101, 2058, 2107, 67, 99,
+ 9, 32, 40, 41, 51, 2058, 2107, 9,
+ 32, 40, 41, 80, 112, 2058, 2107, 65,
+ 97, 82, 114, 65, 97, 77, 109, 9,
+ 32, 40, 41, 2058, 2107, 80, 112, 69,
+ 101, 78, 110, 80, 112, 71, 103, 80,
+ 112, 75, 107, 69, 101, 89, 121, 9,
+ 32, 40, 41, 2058, 2107, 84, 116, 82,
+ 114, 9, 32, 40, 41, 2058, 2107, 80,
+ 82, 84, 112, 114, 116, 9, 32, 40,
+ 41, 2058, 2107, 83, 115, 73, 105, 71,
+ 103, 9, 32, 40, 41, 2058, 2107, 9,
+ 32, 40, 41, 2058, 2107, 77, 79, 80,
+ 82, 83, 86, 109, 111, 112, 114, 115,
+ 118, 73, 105, 77, 109, 69, 101, 65,
+ 97, 9, 32, 40, 41, 2058, 2107, 65,
+ 97, 9, 32, 40, 41, 2058, 2107, 70,
+ 102, 9, 32, 40, 41, 2058, 2107, 86,
+ 118, 9, 32, 40, 41, 2058, 2107, 72,
+ 104, 70, 102, 80, 112, 9, 32, 40,
+ 41, 2058, 2107, 67, 99, 66, 98, 9,
+ 32, 40, 41, 2058, 2107, 76, 88, 89,
+ 108, 120, 121, 83, 115, 65, 97, 9,
+ 32, 40, 41, 2058, 2107, 84, 116, 9,
+ 32, 40, 41, 2058, 2107, 80, 112, 69,
+ 101, 48, 57, 9, 32, 40, 41, 2058,
+ 2107, 48, 57, 82, 114, 73, 105, 9,
+ 32, 40, 41, 2058, 2107, 65, 97, 76,
+ 108, 76, 108, 69, 101, 84, 116, 9,
+ 32, 40, 41, 2058, 2107, 79, 111, 78,
+ 110, 69, 101, 77, 109, 68, 100, 9,
+ 32, 40, 41, 2058, 2107, 42, 92, 95,
+ 45, 57, 64, 90, 97, 122, 32, 59,
+ 9, 10, 40, 41, 32, 59, 9, 10,
+ 40, 41, 48, 57, 9, 32, 40, 41,
+ 2058, 2107, 48, 57, 9, 32, 40, 41,
+ 2058, 2107, 48, 57, 9, 32, 40, 41,
+ 2058, 2107, 48, 57, 9, 32, 40, 41,
+ 2058, 2107, 48, 57, 65, 90, 97, 122,
+ 9, 32, 40, 41, 2058, 2107, 9, 32,
+ 40, 41, 43, 2058, 2107, 47, 57, 65,
+ 90, 97, 122, 2570, 2619, 2058, 1920, 2175,
+ 2058, 1920, 2175, 2058, 1920, 2175, 43, 47,
+ 57, 65, 90, 97, 122, 2570, 2619, 48,
57, 9, 32, 40, 41, 2058, 2107, 48,
57, 9, 32, 40, 41, 2058, 2107, 48,
57, 9, 32, 40, 41, 2058, 2107, 48,
57, 9, 32, 40, 41, 2058, 2107, 48,
- 57, 65, 90, 97, 122, 9, 32, 40,
- 41, 2058, 2107, 9, 32, 40, 41, 43,
- 2058, 2107, 47, 57, 65, 90, 97, 122,
- 2570, 2619, 2058, 1920, 2175, 2058, 1920, 2175,
- 2058, 1920, 2175, 43, 47, 57, 65, 90,
- 97, 122, 2570, 2619, 48, 57, 9, 32,
- 40, 41, 2058, 2107, 48, 57, 9, 32,
- 40, 41, 2058, 2107, 48, 57, 9, 32,
- 40, 41, 2058, 2107, 48, 57, 9, 32,
- 40, 41, 2058, 2107, 48, 57, 9, 32,
- 40, 41, 2058, 2107, 48, 57, 9, 32,
- 40, 41, 45, 2058, 2107, 48, 57, 65,
- 70, 97, 102, 9, 32, 40, 41, 2058,
- 2107, 9, 32, 40, 41, 2058, 2107, 48,
+ 57, 9, 32, 40, 41, 2058, 2107, 48,
+ 57, 9, 32, 40, 41, 45, 2058, 2107,
+ 48, 57, 65, 70, 97, 102, 9, 32,
+ 40, 41, 2058, 2107, 9, 32, 40, 41,
+ 2058, 2107, 48, 57, 65, 86, 97, 118,
+ 48, 57, 65, 86, 97, 118, 61, 48,
57, 65, 86, 97, 118, 48, 57, 65,
86, 97, 118, 61, 48, 57, 65, 86,
- 97, 118, 48, 57, 65, 86, 97, 118,
- 61, 48, 57, 65, 86, 97, 118, 61,
- 48, 57, 65, 86, 97, 118, 48, 57,
- 65, 86, 97, 118, 61, 48, 57, 65,
- 86, 97, 118, 32, 59, 9, 10, 40,
- 41, 48, 57, 65, 86, 97, 118, 32,
- 59, 9, 10, 40, 41, 61, 61, 61,
- 61, 61, 2058, 1920, 2175, 48, 57, 65,
- 70, 97, 102, 9, 32, 40, 41, 2058,
- 2107, 48, 57, 65, 70, 97, 102, 2058,
- 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 45, 2058,
- 2107, 48, 57, 65, 70, 97, 102, 32,
- 59, 9, 10, 40, 41, 48, 57, 65,
- 70, 97, 102, 32, 59, 9, 10, 40,
- 41, 48, 57, 65, 70, 97, 102, 2058,
- 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 65, 70, 97, 102, 48, 57,
- 65, 70, 97, 102, 9, 32, 40, 41,
- 3082, 3131, 3338, 3387, 3594, 3643, 48, 57,
- 65, 70, 97, 102, 2058, 1920, 2175, 2058,
- 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 9, 32, 40, 41, 2058, 2107,
- 48, 57, 32, 59, 9, 10, 40, 41,
- 48, 57, 32, 59, 9, 10, 40, 41,
+ 97, 118, 61, 48, 57, 65, 86, 97,
+ 118, 48, 57, 65, 86, 97, 118, 61,
+ 48, 57, 65, 86, 97, 118, 32, 59,
+ 9, 10, 40, 41, 48, 57, 65, 86,
+ 97, 118, 32, 59, 9, 10, 40, 41,
+ 61, 61, 61, 61, 61, 2058, 1920, 2175,
+ 48, 57, 65, 70, 97, 102, 9, 32,
+ 40, 41, 2058, 2107, 48, 57, 65, 70,
+ 97, 102, 2058, 1920, 2175, 2058, 1920, 2175,
+ 2058, 1920, 2175, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 2058, 2107, 48, 57, 9, 32, 40,
+ 41, 45, 2058, 2107, 48, 57, 65, 70,
+ 97, 102, 32, 59, 9, 10, 40, 41,
+ 48, 57, 65, 70, 97, 102, 32, 59,
+ 9, 10, 40, 41, 48, 57, 65, 70,
+ 97, 102, 2058, 1920, 2175, 2058, 1920, 2175,
2058, 1920, 2175, 48, 57, 9, 32, 40,
41, 2058, 2107, 48, 57, 9, 32, 40,
41, 2058, 2107, 48, 57, 9, 32, 40,
@@ -3108,162 +3156,179 @@ static const short _zone_scanner_trans_keys[] = {
1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175,
2058, 1920, 2175, 48, 57, 9, 32, 40,
41, 2058, 2107, 48, 57, 9, 32, 40,
- 41, 46, 2058, 2107, 48, 57, 32, 46,
- 59, 9, 10, 40, 41, 48, 57, 2058,
- 1920, 2175, 48, 57, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 9, 32, 40, 41,
- 2058, 2107, 48, 57, 65, 70, 97, 102,
- 48, 57, 65, 70, 97, 102, 48, 57,
+ 41, 2058, 2107, 48, 57, 32, 59, 9,
+ 10, 40, 41, 48, 57, 32, 59, 9,
+ 10, 40, 41, 2058, 1920, 2175, 48, 57,
+ 9, 32, 40, 41, 2058, 2107, 48, 57,
+ 9, 32, 40, 41, 2058, 2107, 48, 57,
+ 9, 32, 40, 41, 2058, 2107, 48, 57,
+ 9, 32, 40, 41, 2058, 2107, 48, 57,
+ 9, 32, 40, 41, 2058, 2107, 48, 57,
+ 9, 32, 40, 41, 2058, 2107, 48, 57,
65, 70, 97, 102, 48, 57, 65, 70,
- 97, 102, 58, 48, 57, 65, 70, 97,
+ 97, 102, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 48, 57, 65, 70,
+ 97, 102, 2058, 1920, 2175, 2058, 1920, 2175,
+ 2058, 1920, 2175, 2058, 1920, 2175, 48, 57,
+ 9, 32, 40, 41, 2058, 2107, 48, 57,
+ 9, 32, 40, 41, 46, 2058, 2107, 48,
+ 57, 32, 46, 59, 9, 10, 40, 41,
+ 48, 57, 2058, 1920, 2175, 48, 57, 9,
+ 32, 40, 41, 2058, 2107, 48, 57, 9,
+ 32, 40, 41, 2058, 2107, 48, 57, 65,
+ 70, 97, 102, 48, 57, 65, 70, 97,
102, 48, 57, 65, 70, 97, 102, 48,
- 57, 65, 70, 97, 102, 48, 57, 65,
- 70, 97, 102, 32, 58, 59, 9, 10,
- 40, 41, 2058, 1920, 2175, 48, 57, 65,
+ 57, 65, 70, 97, 102, 58, 48, 57,
+ 65, 70, 97, 102, 48, 57, 65, 70,
+ 97, 102, 48, 57, 65, 70, 97, 102,
+ 48, 57, 65, 70, 97, 102, 32, 58,
+ 59, 9, 10, 40, 41, 2058, 1920, 2175,
+ 48, 57, 65, 70, 97, 102, 48, 57,
+ 65, 70, 97, 102, 45, 48, 57, 65,
70, 97, 102, 48, 57, 65, 70, 97,
- 102, 45, 48, 57, 65, 70, 97, 102,
- 48, 57, 65, 70, 97, 102, 32, 45,
- 59, 9, 10, 40, 41, 48, 57, 65,
+ 102, 32, 45, 59, 9, 10, 40, 41,
+ 48, 57, 65, 70, 97, 102, 48, 57,
+ 65, 70, 97, 102, 45, 48, 57, 65,
70, 97, 102, 48, 57, 65, 70, 97,
- 102, 45, 48, 57, 65, 70, 97, 102,
- 48, 57, 65, 70, 97, 102, 32, 45,
- 59, 9, 10, 40, 41, 48, 57, 9,
- 32, 40, 41, 2058, 2107, 48, 57, 9,
- 32, 40, 41, 2058, 2107, 48, 57, 9,
- 32, 40, 41, 2058, 2107, 48, 57, 9,
- 32, 40, 41, 2058, 2107, -128, 8, 11,
- 58, 60, 127, 32, 59, 9, 10, 40,
- 41, 2058, 1920, 2175, 2058, 1920, 2175, 48,
- 57, 9, 32, 40, 41, 2058, 2107, 48,
- 57, 9, 32, 40, 41, 2058, 2107, -128,
- 8, 11, 58, 60, 127, 9, 32, 40,
- 41, 2058, 2107, 9, 32, 40, 41, 2058,
- 2107, -128, 8, 11, 58, 60, 127, 32,
- 59, 9, 10, 40, 41, 2058, 1920, 2175,
- 2058, 1920, 2175, 48, 57, 9, 32, 40,
- 41, 2058, 2107, 48, 57, 9, 32, 40,
- 41, 42, 92, 95, 2058, 2107, 45, 57,
- 64, 90, 97, 122, 32, 59, 9, 10,
- 40, 41, 32, 59, 9, 10, 40, 41,
- 2058, 1920, 2175, 9, 32, 36, 40, 41,
- 42, 92, 95, 1802, 1851, 2058, 2107, 45,
- 57, 64, 90, 97, 122, 9, 32, 36,
- 40, 41, 42, 58, 92, 95, 2826, 2875,
- 3082, 3131, 3338, 3387, 3594, 3643, -128, 8,
- 11, 44, 45, 57, 60, 63, 64, 90,
- 91, 96, 97, 122, 123, 127, 9, 32,
- 36, 40, 41, 42, 65, 67, 68, 69,
- 72, 73, 75, 76, 77, 78, 79, 80,
- 82, 83, 84, 85, 90, 92, 95, 97,
- 99, 100, 101, 104, 105, 107, 108, 109,
- 110, 111, 112, 114, 115, 116, 117, 122,
- 1802, 1851, 2058, 2107, 45, 57, 64, 89,
- 98, 121, 9, 32, 36, 40, 41, 42,
- 65, 67, 68, 69, 72, 73, 75, 76,
- 77, 78, 79, 80, 82, 83, 84, 85,
+ 102, 32, 45, 59, 9, 10, 40, 41,
+ 48, 57, 9, 32, 40, 41, 2058, 2107,
+ 48, 57, 9, 32, 40, 41, 2058, 2107,
+ 48, 57, 9, 32, 40, 41, 2058, 2107,
+ 48, 57, 9, 32, 40, 41, 2058, 2107,
+ -128, 8, 11, 58, 60, 127, 32, 59,
+ 9, 10, 40, 41, 2058, 1920, 2175, 2058,
+ 1920, 2175, 48, 57, 9, 32, 40, 41,
+ 2058, 2107, 48, 57, 9, 32, 40, 41,
+ 2058, 2107, -128, 8, 11, 58, 60, 127,
+ 9, 32, 40, 41, 2058, 2107, 9, 32,
+ 40, 41, 2058, 2107, -128, 8, 11, 58,
+ 60, 127, 32, 59, 9, 10, 40, 41,
+ 2058, 1920, 2175, 2058, 1920, 2175, 48, 57,
+ 9, 32, 40, 41, 2058, 2107, 48, 57,
+ 9, 32, 40, 41, 42, 92, 95, 2058,
+ 2107, 45, 57, 64, 90, 97, 122, 32,
+ 59, 9, 10, 40, 41, 32, 59, 9,
+ 10, 40, 41, 2058, 1920, 2175, 9, 32,
+ 36, 40, 41, 42, 92, 95, 1802, 1851,
+ 2058, 2107, 45, 57, 64, 90, 97, 122,
+ 9, 32, 36, 40, 41, 42, 58, 92,
+ 95, 2826, 2875, 3082, 3131, 3338, 3387, 3594,
+ 3643, -128, 8, 11, 44, 45, 57, 60,
+ 63, 64, 90, 91, 96, 97, 122, 123,
+ 127, 9, 32, 36, 40, 41, 42, 65,
+ 67, 68, 69, 72, 73, 75, 76, 77,
+ 78, 79, 80, 82, 83, 84, 85, 87,
90, 92, 95, 97, 99, 100, 101, 104,
105, 107, 108, 109, 110, 111, 112, 114,
- 115, 116, 117, 122, 1802, 1851, 2058, 2107,
- 45, 47, 48, 57, 64, 89, 98, 121,
- 9, 32, 36, 40, 41, 42, 92, 95,
- 1802, 1851, 2058, 2107, 45, 57, 64, 90,
- 97, 122, 9, 32, 36, 40, 41, 42,
- 65, 67, 68, 69, 72, 73, 75, 76,
- 77, 78, 79, 80, 82, 83, 84, 85,
+ 115, 116, 117, 119, 122, 1802, 1851, 2058,
+ 2107, 45, 57, 64, 89, 98, 121, 9,
+ 32, 36, 40, 41, 42, 65, 67, 68,
+ 69, 72, 73, 75, 76, 77, 78, 79,
+ 80, 82, 83, 84, 85, 87, 90, 92,
+ 95, 97, 99, 100, 101, 104, 105, 107,
+ 108, 109, 110, 111, 112, 114, 115, 116,
+ 117, 119, 122, 1802, 1851, 2058, 2107, 45,
+ 47, 48, 57, 64, 89, 98, 121, 9,
+ 32, 36, 40, 41, 42, 92, 95, 1802,
+ 1851, 2058, 2107, 45, 57, 64, 90, 97,
+ 122, 9, 32, 36, 40, 41, 42, 65,
+ 67, 68, 69, 72, 73, 75, 76, 77,
+ 78, 79, 80, 82, 83, 84, 85, 87,
90, 92, 95, 97, 99, 100, 101, 104,
105, 107, 108, 109, 110, 111, 112, 114,
- 115, 116, 117, 122, 1802, 1851, 2058, 2107,
- 45, 47, 48, 57, 64, 89, 98, 121,
- 9, 32, 36, 40, 41, 42, 92, 95,
- 1802, 1851, 2058, 2107, 45, 57, 64, 90,
- 97, 122, 9, 32, 36, 40, 41, 42,
- 58, 92, 95, 2826, 2875, 3082, 3131, 3338,
- 3387, 3594, 3643, -128, 8, 11, 44, 45,
- 57, 60, 63, 64, 90, 91, 96, 97,
- 122, 123, 127, 9, 32, 36, 40, 41,
+ 115, 116, 117, 119, 122, 1802, 1851, 2058,
+ 2107, 45, 47, 48, 57, 64, 89, 98,
+ 121, 9, 32, 36, 40, 41, 42, 92,
+ 95, 1802, 1851, 2058, 2107, 45, 57, 64,
+ 90, 97, 122, 9, 32, 36, 40, 41,
+ 42, 58, 92, 95, 2826, 2875, 3082, 3131,
+ 3338, 3387, 3594, 3643, -128, 8, 11, 44,
+ 45, 57, 60, 63, 64, 90, 91, 96,
+ 97, 122, 123, 127, 9, 32, 36, 40,
+ 41, 42, 58, 65, 67, 68, 69, 72,
+ 73, 75, 76, 77, 78, 79, 80, 82,
+ 83, 84, 85, 87, 90, 92, 95, 97,
+ 99, 100, 101, 104, 105, 107, 108, 109,
+ 110, 111, 112, 114, 115, 116, 117, 119,
+ 122, 2826, 2875, 3082, 3131, 3338, 3387, 3594,
+ 3643, -128, 8, 11, 44, 45, 47, 48,
+ 57, 60, 63, 64, 89, 91, 96, 98,
+ 121, 123, 127, 9, 32, 36, 40, 41,
42, 58, 65, 67, 68, 69, 72, 73,
75, 76, 77, 78, 79, 80, 82, 83,
- 84, 85, 90, 92, 95, 97, 99, 100,
- 101, 104, 105, 107, 108, 109, 110, 111,
- 112, 114, 115, 116, 117, 122, 2826, 2875,
- 3082, 3131, 3338, 3387, 3594, 3643, -128, 8,
- 11, 44, 45, 47, 48, 57, 60, 63,
- 64, 89, 91, 96, 98, 121, 123, 127,
- 9, 32, 36, 40, 41, 42, 58, 65,
- 67, 68, 69, 72, 73, 75, 76, 77,
- 78, 79, 80, 82, 83, 84, 85, 90,
- 92, 95, 97, 99, 100, 101, 104, 105,
- 107, 108, 109, 110, 111, 112, 114, 115,
- 116, 117, 122, 2826, 2875, 3082, 3131, 3338,
- 3387, 3594, 3643, -128, 8, 11, 44, 45,
- 47, 48, 57, 60, 63, 64, 89, 91,
- 96, 98, 121, 123, 127, 32, 33, 59,
- 92, 9, 10, 35, 39, 40, 41, 42,
- 126, 9, 32, 40, 41, 42, 46, 92,
- 95, 2058, 2107, 45, 57, 65, 90, 97,
- 122, 9, 32, 40, 41, 43, 3082, 3131,
- 3338, 3387, 3594, 3643, 47, 57, 65, 90,
- 97, 122, 2058, 1920, 2175, 9, 32, 40,
- 41, 65, 67, 68, 69, 72, 73, 75,
- 76, 77, 78, 79, 80, 82, 83, 84,
- 85, 90, 97, 99, 100, 101, 104, 105,
- 107, 108, 109, 110, 111, 112, 114, 115,
- 116, 117, 122, 3082, 3131, 3338, 3387, 3594,
- 3643, 2058, 1920, 2175, 9, 32, 40, 41,
- 3082, 3131, 3338, 3387, 3594, 3643, 48, 57,
- 65, 70, 97, 102, 2058, 1920, 2175, 9,
- 32, 40, 41, 2058, 2107, 48, 57, 65,
- 70, 97, 102, 9, 32, 40, 41, 3082,
+ 84, 85, 87, 90, 92, 95, 97, 99,
+ 100, 101, 104, 105, 107, 108, 109, 110,
+ 111, 112, 114, 115, 116, 117, 119, 122,
+ 2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643,
+ -128, 8, 11, 44, 45, 47, 48, 57,
+ 60, 63, 64, 89, 91, 96, 98, 121,
+ 123, 127, 32, 33, 59, 92, 9, 10,
+ 35, 39, 40, 41, 42, 126, 9, 32,
+ 40, 41, 42, 46, 92, 95, 2058, 2107,
+ 45, 57, 65, 90, 97, 122, 9, 32,
+ 40, 41, 43, 3082, 3131, 3338, 3387, 3594,
+ 3643, 47, 57, 65, 90, 97, 122, 2058,
+ 1920, 2175, 9, 32, 40, 41, 65, 67,
+ 68, 69, 72, 73, 75, 76, 77, 78,
+ 79, 80, 82, 83, 84, 85, 87, 90,
+ 97, 99, 100, 101, 104, 105, 107, 108,
+ 109, 110, 111, 112, 114, 115, 116, 117,
+ 119, 122, 3082, 3131, 3338, 3387, 3594, 3643,
+ 2058, 1920, 2175, 9, 32, 40, 41, 3082,
3131, 3338, 3387, 3594, 3643, 48, 57, 65,
- 70, 97, 102, 2058, 1920, 2175, 2058, 1920,
- 2175, 9, 32, 40, 41, 97, 101, 105,
- 107, 109, 110, 112, 3082, 3131, 3338, 3387,
- 3594, 3643, 2058, 1920, 2175, 9, 32, 40,
- 41, 3082, 3131, 3338, 3387, 3594, 3643, -128,
- 8, 11, 58, 60, 127, 2058, 1920, 2175,
- 9, 32, 40, 41, 3082, 3131, 3338, 3387,
- 3594, 3643, 2058, 1920, 2175, 9, 32, 40,
+ 70, 97, 102, 2058, 1920, 2175, 9, 32,
+ 40, 41, 2058, 2107, 48, 57, 65, 70,
+ 97, 102, 9, 32, 40, 41, 3082, 3131,
+ 3338, 3387, 3594, 3643, 48, 57, 65, 70,
+ 97, 102, 2058, 1920, 2175, 2058, 1920, 2175,
+ 9, 32, 40, 41, 97, 100, 101, 105,
+ 107, 109, 110, 111, 112, 3082, 3131, 3338,
+ 3387, 3594, 3643, 2058, 1920, 2175, 9, 32,
+ 40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
+ -128, 8, 11, 58, 60, 127, 2058, 1920,
+ 2175, 9, 32, 40, 41, 3082, 3131, 3338,
+ 3387, 3594, 3643, 2058, 1920, 2175, 9, 32,
+ 40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
+ 48, 57, 2058, 1920, 2175, 9, 32, 40,
41, 3082, 3131, 3338, 3387, 3594, 3643, 48,
57, 2058, 1920, 2175, 9, 32, 40, 41,
3082, 3131, 3338, 3387, 3594, 3643, 48, 57,
+ 2058, 1920, 2175, 9, 32, 33, 40, 41,
+ 49, 50, 3082, 3131, 3338, 3387, 3594, 3643,
2058, 1920, 2175, 9, 32, 40, 41, 3082,
- 3131, 3338, 3387, 3594, 3643, 48, 57, 2058,
- 1920, 2175, 9, 32, 33, 40, 41, 49,
- 50, 3082, 3131, 3338, 3387, 3594, 3643, 2058,
- 1920, 2175, 9, 32, 40, 41, 3082, 3131,
- 3338, 3387, 3594, 3643, 48, 57, 65, 70,
- 97, 102, 2058, 1920, 2175, 9, 32, 40,
- 41, 3082, 3131, 3338, 3387, 3594, 3643, 48,
- 57, 65, 70, 97, 102, 2058, 1920, 2175,
- 5641, 5664, 5672, 5673, 14602, 14651, 14858, 14907,
- 15370, 15419, 15626, 15675, 15882, 15931, 6666, 6528,
- 6783, 4105, 4128, 4136, 4137, 4139, 5130, 5179,
- 4143, 4153, 4161, 4186, 4193, 4218, 5130, 4992,
- 5247, 4139, 7177, 7200, 7208, 7209, 7433, 7456,
- 7464, 7465, 7689, 7712, 7720, 7721, 10506, 10555,
- 10762, 10811, 11274, 11323, 11530, 11579, 11786, 11835,
- 12298, 12347, 12554, 12603, 12810, 12859, 13322, 13371,
- 13578, 13627, 13834, 13883, 4143, 4153, 4161, 4186,
- 4193, 4218, 8714, 9226, 9738, 8576, 8831, 9088,
- 9343, 9600, 9855, 9, 32, 40, 41, 3082,
3131, 3338, 3387, 3594, 3643, 48, 57, 65,
70, 97, 102, 2058, 1920, 2175, 9, 32,
40, 41, 3082, 3131, 3338, 3387, 3594, 3643,
48, 57, 65, 70, 97, 102, 2058, 1920,
- 2175, 0
+ 2175, 5641, 5664, 5672, 5673, 14602, 14651, 14858,
+ 14907, 15370, 15419, 15626, 15675, 15882, 15931, 6666,
+ 6528, 6783, 4105, 4128, 4136, 4137, 4139, 5130,
+ 5179, 4143, 4153, 4161, 4186, 4193, 4218, 5130,
+ 4992, 5247, 4139, 7177, 7200, 7208, 7209, 7433,
+ 7456, 7464, 7465, 7689, 7712, 7720, 7721, 10506,
+ 10555, 10762, 10811, 11274, 11323, 11530, 11579, 11786,
+ 11835, 12298, 12347, 12554, 12603, 12810, 12859, 13322,
+ 13371, 13578, 13627, 13834, 13883, 4143, 4153, 4161,
+ 4186, 4193, 4218, 8714, 9226, 9738, 8576, 8831,
+ 9088, 9343, 9600, 9855, 9, 32, 40, 41,
+ 3082, 3131, 3338, 3387, 3594, 3643, 48, 57,
+ 65, 70, 97, 102, 2058, 1920, 2175, 9,
+ 32, 40, 41, 3082, 3131, 3338, 3387, 3594,
+ 3643, 48, 57, 65, 70, 97, 102, 2058,
+ 1920, 2175, 0
};
static const char _zone_scanner_single_lengths[] = {
- 0, 42, 16, 40, 16, 11, 8, 8,
- 1, 1, 1, 13, 13, 2, 48, 18,
- 42, 10, 2, 10, 12, 12, 4, 2,
+ 0, 44, 16, 42, 16, 11, 8, 8,
+ 1, 1, 1, 13, 13, 2, 50, 18,
+ 44, 10, 2, 10, 12, 12, 4, 2,
2, 2, 2, 10, 10, 2, 2, 10,
2, 2, 2, 10, 2, 2, 2, 10,
6, 2, 2, 2, 10, 4, 2, 2,
10, 2, 2, 2, 10, 10, 2, 2,
2, 1, 10, 1, 10, 4, 2, 2,
2, 10, 2, 2, 2, 10, 4, 6,
- 40, 2, 2, 2, 2, 2, 2, 2,
+ 42, 2, 2, 2, 2, 2, 2, 2,
10, 4, 2, 10, 10, 6, 1, 10,
1, 10, 2, 10, 10, 4, 2, 2,
2, 10, 10, 6, 2, 2, 2, 10,
@@ -3275,141 +3340,147 @@ static const char _zone_scanner_single_lengths[] = {
10, 2, 10, 2, 2, 2, 10, 2,
2, 10, 6, 2, 2, 10, 2, 10,
2, 2, 0, 10, 2, 2, 10, 2,
- 2, 2, 2, 2, 10, 1, 42, 4,
- 6, 40, 16, 6, 10, 6, 1, 1,
- 6, 2, 2, 2, 2, 2, 2, 2,
- 6, 40, 1, 16, 40, 1, 6, 10,
- 6, 1, 16, 46, 18, 13, 42, 2,
- 8, 8, 48, 18, 14, 10, 12, 12,
+ 2, 2, 2, 2, 10, 2, 2, 2,
+ 2, 2, 10, 1, 44, 4, 6, 42,
+ 16, 6, 10, 6, 1, 1, 6, 2,
+ 2, 2, 2, 2, 2, 2, 6, 42,
+ 1, 16, 42, 1, 6, 10, 6, 1,
+ 16, 48, 18, 13, 44, 2, 8, 8,
+ 50, 18, 14, 10, 12, 12, 12, 14,
+ 12, 14, 10, 10, 14, 20, 14, 10,
+ 10, 10, 2, 14, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 8, 18, 44,
+ 2, 18, 50, 18, 14, 10, 12, 12,
12, 14, 12, 14, 10, 10, 14, 20,
- 14, 10, 10, 2, 14, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 8, 18,
- 42, 2, 18, 48, 18, 14, 10, 12,
- 12, 12, 14, 12, 14, 10, 10, 14,
- 20, 14, 10, 10, 9, 42, 12, 12,
+ 14, 10, 10, 10, 9, 44, 12, 12,
12, 12, 2, 2, 10, 2, 2, 2,
10, 2, 10, 2, 8, 8, 12, 12,
- 12, 12, 1, 48, 12, 12, 16, 12,
+ 12, 12, 1, 50, 12, 12, 16, 12,
8, 10, 10, 10, 12, 10, 12, 8,
- 8, 12, 18, 12, 8, 8, 2, 2,
- 10, 2, 3, 1, 1, 5, 6, 6,
- 0, 0, 0, 6, 2, 2, 2, 4,
- 0, 0, 0, 4, 6, 6, 2, 0,
- 0, 0, 6, 6, 6, 18, 8, 1,
- 8, 10, 8, 1, 6, 10, 4, 12,
- 8, 1, 0, 0, 0, 4, 8, 1,
- 6, 6, 8, 12, 4, 12, 8, 1,
- 0, 0, 0, 4, 8, 2, 10, 1,
- 1, 1, 1, 2, 2, 11, 1, 1,
- 10, 44, 16, 2, 2, 10, 1, 10,
- 2, 10, 4, 2, 2, 2, 2, 10,
- 10, 2, 2, 10, 2, 2, 2, 10,
- 2, 2, 2, 10, 6, 2, 2, 2,
- 10, 4, 2, 2, 10, 2, 2, 2,
- 10, 10, 2, 2, 2, 1, 10, 1,
- 10, 4, 2, 2, 2, 10, 2, 2,
- 2, 10, 2, 2, 2, 2, 2, 2,
- 2, 10, 4, 2, 10, 10, 6, 1,
- 10, 1, 10, 2, 10, 10, 4, 2,
- 2, 2, 10, 10, 6, 2, 2, 2,
- 10, 2, 10, 12, 2, 11, 12, 2,
- 2, 2, 2, 10, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 10, 2, 2,
- 10, 6, 10, 2, 2, 2, 10, 10,
- 12, 2, 2, 2, 2, 10, 2, 10,
- 2, 10, 2, 10, 2, 2, 2, 10,
- 2, 2, 10, 6, 2, 2, 10, 2,
- 10, 2, 2, 0, 10, 2, 2, 10,
- 2, 2, 2, 2, 2, 10, 2, 2,
- 2, 10, 2, 10, 6, 6, 6, 6,
- 0, 10, 1, 1, 1, 6, 7, 8,
- 6, 0, 10, 1, 1, 6, 1, 6,
- 1, 1, 1, 4, 1, 1, 4, 1,
- 1, 2, 1, 1, 1, 1, 4, 1,
- 1, 1, 1, 4, 1, 1, 0, 4,
+ 8, 12, 18, 12, 8, 8, 8, 2,
+ 2, 10, 2, 3, 1, 1, 5, 6,
+ 6, 0, 0, 0, 6, 2, 2, 2,
+ 4, 0, 0, 0, 4, 6, 6, 2,
+ 0, 0, 0, 6, 6, 6, 18, 8,
+ 1, 8, 10, 8, 1, 6, 10, 4,
+ 12, 8, 1, 0, 0, 0, 4, 8,
+ 1, 6, 6, 8, 12, 4, 12, 8,
+ 1, 0, 0, 0, 4, 8, 2, 10,
+ 1, 1, 1, 1, 2, 2, 11, 1,
+ 1, 10, 46, 16, 2, 2, 10, 1,
+ 10, 2, 10, 4, 2, 2, 2, 2,
+ 10, 10, 2, 2, 10, 2, 2, 2,
+ 10, 2, 2, 2, 10, 6, 2, 2,
+ 2, 10, 4, 2, 2, 10, 2, 2,
+ 2, 10, 10, 2, 2, 2, 1, 10,
+ 1, 10, 4, 2, 2, 2, 10, 2,
+ 2, 2, 10, 2, 2, 2, 2, 2,
+ 2, 2, 10, 4, 2, 10, 10, 6,
+ 1, 10, 1, 10, 2, 10, 10, 4,
+ 2, 2, 2, 10, 10, 6, 2, 2,
+ 2, 10, 2, 10, 12, 2, 11, 12,
+ 2, 2, 2, 2, 10, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 10, 2,
+ 2, 10, 6, 10, 2, 2, 2, 10,
+ 10, 12, 2, 2, 2, 2, 10, 2,
+ 10, 2, 10, 2, 10, 2, 2, 2,
+ 10, 2, 2, 10, 6, 2, 2, 10,
+ 2, 10, 2, 2, 0, 10, 2, 2,
+ 10, 2, 2, 2, 2, 2, 10, 2,
+ 2, 2, 2, 2, 10, 2, 2, 2,
+ 10, 2, 10, 6, 6, 6, 6, 0,
+ 10, 1, 1, 1, 6, 7, 8, 6,
+ 0, 10, 1, 1, 6, 1, 8, 1,
+ 1, 1, 4, 1, 1, 1, 1, 1,
+ 1, 4, 1, 1, 4, 1, 1, 2,
+ 1, 1, 1, 1, 4, 1, 1, 1,
+ 1, 4, 1, 1, 0, 4, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 4, 1, 1, 1,
+ 1, 4, 1, 1, 1, 4, 10, 19,
+ 1, 1, 1, 1, 3, 10, 1, 1,
+ 1, 1, 1, 1, 1, 1, 3, 10,
+ 10, 1, 10, 1, 1, 1, 2, 1,
+ 1, 2, 2, 2, 1, 1, 2, 2,
+ 11, 1, 1, 1, 2, 1, 1, 1,
+ 1, 1, 2, 1, 3, 1, 12, 1,
+ 1, 1, 1, 1, 1, 2, 1, 3,
+ 1, 12, 1, 1, 1, 0, 11, 2,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 4, 1,
- 1, 1, 4, 10, 17, 1, 1, 1,
- 1, 3, 10, 1, 1, 1, 1, 2,
- 1, 1, 2, 2, 2, 10, 1, 1,
- 2, 2, 11, 1, 1, 1, 2, 1,
- 1, 1, 1, 1, 2, 1, 3, 1,
- 12, 1, 1, 1, 1, 1, 1, 2,
- 1, 3, 1, 12, 1, 1, 1, 0,
- 11, 2, 10, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 0, 2, 0,
- 11, 0, 1, 1, 1, 1, 1, 1,
+ 1, 1, 0, 2, 0, 11, 0, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 10, 1, 1, 1, 1, 1, 0, 1,
- 10, 10, 1, 10, 2, 4, 2, 2,
- 3, 2, 2, 2, 2, 1, 1, 2,
- 2, 2, 1, 2, 4, 4, 1, 2,
+ 1, 1, 1, 1, 1, 10, 1, 1,
+ 1, 1, 10, 1, 1, 1, 1, 1,
+ 0, 1, 10, 10, 1, 10, 2, 4,
+ 2, 2, 3, 2, 2, 2, 2, 1,
+ 1, 2, 2, 2, 1, 2, 4, 4,
+ 1, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 1, 1, 2, 2, 2, 1,
+ 1, 1, 2, 1, 1, 2, 2, 2,
+ 1, 1, 1, 2, 2, 1, 1, 1,
+ 1, 2, 1, 1, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
- 1, 1, 2, 2, 2, 1, 1, 1,
- 2, 1, 1, 2, 2, 2, 1, 1,
- 1, 2, 2, 1, 1, 1, 1, 2,
- 1, 1, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 4, 2, 2, 2, 2,
+ 2, 2, 2, 2, 4, 2, 1, 2,
+ 2, 2, 3, 3, 2, 2, 2, 2,
+ 1, 1, 2, 2, 2, 1, 2, 1,
+ 1, 2, 1, 1, 2, 12, 2, 2,
+ 2, 2, 2, 2, 2, 6, 2, 2,
+ 2, 2, 2, 2, 4, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 4, 2, 2, 2, 2, 2, 2,
- 2, 2, 4, 2, 1, 2, 2, 2,
- 3, 3, 2, 2, 2, 2, 1, 1,
- 2, 2, 2, 1, 2, 1, 1, 2,
- 1, 1, 2, 12, 2, 2, 2, 2,
- 2, 2, 2, 6, 2, 2, 2, 2,
- 2, 2, 4, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 4,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 1, 3, 3, 2,
- 3, 6, 9, 6, 6, 6, 6, 16,
- 6, 16, 6, 16, 6, 12, 2, 10,
- 2, 1, 6, 10, 6, 1, 6, 10,
- 6, 1, 6, 10, 6, 1, 1, 1,
- 2, 6, 6, 2, 1, 3, 6, 9,
- 2, 1, 0, 6, 9, 2, 1, 2,
- 10, 10, 1, 1, 3, 0, 6, 8,
- 6, 8, 7, 8, 6, 6, 6, 8,
- 6, 8, 7, 8, 6, 7, 0, 12,
- 10, 12, 10, 12, 10, 12, 10, 1,
- 11, 11, 1, 11, 11, 10, 1, 11,
- 11, 10, 1, 11, 11, 10, 1, 6,
- 1, 6, 6, 1, 1, 1, 6, 1,
- 6, 6, 1, 1, 0, 6, 6, 6,
- 6, 6, 9, 2, 1, 1, 1, 0,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 9, 2, 1, 1, 1, 1, 1,
- 0, 6, 6, 6, 6, 6, 7, 2,
- 1, 1, 1, 13, 2, 1, 1, 1,
- 0, 10, 1, 1, 1, 1, 0, 6,
- 6, 6, 6, 6, 6, 0, 10, 1,
- 1, 1, 1, 0, 6, 6, 6, 6,
- 0, 10, 1, 1, 1, 0, 6, 10,
- 6, 6, 6, 7, 34, 7, 2, 1,
- 14, 1, 35, 3, 1, 1, 6, 6,
- 6, 7, 35, 1, 1, 6, 6, 6,
- 7, 35, 1, 1, 6, 6, 6, 9,
- 34, 1, 1, 1, 34, 12, 6, 6,
+ 2, 2, 2, 2, 2, 2, 1, 3,
+ 3, 2, 3, 6, 9, 6, 6, 6,
+ 6, 16, 6, 16, 6, 16, 6, 12,
+ 2, 10, 2, 1, 6, 10, 6, 1,
+ 6, 10, 6, 1, 6, 10, 6, 1,
+ 1, 1, 2, 6, 6, 2, 1, 3,
+ 6, 9, 2, 1, 0, 6, 9, 2,
+ 1, 2, 10, 10, 1, 1, 3, 0,
+ 6, 8, 6, 8, 7, 8, 6, 6,
+ 6, 8, 6, 8, 7, 8, 6, 7,
+ 0, 12, 10, 12, 10, 12, 10, 12,
+ 10, 1, 11, 11, 1, 11, 11, 10,
+ 1, 11, 11, 10, 1, 11, 11, 10,
+ 1, 6, 1, 6, 6, 1, 1, 1,
+ 6, 1, 6, 6, 1, 1, 0, 6,
+ 6, 6, 6, 6, 9, 2, 1, 1,
+ 1, 0, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 9, 2, 1, 1, 1,
+ 1, 1, 0, 6, 6, 6, 6, 6,
+ 7, 2, 1, 1, 1, 13, 2, 1,
+ 1, 1, 0, 10, 1, 1, 1, 1,
+ 0, 6, 6, 6, 6, 6, 6, 0,
+ 10, 1, 1, 1, 1, 0, 6, 6,
+ 6, 6, 0, 10, 1, 1, 1, 0,
+ 6, 10, 6, 6, 6, 7, 34, 7,
+ 2, 1, 14, 1, 35, 3, 1, 1,
+ 6, 6, 6, 7, 35, 1, 1, 6,
+ 6, 6, 7, 35, 1, 1, 6, 6,
+ 6, 9, 34, 1, 1, 1, 36, 12,
6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 9, 6, 7, 2, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 2,
- 6, 2, 2, 2, 6, 2, 6, 10,
- 2, 6, 4, 2, 2, 2, 2, 6,
- 6, 2, 2, 6, 2, 2, 2, 6,
- 2, 2, 2, 6, 6, 2, 2, 2,
- 6, 4, 2, 2, 6, 2, 2, 2,
- 6, 6, 2, 2, 2, 1, 6, 1,
- 6, 4, 2, 2, 2, 6, 2, 2,
- 2, 6, 2, 2, 2, 2, 2, 2,
- 2, 6, 4, 2, 6, 6, 6, 1,
- 6, 1, 6, 2, 6, 6, 4, 2,
- 2, 2, 6, 6, 6, 2, 2, 2,
- 6, 2, 6, 8, 2, 7, 8, 2,
+ 6, 6, 6, 6, 9, 6, 7, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 6, 2, 2, 2, 6, 2,
+ 6, 10, 2, 6, 4, 2, 2, 2,
+ 2, 6, 6, 2, 2, 6, 2, 2,
+ 2, 6, 2, 2, 2, 6, 6, 2,
+ 2, 2, 6, 4, 2, 2, 6, 2,
+ 2, 2, 6, 6, 2, 2, 2, 1,
+ 6, 1, 6, 4, 2, 2, 2, 6,
2, 2, 2, 6, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 6, 2, 2,
- 6, 6, 6, 2, 2, 2, 6, 6,
- 12, 2, 2, 2, 2, 6, 2, 6,
- 2, 6, 2, 6, 2, 2, 2, 6,
- 2, 2, 6, 6, 2, 2, 6, 2,
- 6, 2, 2, 0, 6, 2, 2, 6,
+ 2, 2, 2, 6, 4, 2, 6, 6,
+ 6, 1, 6, 1, 6, 2, 6, 6,
+ 4, 2, 2, 2, 6, 6, 6, 2,
+ 2, 2, 6, 2, 6, 8, 2, 7,
+ 8, 2, 2, 2, 2, 6, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 6,
+ 2, 2, 6, 6, 6, 2, 2, 2,
+ 6, 6, 12, 2, 2, 2, 2, 6,
+ 2, 6, 2, 6, 2, 6, 2, 2,
+ 2, 6, 2, 2, 6, 6, 2, 2,
+ 6, 2, 6, 2, 2, 0, 6, 2,
+ 2, 6, 2, 2, 2, 2, 2, 6,
2, 2, 2, 2, 2, 6, 3, 2,
2, 0, 6, 6, 6, 6, 6, 7,
2, 1, 1, 1, 1, 2, 0, 6,
@@ -3428,11 +3499,11 @@ static const char _zone_scanner_single_lengths[] = {
0, 0, 1, 0, 0, 3, 0, 6,
6, 6, 6, 2, 1, 1, 0, 6,
6, 6, 6, 2, 1, 1, 0, 6,
- 9, 2, 2, 1, 12, 17, 46, 46,
- 12, 46, 12, 17, 51, 51, 0, 0,
+ 9, 2, 2, 1, 12, 17, 48, 48,
+ 12, 48, 12, 17, 53, 53, 0, 0,
0, 0, 4, 0, 0, 0, 10, 0,
- 11, 1, 0, 44, 1, 0, 10, 1,
- 6, 0, 10, 1, 1, 0, 0, 17,
+ 11, 1, 0, 46, 1, 0, 10, 1,
+ 6, 0, 10, 1, 1, 0, 0, 19,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 10, 1, 0, 0, 10, 1,
10, 1, 10, 1, 10, 1, 0, 0,
@@ -3465,33 +3536,34 @@ static const char _zone_scanner_range_lengths[] = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 1, 0,
- 0, 1, 1, 1, 1, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 2,
- 0, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 0, 4, 0, 3, 1, 2,
- 3, 3, 4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 0, 0, 0, 0,
- 0, 0, 2, 0, 0, 2, 0, 1,
- 1, 2, 0, 4, 0, 0, 0, 0,
+ 0, 0, 0, 1, 1, 0, 0, 1,
+ 1, 1, 1, 1, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 4, 0, 3, 1, 2, 3, 3,
+ 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2, 0, 0, 0, 0, 0,
+ 0, 2, 0, 0, 2, 0, 1, 1,
+ 2, 0, 4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 1, 1, 1,
2, 2, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2, 3, 3, 2, 2,
2, 2, 1, 4, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 2,
- 0, 2, 3, 0, 0, 3, 5, 5,
- 1, 1, 1, 5, 2, 2, 2, 4,
- 3, 1, 1, 4, 1, 1, 2, 3,
- 1, 1, 1, 0, 1, 1, 0, 0,
- 1, 1, 1, 1, 0, 3, 3, 3,
- 0, 0, 1, 1, 1, 3, 0, 1,
- 0, 3, 0, 3, 3, 3, 0, 0,
- 1, 1, 1, 3, 0, 2, 3, 1,
- 1, 3, 3, 3, 3, 3, 1, 0,
- 0, 0, 0, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2,
+ 2, 0, 2, 3, 0, 0, 3, 5,
+ 5, 1, 1, 1, 5, 2, 2, 2,
+ 4, 3, 1, 1, 4, 1, 1, 2,
+ 3, 1, 1, 1, 0, 1, 1, 0,
+ 0, 1, 1, 1, 1, 0, 3, 3,
+ 3, 0, 0, 1, 1, 1, 3, 0,
+ 1, 0, 3, 0, 3, 3, 3, 0,
+ 0, 1, 1, 1, 3, 0, 2, 3,
+ 1, 1, 3, 3, 3, 3, 3, 1,
+ 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
@@ -3509,78 +3581,82 @@ static const char _zone_scanner_range_lengths[] = {
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, 1, 1, 0, 0, 0,
+ 0, 0, 0, 0, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 1, 3,
- 3, 3, 1, 1, 1, 0, 1, 1,
- 3, 3, 3, 1, 1, 1, 1, 0,
- 0, 0, 0, 2, 0, 0, 2, 0,
- 0, 0, 0, 0, 0, 0, 2, 0,
- 0, 0, 0, 2, 0, 0, 1, 3,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 0,
+ 0, 0, 0, 0, 1, 1, 3, 3,
+ 3, 1, 1, 1, 0, 1, 1, 3,
+ 3, 3, 1, 1, 1, 1, 0, 0,
0, 0, 2, 0, 0, 0, 0, 0,
- 0, 2, 0, 1, 0, 0, 0, 3,
- 3, 3, 3, 3, 3, 0, 0, 3,
- 3, 3, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 1, 1, 1,
- 1, 1, 0, 0, 0, 0, 0, 3,
- 3, 3, 3, 3, 3, 0, 0, 1,
- 1, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 2,
- 0, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 1, 1,
- 1, 3, 0, 1, 3, 0, 2, 0,
- 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 0, 0, 0, 0,
- 0, 0, 0, 2, 0, 0, 0, 0,
+ 0, 2, 0, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 2, 0, 0, 1, 3, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 2, 0, 0, 0, 0, 0, 2,
- 0, 0, 2, 0, 0, 0, 0, 0,
- 0, 0, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 2,
+ 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 2, 0, 0, 0, 2, 0, 0,
+ 0, 0, 0, 0, 2, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 2, 0,
+ 3, 0, 0, 0, 0, 0, 3, 3,
+ 3, 3, 3, 3, 0, 3, 3, 3,
+ 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 1, 1, 1, 1, 1,
+ 0, 0, 0, 0, 0, 3, 3, 3,
+ 3, 3, 3, 0, 0, 1, 1, 2,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2, 2, 0, 2, 0, 2, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1,
+ 1, 1, 1, 3, 0, 1, 3, 0,
+ 2, 0, 2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 0, 0,
- 0, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 2,
- 0, 0, 2, 1, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 2, 0, 0, 0, 0, 0,
- 0, 2, 0, 0, 2, 0, 0, 2,
- 0, 0, 0, 2, 0, 0, 2, 0,
+ 0, 0, 0, 2, 0, 0, 0, 0,
0, 2, 0, 0, 2, 0, 0, 0,
- 2, 0, 0, 2, 1, 3, 3, 2,
- 3, 0, 3, 0, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 3, 3, 1,
- 3, 1, 1, 1, 1, 1, 1, 1,
+ 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2, 0,
+ 0, 2, 0, 0, 0, 0, 0, 2,
+ 0, 0, 0, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2, 0,
+ 0, 2, 0, 0, 2, 1, 3, 0,
+ 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0, 0, 2, 0, 0, 2, 0,
+ 0, 2, 0, 0, 0, 2, 0, 0,
+ 2, 0, 0, 2, 0, 0, 2, 0,
+ 0, 0, 2, 0, 0, 2, 1, 3,
+ 3, 2, 3, 0, 3, 0, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 3,
+ 3, 1, 3, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 2, 0, 3, 2, 1, 3, 0, 3,
- 2, 1, 1, 1, 3, 2, 1, 2,
- 0, 3, 1, 3, 5, 1, 1, 1,
- 1, 1, 1, 0, 0, 1, 1, 1,
- 1, 1, 1, 0, 0, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 0, 1,
- 1, 1, 1, 1, 1, 0, 1, 1,
- 1, 0, 1, 1, 1, 0, 1, 0,
- 1, 1, 1, 1, 1, 1, 0, 1,
+ 1, 1, 2, 0, 3, 2, 1, 3,
+ 0, 3, 2, 1, 1, 1, 3, 2,
+ 1, 2, 0, 3, 1, 3, 5, 1,
+ 1, 1, 1, 1, 1, 0, 0, 1,
+ 1, 1, 1, 1, 1, 0, 0, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 3, 2, 1, 1, 1, 1,
- 1, 1, 1, 3, 0, 3, 0, 3,
- 0, 3, 2, 1, 1, 1, 1, 1,
- 3, 0, 1, 1, 3, 0, 3, 0,
- 1, 1, 1, 0, 0, 0, 1, 1,
- 1, 1, 1, 0, 3, 3, 1, 1,
- 3, 0, 1, 1, 3, 3, 3, 1,
- 1, 1, 1, 1, 1, 1, 1, 3,
- 3, 3, 1, 1, 1, 1, 1, 0,
- 0, 1, 1, 0, 0, 3, 0, 1,
- 0, 1, 3, 3, 1, 1, 0, 1,
- 1, 1, 1, 1, 1, 0, 1, 1,
- 3, 3, 1, 1, 0, 1, 1, 3,
- 0, 1, 1, 1, 0, 0, 3, 0,
+ 0, 1, 1, 1, 1, 1, 1, 0,
+ 1, 1, 1, 0, 1, 1, 1, 0,
+ 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 3, 2, 1, 1,
+ 1, 1, 1, 1, 1, 3, 0, 3,
+ 0, 3, 0, 3, 2, 1, 1, 1,
+ 1, 1, 3, 0, 1, 1, 3, 0,
+ 3, 0, 1, 1, 1, 0, 0, 0,
+ 1, 1, 1, 1, 1, 0, 3, 3,
+ 1, 1, 3, 0, 1, 1, 3, 3,
+ 3, 1, 1, 1, 1, 1, 1, 1,
+ 1, 3, 3, 3, 1, 1, 1, 1,
+ 1, 0, 0, 1, 1, 0, 0, 3,
+ 0, 1, 0, 1, 3, 3, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0,
+ 1, 1, 3, 3, 1, 1, 0, 1,
+ 1, 3, 0, 1, 1, 1, 0, 0,
+ 3, 0, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 3, 0, 3, 0,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 3, 0, 3, 0, 1, 1,
- 1, 1, 1, 1, 1, 1, 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,
@@ -3599,7 +3675,8 @@ static const char _zone_scanner_range_lengths[] = {
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, 1, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 3, 2,
2, 1, 1, 1, 1, 3, 0, 3,
0, 1, 1, 1, 3, 0, 1, 1,
@@ -3634,2703 +3711,2766 @@ static const char _zone_scanner_range_lengths[] = {
};
static const short _zone_scanner_index_offsets[] = {
- 0, 0, 44, 62, 103, 120, 135, 144,
- 153, 155, 157, 160, 177, 194, 199, 252,
- 272, 315, 326, 329, 340, 354, 368, 373,
- 376, 379, 382, 385, 396, 407, 410, 413,
- 424, 427, 430, 433, 444, 447, 450, 453,
- 464, 471, 474, 477, 480, 491, 496, 499,
- 502, 513, 516, 519, 522, 533, 544, 547,
- 550, 553, 555, 566, 568, 579, 584, 587,
- 590, 593, 604, 607, 610, 613, 624, 629,
- 636, 677, 680, 683, 686, 689, 692, 695,
- 698, 709, 714, 717, 728, 739, 746, 748,
- 759, 761, 772, 775, 786, 797, 802, 805,
- 808, 811, 822, 833, 840, 843, 846, 849,
- 860, 863, 874, 887, 890, 902, 915, 918,
- 921, 924, 927, 938, 941, 944, 947, 950,
- 953, 956, 959, 962, 965, 976, 979, 982,
- 993, 1000, 1011, 1014, 1017, 1020, 1031, 1042,
- 1055, 1058, 1061, 1064, 1067, 1078, 1081, 1092,
- 1095, 1106, 1109, 1120, 1123, 1126, 1129, 1140,
- 1143, 1146, 1157, 1164, 1167, 1170, 1181, 1184,
- 1195, 1198, 1201, 1203, 1215, 1218, 1221, 1232,
- 1235, 1238, 1241, 1244, 1247, 1258, 1261, 1305,
- 1310, 1317, 1359, 1377, 1385, 1397, 1405, 1408,
- 1410, 1417, 1420, 1423, 1426, 1429, 1432, 1435,
- 1440, 1447, 1489, 1492, 1510, 1552, 1555, 1563,
- 1575, 1583, 1586, 1603, 1654, 1673, 1690, 1734,
- 1739, 1751, 1763, 1816, 1835, 1850, 1861, 1874,
- 1887, 1900, 1915, 1928, 1943, 1954, 1965, 1980,
- 2001, 2016, 2027, 2038, 2043, 2058, 2061, 2064,
- 2067, 2070, 2073, 2078, 2081, 2084, 2089, 2098,
- 2118, 2162, 2167, 2186, 2239, 2258, 2273, 2284,
- 2297, 2310, 2323, 2338, 2351, 2366, 2377, 2388,
- 2403, 2424, 2439, 2450, 2461, 2474, 2518, 2532,
- 2546, 2561, 2576, 2579, 2582, 2593, 2596, 2599,
- 2602, 2613, 2616, 2627, 2632, 2644, 2656, 2671,
- 2686, 2701, 2716, 2719, 2772, 2786, 2800, 2817,
- 2830, 2839, 2850, 2861, 2872, 2885, 2896, 2909,
- 2918, 2927, 2940, 2959, 2972, 2981, 2990, 2995,
- 3000, 3011, 3016, 3023, 3025, 3027, 3036, 3048,
- 3060, 3062, 3064, 3066, 3078, 3083, 3088, 3093,
- 3102, 3106, 3108, 3110, 3119, 3127, 3135, 3140,
- 3144, 3146, 3148, 3156, 3163, 3171, 3191, 3200,
- 3202, 3212, 3224, 3234, 3237, 3244, 3258, 3266,
- 3282, 3291, 3293, 3295, 3297, 3299, 3307, 3316,
- 3319, 3326, 3336, 3345, 3361, 3369, 3385, 3394,
- 3396, 3398, 3400, 3402, 3410, 3419, 3424, 3438,
- 3441, 3444, 3449, 3454, 3460, 3466, 3481, 3484,
- 3486, 3497, 3542, 3559, 3562, 3565, 3576, 3579,
- 3590, 3593, 3604, 3609, 3612, 3615, 3618, 3621,
- 3632, 3643, 3646, 3649, 3660, 3663, 3666, 3669,
- 3680, 3683, 3686, 3689, 3700, 3707, 3710, 3713,
- 3716, 3727, 3732, 3735, 3738, 3749, 3752, 3755,
- 3758, 3769, 3780, 3783, 3786, 3789, 3791, 3802,
- 3804, 3815, 3820, 3823, 3826, 3829, 3840, 3843,
- 3846, 3849, 3860, 3863, 3866, 3869, 3872, 3875,
- 3878, 3881, 3892, 3897, 3900, 3911, 3922, 3929,
- 3931, 3942, 3944, 3955, 3958, 3969, 3980, 3985,
- 3988, 3991, 3994, 4005, 4016, 4023, 4026, 4029,
- 4032, 4043, 4046, 4057, 4070, 4073, 4085, 4098,
- 4101, 4104, 4107, 4110, 4121, 4124, 4127, 4130,
- 4133, 4136, 4139, 4142, 4145, 4148, 4159, 4162,
- 4165, 4176, 4183, 4194, 4197, 4200, 4203, 4214,
- 4225, 4238, 4241, 4244, 4247, 4250, 4261, 4264,
- 4275, 4278, 4289, 4292, 4303, 4306, 4309, 4312,
- 4323, 4326, 4329, 4340, 4347, 4350, 4353, 4364,
- 4367, 4378, 4381, 4384, 4386, 4398, 4401, 4404,
- 4415, 4418, 4421, 4424, 4427, 4430, 4441, 4444,
- 4447, 4450, 4461, 4464, 4475, 4482, 4490, 4498,
- 4508, 4512, 4526, 4529, 4532, 4535, 4542, 4551,
- 4561, 4571, 4575, 4589, 4592, 4595, 4603, 4606,
- 4613, 4615, 4617, 4619, 4626, 4628, 4630, 4637,
- 4639, 4641, 4644, 4646, 4648, 4650, 4652, 4659,
- 4661, 4663, 4665, 4667, 4674, 4676, 4678, 4680,
- 4688, 4690, 4692, 4694, 4696, 4698, 4700, 4702,
- 4704, 4706, 4708, 4710, 4712, 4714, 4716, 4723,
- 4725, 4727, 4729, 4736, 4747, 4765, 4767, 4769,
- 4771, 4773, 4779, 4790, 4793, 4795, 4797, 4799,
- 4805, 4810, 4815, 4821, 4827, 4833, 4844, 4846,
- 4851, 4857, 4863, 4878, 4880, 4882, 4884, 4887,
- 4889, 4891, 4893, 4895, 4897, 4901, 4904, 4909,
- 4912, 4926, 4929, 4931, 4933, 4935, 4937, 4939,
- 4945, 4950, 4957, 4962, 4978, 4983, 4985, 4987,
- 4989, 5002, 5007, 5018, 5020, 5022, 5024, 5026,
- 5028, 5030, 5032, 5034, 5036, 5040, 5043, 5046,
- 5049, 5061, 5064, 5066, 5068, 5070, 5072, 5074,
- 5076, 5078, 5080, 5082, 5084, 5086, 5088, 5090,
- 5092, 5103, 5105, 5107, 5109, 5111, 5114, 5116,
- 5119, 5131, 5145, 5147, 5159, 5165, 5170, 5175,
- 5178, 5184, 5187, 5190, 5193, 5196, 5198, 5200,
- 5203, 5206, 5209, 5211, 5216, 5221, 5226, 5228,
- 5231, 5234, 5237, 5240, 5245, 5248, 5251, 5254,
- 5257, 5259, 5261, 5264, 5267, 5270, 5272, 5274,
- 5276, 5281, 5283, 5285, 5288, 5291, 5294, 5296,
- 5298, 5300, 5305, 5308, 5310, 5312, 5314, 5316,
- 5321, 5323, 5325, 5330, 5333, 5336, 5339, 5342,
- 5345, 5348, 5351, 5356, 5359, 5362, 5365, 5368,
- 5371, 5374, 5379, 5382, 5385, 5390, 5393, 5396,
- 5401, 5404, 5407, 5412, 5415, 5417, 5422, 5425,
- 5428, 5432, 5438, 5441, 5444, 5447, 5450, 5452,
- 5454, 5457, 5460, 5463, 5465, 5470, 5472, 5474,
- 5479, 5481, 5483, 5488, 5502, 5508, 5511, 5514,
- 5517, 5520, 5523, 5528, 5535, 5538, 5541, 5544,
- 5547, 5550, 5555, 5560, 5563, 5568, 5571, 5574,
- 5579, 5582, 5585, 5588, 5593, 5596, 5599, 5604,
- 5609, 5612, 5617, 5620, 5623, 5628, 5631, 5634,
- 5637, 5642, 5645, 5648, 5653, 5656, 5663, 5670,
- 5675, 5682, 5689, 5702, 5709, 5717, 5725, 5733,
- 5751, 5759, 5777, 5785, 5803, 5811, 5827, 5833,
- 5845, 5851, 5854, 5862, 5874, 5882, 5885, 5893,
- 5905, 5913, 5916, 5924, 5936, 5944, 5947, 5950,
- 5953, 5958, 5965, 5975, 5980, 5983, 5990, 5997,
- 6010, 6015, 6018, 6020, 6028, 6041, 6046, 6049,
- 6054, 6065, 6079, 6082, 6087, 6096, 6098, 6106,
- 6116, 6124, 6134, 6143, 6152, 6159, 6167, 6175,
- 6185, 6193, 6203, 6212, 6221, 6228, 6237, 6239,
- 6253, 6265, 6279, 6291, 6305, 6317, 6331, 6342,
- 6345, 6358, 6371, 6374, 6387, 6400, 6411, 6414,
- 6427, 6440, 6451, 6454, 6467, 6480, 6491, 6494,
- 6501, 6504, 6512, 6520, 6523, 6526, 6529, 6536,
- 6539, 6547, 6555, 6558, 6561, 6563, 6571, 6579,
- 6587, 6595, 6603, 6616, 6621, 6624, 6627, 6630,
- 6632, 6640, 6648, 6656, 6666, 6673, 6683, 6690,
- 6700, 6707, 6720, 6725, 6728, 6731, 6734, 6737,
- 6740, 6744, 6751, 6759, 6767, 6777, 6784, 6795,
- 6798, 6801, 6804, 6807, 6821, 6824, 6826, 6829,
- 6832, 6834, 6846, 6849, 6851, 6856, 6861, 6863,
- 6871, 6881, 6888, 6896, 6904, 6914, 6918, 6932,
- 6935, 6938, 6941, 6944, 6946, 6954, 6962, 6970,
- 6980, 6984, 6998, 7001, 7004, 7007, 7009, 7017,
- 7028, 7035, 7043, 7051, 7059, 7094, 7105, 7108,
- 7111, 7126, 7129, 7168, 7175, 7178, 7181, 7188,
- 7196, 7204, 7213, 7250, 7253, 7256, 7263, 7271,
- 7279, 7290, 7329, 7332, 7335, 7342, 7350, 7358,
- 7371, 7406, 7409, 7412, 7415, 7450, 7463, 7473,
- 7480, 7488, 7496, 7504, 7512, 7520, 7528, 7536,
- 7544, 7552, 7560, 7573, 7580, 7591, 7594, 7597,
- 7600, 7603, 7606, 7609, 7612, 7615, 7618, 7621,
- 7624, 7631, 7634, 7637, 7640, 7647, 7650, 7657,
- 7668, 7671, 7678, 7683, 7686, 7689, 7692, 7695,
- 7702, 7709, 7712, 7715, 7722, 7725, 7728, 7731,
- 7738, 7741, 7744, 7747, 7754, 7761, 7764, 7767,
- 7770, 7777, 7782, 7785, 7788, 7795, 7798, 7801,
- 7804, 7811, 7818, 7821, 7824, 7827, 7829, 7836,
- 7838, 7845, 7850, 7853, 7856, 7859, 7866, 7869,
- 7872, 7875, 7882, 7885, 7888, 7891, 7894, 7897,
- 7900, 7903, 7910, 7915, 7918, 7925, 7932, 7939,
- 7941, 7948, 7950, 7957, 7960, 7967, 7974, 7979,
- 7982, 7985, 7988, 7995, 8002, 8009, 8012, 8015,
- 8018, 8025, 8028, 8035, 8044, 8047, 8055, 8064,
- 8067, 8070, 8073, 8076, 8083, 8086, 8089, 8092,
- 8095, 8098, 8101, 8104, 8107, 8110, 8117, 8120,
- 8123, 8130, 8137, 8144, 8147, 8150, 8153, 8160,
- 8167, 8180, 8183, 8186, 8189, 8192, 8199, 8202,
- 8209, 8212, 8219, 8222, 8229, 8232, 8235, 8238,
- 8245, 8248, 8251, 8258, 8265, 8268, 8271, 8278,
- 8281, 8288, 8291, 8294, 8296, 8304, 8307, 8310,
- 8317, 8320, 8323, 8326, 8329, 8332, 8339, 8346,
- 8351, 8356, 8358, 8366, 8374, 8382, 8392, 8399,
- 8410, 8413, 8416, 8419, 8422, 8427, 8430, 8432,
- 8440, 8448, 8456, 8464, 8472, 8483, 8490, 8500,
- 8504, 8509, 8513, 8518, 8523, 8527, 8532, 8540,
- 8545, 8547, 8549, 8551, 8553, 8555, 8558, 8562,
- 8572, 8575, 8578, 8581, 8583, 8591, 8599, 8607,
- 8615, 8623, 8634, 8639, 8643, 8651, 8654, 8657,
- 8660, 8662, 8670, 8678, 8686, 8694, 8702, 8712,
- 8716, 8730, 8733, 8736, 8739, 8742, 8744, 8752,
- 8760, 8766, 8771, 8774, 8776, 8784, 8792, 8800,
- 8808, 8816, 8826, 8830, 8844, 8847, 8850, 8853,
- 8856, 8858, 8866, 8875, 8882, 8885, 8887, 8895,
- 8905, 8909, 8913, 8917, 8919, 8923, 8927, 8931,
- 8935, 8941, 8944, 8948, 8952, 8954, 8958, 8962,
- 8968, 8972, 8976, 8978, 8982, 8986, 8992, 8994,
- 9002, 9010, 9018, 9028, 9033, 9036, 9039, 9041,
- 9049, 9059, 9066, 9076, 9081, 9084, 9087, 9089,
- 9097, 9110, 9115, 9120, 9123, 9139, 9165, 9215,
- 9266, 9282, 9333, 9349, 9375, 9436, 9497, 9498,
- 9499, 9500, 9501, 9510, 9511, 9512, 9513, 9527,
- 9528, 9543, 9546, 9547, 9592, 9595, 9596, 9610,
- 9613, 9623, 9624, 9638, 9641, 9644, 9645, 9646,
- 9664, 9667, 9668, 9669, 9670, 9671, 9672, 9673,
- 9674, 9675, 9676, 9690, 9693, 9694, 9695, 9706,
- 9709, 9721, 9724, 9736, 9739, 9751, 9754, 9755,
- 9756, 9757, 9758, 9772, 9775, 9776, 9790, 9793,
- 9794, 9808, 9811, 9812, 9827, 9830, 9841, 9844,
- 9883, 9890, 9891, 9892, 9893, 9894, 9895, 9896,
- 9897, 9911, 9914, 9915, 9916, 9930, 9933, 9934,
- 9935, 9936, 9937, 9938, 9939
+ 0, 0, 46, 64, 107, 124, 139, 148,
+ 157, 159, 161, 164, 181, 198, 203, 258,
+ 278, 323, 334, 337, 348, 362, 376, 381,
+ 384, 387, 390, 393, 404, 415, 418, 421,
+ 432, 435, 438, 441, 452, 455, 458, 461,
+ 472, 479, 482, 485, 488, 499, 504, 507,
+ 510, 521, 524, 527, 530, 541, 552, 555,
+ 558, 561, 563, 574, 576, 587, 592, 595,
+ 598, 601, 612, 615, 618, 621, 632, 637,
+ 644, 687, 690, 693, 696, 699, 702, 705,
+ 708, 719, 724, 727, 738, 749, 756, 758,
+ 769, 771, 782, 785, 796, 807, 812, 815,
+ 818, 821, 832, 843, 850, 853, 856, 859,
+ 870, 873, 884, 897, 900, 912, 925, 928,
+ 931, 934, 937, 948, 951, 954, 957, 960,
+ 963, 966, 969, 972, 975, 986, 989, 992,
+ 1003, 1010, 1021, 1024, 1027, 1030, 1041, 1052,
+ 1065, 1068, 1071, 1074, 1077, 1088, 1091, 1102,
+ 1105, 1116, 1119, 1130, 1133, 1136, 1139, 1150,
+ 1153, 1156, 1167, 1174, 1177, 1180, 1191, 1194,
+ 1205, 1208, 1211, 1213, 1225, 1228, 1231, 1242,
+ 1245, 1248, 1251, 1254, 1257, 1268, 1271, 1274,
+ 1277, 1280, 1283, 1294, 1297, 1343, 1348, 1355,
+ 1399, 1417, 1425, 1437, 1445, 1448, 1450, 1457,
+ 1460, 1463, 1466, 1469, 1472, 1475, 1480, 1487,
+ 1531, 1534, 1552, 1596, 1599, 1607, 1619, 1627,
+ 1630, 1647, 1700, 1719, 1736, 1782, 1787, 1799,
+ 1811, 1866, 1885, 1900, 1911, 1924, 1937, 1950,
+ 1965, 1978, 1993, 2004, 2015, 2030, 2051, 2066,
+ 2077, 2088, 2099, 2104, 2119, 2122, 2125, 2128,
+ 2131, 2134, 2139, 2142, 2145, 2150, 2159, 2179,
+ 2225, 2230, 2249, 2304, 2323, 2338, 2349, 2362,
+ 2375, 2388, 2403, 2416, 2431, 2442, 2453, 2468,
+ 2489, 2504, 2515, 2526, 2537, 2550, 2596, 2610,
+ 2624, 2639, 2654, 2657, 2660, 2671, 2674, 2677,
+ 2680, 2691, 2694, 2705, 2710, 2722, 2734, 2749,
+ 2764, 2779, 2794, 2797, 2852, 2866, 2880, 2897,
+ 2910, 2919, 2930, 2941, 2952, 2965, 2976, 2989,
+ 2998, 3007, 3020, 3039, 3052, 3061, 3070, 3079,
+ 3084, 3089, 3100, 3105, 3112, 3114, 3116, 3125,
+ 3137, 3149, 3151, 3153, 3155, 3167, 3172, 3177,
+ 3182, 3191, 3195, 3197, 3199, 3208, 3216, 3224,
+ 3229, 3233, 3235, 3237, 3245, 3252, 3260, 3280,
+ 3289, 3291, 3301, 3313, 3323, 3326, 3333, 3347,
+ 3355, 3371, 3380, 3382, 3384, 3386, 3388, 3396,
+ 3405, 3408, 3415, 3425, 3434, 3450, 3458, 3474,
+ 3483, 3485, 3487, 3489, 3491, 3499, 3508, 3513,
+ 3527, 3530, 3533, 3538, 3543, 3549, 3555, 3570,
+ 3573, 3575, 3586, 3633, 3650, 3653, 3656, 3667,
+ 3670, 3681, 3684, 3695, 3700, 3703, 3706, 3709,
+ 3712, 3723, 3734, 3737, 3740, 3751, 3754, 3757,
+ 3760, 3771, 3774, 3777, 3780, 3791, 3798, 3801,
+ 3804, 3807, 3818, 3823, 3826, 3829, 3840, 3843,
+ 3846, 3849, 3860, 3871, 3874, 3877, 3880, 3882,
+ 3893, 3895, 3906, 3911, 3914, 3917, 3920, 3931,
+ 3934, 3937, 3940, 3951, 3954, 3957, 3960, 3963,
+ 3966, 3969, 3972, 3983, 3988, 3991, 4002, 4013,
+ 4020, 4022, 4033, 4035, 4046, 4049, 4060, 4071,
+ 4076, 4079, 4082, 4085, 4096, 4107, 4114, 4117,
+ 4120, 4123, 4134, 4137, 4148, 4161, 4164, 4176,
+ 4189, 4192, 4195, 4198, 4201, 4212, 4215, 4218,
+ 4221, 4224, 4227, 4230, 4233, 4236, 4239, 4250,
+ 4253, 4256, 4267, 4274, 4285, 4288, 4291, 4294,
+ 4305, 4316, 4329, 4332, 4335, 4338, 4341, 4352,
+ 4355, 4366, 4369, 4380, 4383, 4394, 4397, 4400,
+ 4403, 4414, 4417, 4420, 4431, 4438, 4441, 4444,
+ 4455, 4458, 4469, 4472, 4475, 4477, 4489, 4492,
+ 4495, 4506, 4509, 4512, 4515, 4518, 4521, 4532,
+ 4535, 4538, 4541, 4544, 4547, 4558, 4561, 4564,
+ 4567, 4578, 4581, 4592, 4599, 4607, 4615, 4625,
+ 4629, 4643, 4646, 4649, 4652, 4659, 4668, 4678,
+ 4688, 4692, 4706, 4709, 4712, 4720, 4723, 4732,
+ 4734, 4736, 4738, 4745, 4747, 4749, 4751, 4753,
+ 4755, 4757, 4764, 4766, 4768, 4775, 4777, 4779,
+ 4782, 4784, 4786, 4788, 4790, 4797, 4799, 4801,
+ 4803, 4805, 4812, 4814, 4816, 4818, 4826, 4828,
+ 4830, 4832, 4834, 4836, 4838, 4840, 4842, 4844,
+ 4846, 4848, 4850, 4852, 4854, 4861, 4863, 4865,
+ 4867, 4869, 4876, 4878, 4880, 4882, 4889, 4900,
+ 4920, 4922, 4924, 4926, 4928, 4934, 4945, 4948,
+ 4950, 4952, 4954, 4956, 4958, 4960, 4962, 4968,
+ 4979, 4993, 4995, 5006, 5008, 5010, 5012, 5018,
+ 5023, 5028, 5034, 5040, 5046, 5048, 5053, 5059,
+ 5065, 5080, 5082, 5084, 5086, 5089, 5091, 5093,
+ 5095, 5097, 5099, 5103, 5106, 5111, 5114, 5128,
+ 5131, 5133, 5135, 5137, 5139, 5141, 5147, 5152,
+ 5159, 5164, 5180, 5185, 5187, 5189, 5191, 5204,
+ 5209, 5211, 5213, 5215, 5217, 5219, 5221, 5223,
+ 5225, 5227, 5231, 5234, 5237, 5240, 5252, 5255,
+ 5257, 5259, 5261, 5263, 5265, 5267, 5269, 5271,
+ 5273, 5275, 5277, 5279, 5281, 5283, 5294, 5296,
+ 5298, 5300, 5302, 5313, 5315, 5317, 5319, 5321,
+ 5324, 5326, 5329, 5341, 5355, 5357, 5369, 5375,
+ 5380, 5385, 5388, 5394, 5397, 5400, 5403, 5406,
+ 5408, 5410, 5413, 5416, 5419, 5421, 5426, 5431,
+ 5436, 5438, 5441, 5444, 5447, 5450, 5455, 5458,
+ 5461, 5464, 5467, 5469, 5471, 5474, 5477, 5480,
+ 5482, 5484, 5486, 5491, 5493, 5495, 5498, 5501,
+ 5504, 5506, 5508, 5510, 5515, 5518, 5520, 5522,
+ 5524, 5526, 5531, 5533, 5535, 5540, 5543, 5546,
+ 5549, 5552, 5555, 5558, 5561, 5566, 5569, 5572,
+ 5575, 5578, 5581, 5584, 5589, 5592, 5595, 5600,
+ 5603, 5606, 5611, 5614, 5617, 5622, 5625, 5627,
+ 5632, 5635, 5638, 5642, 5648, 5651, 5654, 5657,
+ 5660, 5662, 5664, 5667, 5670, 5673, 5675, 5680,
+ 5682, 5684, 5689, 5691, 5693, 5698, 5712, 5718,
+ 5721, 5724, 5727, 5730, 5733, 5738, 5745, 5748,
+ 5751, 5754, 5757, 5760, 5765, 5770, 5773, 5778,
+ 5781, 5784, 5789, 5792, 5795, 5798, 5803, 5806,
+ 5809, 5814, 5819, 5822, 5827, 5830, 5833, 5838,
+ 5841, 5844, 5847, 5852, 5855, 5858, 5863, 5866,
+ 5873, 5880, 5885, 5892, 5899, 5912, 5919, 5927,
+ 5935, 5943, 5961, 5969, 5987, 5995, 6013, 6021,
+ 6037, 6043, 6055, 6061, 6064, 6072, 6084, 6092,
+ 6095, 6103, 6115, 6123, 6126, 6134, 6146, 6154,
+ 6157, 6160, 6163, 6168, 6175, 6185, 6190, 6193,
+ 6200, 6207, 6220, 6225, 6228, 6230, 6238, 6251,
+ 6256, 6259, 6264, 6275, 6289, 6292, 6297, 6306,
+ 6308, 6316, 6326, 6334, 6344, 6353, 6362, 6369,
+ 6377, 6385, 6395, 6403, 6413, 6422, 6431, 6438,
+ 6447, 6449, 6463, 6475, 6489, 6501, 6515, 6527,
+ 6541, 6552, 6555, 6568, 6581, 6584, 6597, 6610,
+ 6621, 6624, 6637, 6650, 6661, 6664, 6677, 6690,
+ 6701, 6704, 6711, 6714, 6722, 6730, 6733, 6736,
+ 6739, 6746, 6749, 6757, 6765, 6768, 6771, 6773,
+ 6781, 6789, 6797, 6805, 6813, 6826, 6831, 6834,
+ 6837, 6840, 6842, 6850, 6858, 6866, 6876, 6883,
+ 6893, 6900, 6910, 6917, 6930, 6935, 6938, 6941,
+ 6944, 6947, 6950, 6954, 6961, 6969, 6977, 6987,
+ 6994, 7005, 7008, 7011, 7014, 7017, 7031, 7034,
+ 7036, 7039, 7042, 7044, 7056, 7059, 7061, 7066,
+ 7071, 7073, 7081, 7091, 7098, 7106, 7114, 7124,
+ 7128, 7142, 7145, 7148, 7151, 7154, 7156, 7164,
+ 7172, 7180, 7190, 7194, 7208, 7211, 7214, 7217,
+ 7219, 7227, 7238, 7245, 7253, 7261, 7269, 7304,
+ 7315, 7318, 7321, 7336, 7339, 7378, 7385, 7388,
+ 7391, 7398, 7406, 7414, 7423, 7460, 7463, 7466,
+ 7473, 7481, 7489, 7500, 7539, 7542, 7545, 7552,
+ 7560, 7568, 7581, 7616, 7619, 7622, 7625, 7662,
+ 7675, 7685, 7692, 7700, 7708, 7716, 7724, 7732,
+ 7740, 7748, 7756, 7764, 7772, 7785, 7792, 7803,
+ 7806, 7809, 7812, 7815, 7818, 7821, 7824, 7827,
+ 7830, 7833, 7836, 7843, 7846, 7849, 7852, 7859,
+ 7862, 7869, 7880, 7883, 7890, 7895, 7898, 7901,
+ 7904, 7907, 7914, 7921, 7924, 7927, 7934, 7937,
+ 7940, 7943, 7950, 7953, 7956, 7959, 7966, 7973,
+ 7976, 7979, 7982, 7989, 7994, 7997, 8000, 8007,
+ 8010, 8013, 8016, 8023, 8030, 8033, 8036, 8039,
+ 8041, 8048, 8050, 8057, 8062, 8065, 8068, 8071,
+ 8078, 8081, 8084, 8087, 8094, 8097, 8100, 8103,
+ 8106, 8109, 8112, 8115, 8122, 8127, 8130, 8137,
+ 8144, 8151, 8153, 8160, 8162, 8169, 8172, 8179,
+ 8186, 8191, 8194, 8197, 8200, 8207, 8214, 8221,
+ 8224, 8227, 8230, 8237, 8240, 8247, 8256, 8259,
+ 8267, 8276, 8279, 8282, 8285, 8288, 8295, 8298,
+ 8301, 8304, 8307, 8310, 8313, 8316, 8319, 8322,
+ 8329, 8332, 8335, 8342, 8349, 8356, 8359, 8362,
+ 8365, 8372, 8379, 8392, 8395, 8398, 8401, 8404,
+ 8411, 8414, 8421, 8424, 8431, 8434, 8441, 8444,
+ 8447, 8450, 8457, 8460, 8463, 8470, 8477, 8480,
+ 8483, 8490, 8493, 8500, 8503, 8506, 8508, 8516,
+ 8519, 8522, 8529, 8532, 8535, 8538, 8541, 8544,
+ 8551, 8554, 8557, 8560, 8563, 8566, 8573, 8580,
+ 8585, 8590, 8592, 8600, 8608, 8616, 8626, 8633,
+ 8644, 8647, 8650, 8653, 8656, 8661, 8664, 8666,
+ 8674, 8682, 8690, 8698, 8706, 8717, 8724, 8734,
+ 8738, 8743, 8747, 8752, 8757, 8761, 8766, 8774,
+ 8779, 8781, 8783, 8785, 8787, 8789, 8792, 8796,
+ 8806, 8809, 8812, 8815, 8817, 8825, 8833, 8841,
+ 8849, 8857, 8868, 8873, 8877, 8885, 8888, 8891,
+ 8894, 8896, 8904, 8912, 8920, 8928, 8936, 8946,
+ 8950, 8964, 8967, 8970, 8973, 8976, 8978, 8986,
+ 8994, 9000, 9005, 9008, 9010, 9018, 9026, 9034,
+ 9042, 9050, 9060, 9064, 9078, 9081, 9084, 9087,
+ 9090, 9092, 9100, 9109, 9116, 9119, 9121, 9129,
+ 9139, 9143, 9147, 9151, 9153, 9157, 9161, 9165,
+ 9169, 9175, 9178, 9182, 9186, 9188, 9192, 9196,
+ 9202, 9206, 9210, 9212, 9216, 9220, 9226, 9228,
+ 9236, 9244, 9252, 9262, 9267, 9270, 9273, 9275,
+ 9283, 9293, 9300, 9310, 9315, 9318, 9321, 9323,
+ 9331, 9344, 9349, 9354, 9357, 9373, 9399, 9451,
+ 9504, 9520, 9573, 9589, 9615, 9678, 9741, 9742,
+ 9743, 9744, 9745, 9754, 9755, 9756, 9757, 9771,
+ 9772, 9787, 9790, 9791, 9838, 9841, 9842, 9856,
+ 9859, 9869, 9870, 9884, 9887, 9890, 9891, 9892,
+ 9912, 9915, 9916, 9917, 9918, 9919, 9920, 9921,
+ 9922, 9923, 9924, 9938, 9941, 9942, 9943, 9954,
+ 9957, 9969, 9972, 9984, 9987, 9999, 10002, 10003,
+ 10004, 10005, 10006, 10020, 10023, 10024, 10038, 10041,
+ 10042, 10056, 10059, 10060, 10075, 10078, 10089, 10092,
+ 10131, 10138, 10139, 10140, 10141, 10142, 10143, 10144,
+ 10145, 10159, 10162, 10163, 10164, 10178, 10181, 10182,
+ 10183, 10184, 10185, 10186, 10187
};
static const short _zone_scanner_indicies[] = {
1, 1, 2, 3, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 4, 0, 27, 27, 28, 29,
- 31, 32, 33, 34, 35, 31, 32, 33,
- 34, 35, 36, 37, 30, 26, 39, 39,
- 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 42, 43, 44, 45, 46,
+ 17, 18, 19, 20, 21, 22, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 4, 0, 28, 28,
+ 29, 30, 32, 33, 34, 35, 36, 32,
+ 33, 34, 35, 36, 37, 38, 31, 27,
+ 40, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 38, 62,
- 62, 63, 64, 65, 66, 67, 65, 66,
- 67, 68, 69, 70, 70, 71, 72, 61,
- 74, 74, 76, 77, 78, 79, 80, 73,
- 73, 81, 82, 73, 73, 73, 75, 84,
- 84, 85, 86, 87, 88, 87, 88, 83,
- 90, 90, 91, 92, 93, 94, 93, 94,
- 89, 96, 95, 98, 97, 100, 99, 75,
- 101, 101, 102, 103, 78, 87, 88, 87,
- 104, 105, 106, 87, 107, 73, 73, 73,
- 83, 108, 108, 109, 110, 78, 93, 94,
- 93, 111, 112, 113, 93, 114, 73, 73,
- 73, 83, 96, 116, 95, 115, 83, 117,
- 117, 119, 120, 73, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133,
- 134, 135, 136, 137, 138, 78, 122, 123,
- 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 22,
- 23, 139, 140, 141, 142, 143, 144, 73,
- 73, 121, 73, 118, 146, 146, 147, 148,
- 31, 32, 33, 34, 35, 31, 32, 33,
- 34, 35, 87, 88, 149, 150, 30, 145,
- 152, 152, 153, 154, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, 57, 58, 42, 43, 44,
+ 55, 56, 57, 58, 59, 60, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, 57, 58, 93, 94,
- 155, 156, 151, 157, 158, 159, 160, 161,
- 157, 158, 159, 160, 161, 38, 162, 162,
- 38, 163, 163, 164, 165, 166, 167, 168,
- 168, 169, 170, 61, 84, 87, 84, 85,
- 86, 88, 171, 87, 171, 172, 173, 174,
- 99, 83, 90, 93, 90, 91, 92, 94,
- 175, 93, 175, 176, 177, 178, 99, 83,
- 179, 180, 179, 180, 38, 181, 181, 38,
- 182, 182, 38, 183, 183, 38, 184, 184,
- 38, 185, 185, 186, 187, 188, 189, 190,
- 190, 191, 192, 61, 193, 193, 194, 195,
- 196, 197, 198, 198, 199, 200, 61, 201,
- 201, 38, 202, 202, 38, 203, 203, 204,
- 205, 206, 207, 208, 208, 209, 210, 61,
- 211, 211, 38, 212, 212, 38, 213, 213,
- 38, 214, 214, 215, 216, 217, 218, 219,
- 219, 220, 221, 61, 222, 222, 38, 223,
- 223, 38, 224, 224, 38, 225, 225, 226,
- 227, 228, 229, 230, 230, 231, 232, 61,
- 233, 234, 235, 233, 234, 235, 38, 236,
- 236, 38, 237, 237, 38, 238, 238, 38,
- 239, 239, 240, 241, 242, 243, 244, 244,
- 245, 246, 61, 247, 248, 247, 248, 38,
- 249, 249, 38, 250, 250, 38, 251, 251,
- 252, 253, 254, 255, 256, 256, 257, 258,
- 61, 259, 259, 38, 260, 260, 38, 261,
- 261, 38, 262, 262, 263, 264, 265, 266,
- 267, 267, 268, 269, 61, 270, 270, 271,
- 272, 273, 274, 275, 275, 276, 277, 61,
- 278, 278, 38, 279, 279, 38, 280, 281,
- 38, 282, 38, 283, 283, 284, 285, 286,
- 287, 288, 288, 289, 290, 61, 291, 38,
- 292, 292, 293, 294, 295, 296, 297, 297,
- 298, 299, 61, 300, 301, 300, 301, 38,
- 302, 302, 38, 303, 303, 38, 304, 304,
- 38, 305, 305, 306, 307, 308, 309, 310,
- 310, 311, 312, 61, 313, 313, 38, 314,
- 314, 38, 315, 315, 38, 316, 316, 317,
- 318, 319, 320, 321, 321, 322, 323, 61,
- 324, 325, 324, 325, 38, 326, 326, 327,
- 328, 329, 330, 38, 331, 331, 332, 333,
- 334, 335, 336, 337, 338, 339, 340, 341,
- 342, 343, 344, 345, 346, 347, 348, 349,
- 350, 334, 335, 336, 337, 338, 339, 340,
- 341, 342, 343, 344, 345, 346, 347, 348,
- 349, 350, 351, 352, 38, 325, 325, 38,
- 353, 353, 38, 354, 354, 38, 355, 355,
- 38, 356, 356, 38, 357, 357, 38, 358,
- 358, 38, 359, 359, 360, 361, 362, 363,
- 364, 364, 365, 366, 61, 367, 368, 367,
- 368, 38, 369, 369, 38, 370, 370, 371,
- 372, 373, 374, 375, 375, 376, 377, 61,
- 378, 378, 379, 380, 381, 382, 383, 383,
- 384, 385, 61, 386, 387, 388, 389, 388,
- 389, 38, 390, 38, 391, 391, 392, 393,
- 394, 395, 396, 396, 397, 398, 61, 399,
- 38, 400, 400, 401, 402, 403, 404, 405,
- 405, 406, 407, 61, 408, 408, 38, 409,
- 409, 410, 411, 412, 413, 414, 414, 415,
- 416, 61, 417, 417, 418, 419, 420, 421,
- 422, 422, 423, 424, 61, 425, 426, 425,
- 426, 38, 427, 427, 38, 428, 428, 38,
- 429, 429, 38, 430, 430, 431, 432, 433,
- 434, 435, 435, 436, 437, 61, 438, 438,
- 439, 440, 441, 442, 443, 443, 444, 445,
- 61, 446, 447, 448, 446, 447, 448, 38,
- 449, 449, 38, 450, 450, 38, 451, 451,
- 38, 452, 452, 453, 454, 455, 456, 457,
- 457, 458, 459, 61, 460, 460, 38, 461,
- 461, 462, 463, 464, 465, 466, 466, 467,
- 468, 61, 469, 469, 470, 471, 472, 472,
- 473, 474, 475, 475, 476, 477, 61, 478,
- 478, 38, 479, 479, 480, 481, 482, 483,
- 484, 485, 485, 486, 487, 61, 488, 488,
- 489, 490, 491, 491, 492, 493, 494, 494,
- 495, 496, 61, 497, 497, 38, 498, 498,
- 38, 499, 499, 38, 500, 500, 38, 501,
- 501, 502, 503, 504, 505, 506, 506, 507,
- 508, 61, 509, 509, 38, 510, 510, 38,
- 511, 511, 38, 512, 512, 38, 513, 513,
- 38, 514, 514, 38, 515, 515, 38, 516,
- 516, 38, 517, 517, 38, 518, 518, 519,
- 520, 521, 522, 523, 523, 524, 525, 61,
- 526, 526, 38, 527, 527, 38, 528, 528,
- 529, 530, 531, 532, 533, 533, 534, 535,
- 61, 536, 537, 538, 536, 537, 538, 38,
- 539, 539, 540, 541, 542, 543, 544, 544,
- 545, 546, 61, 547, 547, 38, 548, 548,
- 38, 549, 549, 38, 550, 550, 551, 552,
- 553, 554, 555, 555, 556, 557, 61, 558,
- 558, 559, 560, 561, 562, 563, 563, 564,
- 565, 61, 566, 567, 568, 569, 570, 571,
- 566, 567, 568, 569, 570, 571, 38, 572,
- 572, 38, 573, 573, 38, 574, 574, 38,
- 575, 575, 38, 576, 576, 577, 578, 579,
- 580, 581, 581, 582, 583, 61, 584, 584,
- 38, 585, 585, 586, 587, 588, 589, 590,
- 590, 591, 592, 61, 593, 593, 38, 594,
- 594, 595, 596, 597, 598, 599, 599, 600,
- 601, 61, 602, 602, 38, 603, 603, 604,
- 605, 606, 607, 608, 608, 609, 610, 61,
- 611, 611, 38, 612, 612, 38, 613, 613,
- 38, 614, 614, 615, 616, 617, 618, 619,
- 619, 620, 621, 61, 622, 622, 38, 623,
- 623, 38, 624, 624, 625, 626, 627, 628,
- 629, 629, 630, 631, 61, 632, 633, 634,
- 632, 633, 634, 38, 635, 635, 38, 636,
- 636, 38, 637, 637, 638, 639, 640, 641,
- 642, 642, 643, 644, 61, 645, 645, 38,
- 646, 646, 647, 648, 649, 650, 651, 651,
- 652, 653, 61, 654, 654, 38, 655, 655,
- 38, 657, 656, 659, 659, 660, 661, 663,
- 664, 665, 665, 666, 667, 662, 658, 668,
- 668, 38, 669, 669, 38, 670, 670, 671,
- 672, 673, 674, 675, 675, 676, 677, 61,
- 678, 678, 38, 679, 679, 38, 680, 680,
- 38, 681, 681, 38, 682, 682, 38, 683,
- 683, 684, 685, 686, 687, 688, 688, 689,
- 690, 61, 692, 691, 38, 693, 693, 694,
- 695, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 696, 697, 4,
- 0, 698, 325, 698, 325, 38, 699, 699,
- 700, 701, 702, 703, 38, 704, 704, 705,
- 706, 708, 709, 710, 711, 712, 713, 714,
- 715, 716, 717, 718, 719, 720, 721, 722,
- 723, 724, 708, 709, 710, 711, 712, 713,
- 714, 715, 716, 717, 718, 719, 720, 721,
- 722, 723, 724, 725, 726, 707, 656, 727,
- 727, 728, 729, 731, 732, 733, 734, 735,
- 731, 732, 733, 734, 735, 736, 737, 730,
- 26, 727, 727, 728, 729, 736, 737, 738,
- 26, 740, 741, 742, 743, 744, 740, 741,
- 742, 743, 744, 739, 26, 745, 745, 746,
- 747, 749, 750, 748, 26, 752, 751, 38,
- 754, 753, 756, 757, 758, 756, 757, 758,
- 755, 759, 759, 755, 760, 760, 755, 761,
- 761, 755, 762, 762, 755, 763, 763, 755,
- 764, 764, 755, 765, 765, 765, 765, 755,
- 767, 767, 768, 769, 770, 771, 766, 772,
- 772, 773, 774, 5, 6, 7, 8, 9,
+ 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 39, 64, 64, 65, 66, 67,
+ 68, 69, 67, 68, 69, 70, 71, 72,
+ 72, 73, 74, 63, 76, 76, 78, 79,
+ 80, 81, 82, 75, 75, 83, 84, 75,
+ 75, 75, 77, 86, 86, 87, 88, 89,
+ 90, 89, 90, 85, 92, 92, 93, 94,
+ 95, 96, 95, 96, 91, 98, 97, 100,
+ 99, 102, 101, 77, 103, 103, 104, 105,
+ 80, 89, 90, 89, 106, 107, 108, 89,
+ 109, 75, 75, 75, 85, 110, 110, 111,
+ 112, 80, 95, 96, 95, 113, 114, 115,
+ 95, 116, 75, 75, 75, 85, 98, 118,
+ 97, 117, 85, 119, 119, 121, 122, 75,
+ 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 80, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136,
+ 137, 138, 139, 140, 141, 23, 24, 142,
+ 143, 144, 145, 146, 147, 75, 75, 123,
+ 75, 120, 149, 149, 150, 151, 32, 33,
+ 34, 35, 36, 32, 33, 34, 35, 36,
+ 89, 90, 152, 153, 31, 148, 155, 155,
+ 156, 157, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 95, 96,
+ 158, 159, 154, 160, 161, 162, 163, 164,
+ 160, 161, 162, 163, 164, 39, 165, 165,
+ 39, 166, 166, 167, 168, 169, 170, 171,
+ 171, 172, 173, 63, 86, 89, 86, 87,
+ 88, 90, 174, 89, 174, 175, 176, 177,
+ 101, 85, 92, 95, 92, 93, 94, 96,
+ 178, 95, 178, 179, 180, 181, 101, 85,
+ 182, 183, 182, 183, 39, 184, 184, 39,
+ 185, 185, 39, 186, 186, 39, 187, 187,
+ 39, 188, 188, 189, 190, 191, 192, 193,
+ 193, 194, 195, 63, 196, 196, 197, 198,
+ 199, 200, 201, 201, 202, 203, 63, 204,
+ 204, 39, 205, 205, 39, 206, 206, 207,
+ 208, 209, 210, 211, 211, 212, 213, 63,
+ 214, 214, 39, 215, 215, 39, 216, 216,
+ 39, 217, 217, 218, 219, 220, 221, 222,
+ 222, 223, 224, 63, 225, 225, 39, 226,
+ 226, 39, 227, 227, 39, 228, 228, 229,
+ 230, 231, 232, 233, 233, 234, 235, 63,
+ 236, 237, 238, 236, 237, 238, 39, 239,
+ 239, 39, 240, 240, 39, 241, 241, 39,
+ 242, 242, 243, 244, 245, 246, 247, 247,
+ 248, 249, 63, 250, 251, 250, 251, 39,
+ 252, 252, 39, 253, 253, 39, 254, 254,
+ 255, 256, 257, 258, 259, 259, 260, 261,
+ 63, 262, 262, 39, 263, 263, 39, 264,
+ 264, 39, 265, 265, 266, 267, 268, 269,
+ 270, 270, 271, 272, 63, 273, 273, 274,
+ 275, 276, 277, 278, 278, 279, 280, 63,
+ 281, 281, 39, 282, 282, 39, 283, 284,
+ 39, 285, 39, 286, 286, 287, 288, 289,
+ 290, 291, 291, 292, 293, 63, 294, 39,
+ 295, 295, 296, 297, 298, 299, 300, 300,
+ 301, 302, 63, 303, 304, 303, 304, 39,
+ 305, 305, 39, 306, 306, 39, 307, 307,
+ 39, 308, 308, 309, 310, 311, 312, 313,
+ 313, 314, 315, 63, 316, 316, 39, 317,
+ 317, 39, 318, 318, 39, 319, 319, 320,
+ 321, 322, 323, 324, 324, 325, 326, 63,
+ 327, 328, 327, 328, 39, 329, 329, 330,
+ 331, 332, 333, 39, 334, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, 350, 351, 352,
+ 353, 354, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, 349, 350,
+ 351, 352, 353, 354, 355, 356, 39, 328,
+ 328, 39, 357, 357, 39, 358, 358, 39,
+ 359, 359, 39, 360, 360, 39, 361, 361,
+ 39, 362, 362, 39, 363, 363, 364, 365,
+ 366, 367, 368, 368, 369, 370, 63, 371,
+ 372, 371, 372, 39, 373, 373, 39, 374,
+ 374, 375, 376, 377, 378, 379, 379, 380,
+ 381, 63, 382, 382, 383, 384, 385, 386,
+ 387, 387, 388, 389, 63, 390, 391, 392,
+ 393, 392, 393, 39, 394, 39, 395, 395,
+ 396, 397, 398, 399, 400, 400, 401, 402,
+ 63, 403, 39, 404, 404, 405, 406, 407,
+ 408, 409, 409, 410, 411, 63, 412, 412,
+ 39, 413, 413, 414, 415, 416, 417, 418,
+ 418, 419, 420, 63, 421, 421, 422, 423,
+ 424, 425, 426, 426, 427, 428, 63, 429,
+ 430, 429, 430, 39, 431, 431, 39, 432,
+ 432, 39, 433, 433, 39, 434, 434, 435,
+ 436, 437, 438, 439, 439, 440, 441, 63,
+ 442, 442, 443, 444, 445, 446, 447, 447,
+ 448, 449, 63, 450, 451, 452, 450, 451,
+ 452, 39, 453, 453, 39, 454, 454, 39,
+ 455, 455, 39, 456, 456, 457, 458, 459,
+ 460, 461, 461, 462, 463, 63, 464, 464,
+ 39, 465, 465, 466, 467, 468, 469, 470,
+ 470, 471, 472, 63, 473, 473, 474, 475,
+ 476, 476, 477, 478, 479, 479, 480, 481,
+ 63, 482, 482, 39, 483, 483, 484, 485,
+ 486, 487, 488, 489, 489, 490, 491, 63,
+ 492, 492, 493, 494, 495, 495, 496, 497,
+ 498, 498, 499, 500, 63, 501, 501, 39,
+ 502, 502, 39, 503, 503, 39, 504, 504,
+ 39, 505, 505, 506, 507, 508, 509, 510,
+ 510, 511, 512, 63, 513, 513, 39, 514,
+ 514, 39, 515, 515, 39, 516, 516, 39,
+ 517, 517, 39, 518, 518, 39, 519, 519,
+ 39, 520, 520, 39, 521, 521, 39, 522,
+ 522, 523, 524, 525, 526, 527, 527, 528,
+ 529, 63, 530, 530, 39, 531, 531, 39,
+ 532, 532, 533, 534, 535, 536, 537, 537,
+ 538, 539, 63, 540, 541, 542, 540, 541,
+ 542, 39, 543, 543, 544, 545, 546, 547,
+ 548, 548, 549, 550, 63, 551, 551, 39,
+ 552, 552, 39, 553, 553, 39, 554, 554,
+ 555, 556, 557, 558, 559, 559, 560, 561,
+ 63, 562, 562, 563, 564, 565, 566, 567,
+ 567, 568, 569, 63, 570, 571, 572, 573,
+ 574, 575, 570, 571, 572, 573, 574, 575,
+ 39, 576, 576, 39, 577, 577, 39, 578,
+ 578, 39, 579, 579, 39, 580, 580, 581,
+ 582, 583, 584, 585, 585, 586, 587, 63,
+ 588, 588, 39, 589, 589, 590, 591, 592,
+ 593, 594, 594, 595, 596, 63, 597, 597,
+ 39, 598, 598, 599, 600, 601, 602, 603,
+ 603, 604, 605, 63, 606, 606, 39, 607,
+ 607, 608, 609, 610, 611, 612, 612, 613,
+ 614, 63, 615, 615, 39, 616, 616, 39,
+ 617, 617, 39, 618, 618, 619, 620, 621,
+ 622, 623, 623, 624, 625, 63, 626, 626,
+ 39, 627, 627, 39, 628, 628, 629, 630,
+ 631, 632, 633, 633, 634, 635, 63, 636,
+ 637, 638, 636, 637, 638, 39, 639, 639,
+ 39, 640, 640, 39, 641, 641, 642, 643,
+ 644, 645, 646, 646, 647, 648, 63, 649,
+ 649, 39, 650, 650, 651, 652, 653, 654,
+ 655, 655, 656, 657, 63, 658, 658, 39,
+ 659, 659, 39, 661, 660, 663, 663, 664,
+ 665, 667, 668, 669, 669, 670, 671, 666,
+ 662, 672, 672, 39, 673, 673, 39, 674,
+ 674, 675, 676, 677, 678, 679, 679, 680,
+ 681, 63, 682, 682, 39, 683, 683, 39,
+ 684, 684, 39, 685, 685, 39, 686, 686,
+ 39, 687, 687, 688, 689, 690, 691, 692,
+ 692, 693, 694, 63, 695, 695, 39, 696,
+ 696, 39, 697, 697, 39, 698, 698, 39,
+ 699, 699, 39, 700, 700, 701, 702, 703,
+ 704, 705, 705, 706, 707, 63, 709, 708,
+ 39, 710, 710, 711, 712, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 713, 714, 4, 0, 715,
+ 328, 715, 328, 39, 716, 716, 717, 718,
+ 719, 720, 39, 721, 721, 722, 723, 725,
+ 726, 727, 728, 729, 730, 731, 732, 733,
+ 734, 735, 736, 737, 738, 739, 740, 741,
+ 742, 725, 726, 727, 728, 729, 730, 731,
+ 732, 733, 734, 735, 736, 737, 738, 739,
+ 740, 741, 742, 743, 744, 724, 660, 745,
+ 745, 746, 747, 749, 750, 751, 752, 753,
+ 749, 750, 751, 752, 753, 754, 755, 748,
+ 27, 745, 745, 746, 747, 754, 755, 756,
+ 27, 758, 759, 760, 761, 762, 758, 759,
+ 760, 761, 762, 757, 27, 763, 763, 764,
+ 765, 767, 768, 766, 27, 770, 769, 39,
+ 772, 771, 774, 775, 776, 774, 775, 776,
+ 773, 777, 777, 773, 778, 778, 773, 779,
+ 779, 773, 780, 780, 773, 781, 781, 773,
+ 782, 782, 773, 783, 783, 783, 783, 773,
+ 785, 785, 786, 787, 788, 789, 784, 790,
+ 790, 791, 792, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 5, 6, 7, 8,
+ 18, 19, 20, 21, 22, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 793,
+ 794, 4, 660, 797, 795, 796, 799, 799,
+ 800, 801, 32, 33, 34, 35, 36, 32,
+ 33, 34, 35, 36, 802, 803, 31, 798,
+ 804, 804, 805, 806, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 775, 776, 4,
- 656, 779, 777, 778, 781, 781, 782, 783,
- 31, 32, 33, 34, 35, 31, 32, 33,
- 34, 35, 784, 785, 30, 780, 786, 786,
- 787, 788, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 789, 790, 4, 656,
- 792, 791, 38, 27, 27, 28, 29, 36,
- 37, 793, 26, 795, 796, 797, 798, 799,
- 795, 796, 797, 798, 799, 794, 26, 800,
- 800, 801, 802, 804, 805, 803, 26, 807,
- 806, 38, 809, 809, 810, 811, 65, 66,
- 67, 65, 66, 67, 812, 813, 70, 70,
- 814, 815, 808, 816, 816, 817, 818, 73,
- 122, 123, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, 136, 137,
- 138, 78, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 819, 820, 73, 73, 821,
- 822, 73, 73, 121, 73, 658, 824, 824,
- 825, 826, 65, 66, 67, 65, 66, 67,
- 87, 88, 827, 828, 829, 830, 831, 832,
- 823, 833, 833, 834, 835, 78, 93, 94,
- 836, 111, 112, 113, 837, 114, 73, 73,
- 73, 83, 838, 838, 839, 840, 5, 6,
+ 17, 18, 19, 20, 21, 22, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 5,
- 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21,
- 93, 94, 841, 842, 4, 0, 96, 844,
- 95, 843, 89, 845, 845, 846, 847, 848,
- 849, 848, 849, 95, 95, 95, 83, 850,
- 850, 851, 852, 96, 853, 96, 853, 95,
- 95, 95, 89, 854, 854, 855, 856, 73,
- 122, 123, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, 136, 137,
- 138, 78, 122, 123, 124, 125, 126, 127,
+ 15, 16, 17, 18, 19, 20, 21, 22,
+ 807, 808, 4, 660, 810, 809, 39, 28,
+ 28, 29, 30, 37, 38, 811, 27, 813,
+ 814, 815, 816, 817, 813, 814, 815, 816,
+ 817, 812, 27, 818, 818, 819, 820, 822,
+ 823, 821, 27, 825, 824, 39, 827, 827,
+ 828, 829, 67, 68, 69, 67, 68, 69,
+ 830, 831, 72, 72, 832, 833, 826, 834,
+ 834, 835, 836, 75, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 93, 94, 841, 857, 112,
- 113, 841, 858, 73, 73, 121, 73, 118,
- 84, 84, 85, 86, 157, 158, 159, 160,
- 161, 157, 158, 159, 160, 161, 87, 88,
- 87, 88, 823, 84, 84, 85, 86, 233,
- 234, 235, 233, 234, 235, 87, 88, 87,
- 88, 823, 84, 84, 85, 86, 278, 278,
- 87, 88, 87, 88, 823, 84, 84, 85,
- 86, 300, 301, 300, 301, 87, 88, 87,
- 88, 823, 84, 84, 85, 86, 698, 325,
- 698, 325, 87, 88, 87, 88, 823, 84,
- 84, 85, 86, 367, 368, 367, 368, 87,
- 88, 87, 88, 823, 84, 84, 85, 86,
- 386, 387, 388, 389, 388, 389, 87, 88,
- 87, 88, 823, 84, 84, 85, 86, 425,
- 426, 425, 426, 87, 88, 87, 88, 823,
- 84, 84, 85, 86, 446, 447, 448, 446,
- 447, 448, 87, 88, 87, 88, 823, 84,
- 84, 85, 86, 509, 509, 87, 88, 87,
- 88, 823, 84, 84, 85, 86, 526, 526,
- 87, 88, 87, 88, 823, 84, 84, 85,
- 86, 536, 537, 538, 536, 537, 538, 87,
- 88, 87, 88, 823, 84, 84, 85, 86,
- 566, 567, 568, 569, 570, 571, 566, 567,
- 568, 569, 570, 571, 87, 88, 87, 88,
- 823, 84, 84, 85, 86, 632, 633, 634,
- 632, 633, 634, 87, 88, 87, 88, 823,
- 84, 84, 85, 86, 668, 668, 87, 88,
- 87, 88, 823, 84, 84, 85, 86, 678,
- 678, 87, 88, 87, 88, 823, 96, 860,
- 95, 859, 83, 84, 84, 85, 86, 756,
- 757, 758, 756, 757, 758, 87, 88, 87,
- 88, 861, 862, 862, 755, 863, 863, 755,
- 864, 864, 755, 865, 865, 755, 866, 866,
- 755, 867, 867, 867, 867, 755, 868, 868,
- 755, 869, 869, 755, 870, 870, 870, 870,
- 755, 872, 872, 873, 874, 87, 88, 875,
- 876, 871, 878, 878, 879, 880, 31, 32,
- 33, 34, 35, 31, 32, 33, 34, 35,
- 87, 88, 881, 882, 30, 877, 883, 883,
- 884, 885, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 93, 94, 886, 887,
- 4, 0, 96, 889, 95, 888, 151, 891,
- 891, 892, 893, 65, 66, 67, 65, 66,
- 67, 87, 88, 894, 895, 829, 830, 896,
- 897, 890, 898, 898, 899, 900, 73, 122,
- 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138,
- 78, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136,
- 137, 138, 93, 94, 901, 857, 112, 113,
- 902, 858, 73, 73, 121, 73, 118, 872,
- 872, 873, 874, 157, 158, 159, 160, 161,
- 157, 158, 159, 160, 161, 87, 88, 875,
- 876, 890, 872, 872, 873, 874, 233, 234,
- 235, 233, 234, 235, 87, 88, 875, 876,
- 890, 872, 872, 873, 874, 278, 278, 87,
- 88, 875, 876, 890, 872, 872, 873, 874,
- 300, 301, 300, 301, 87, 88, 875, 876,
- 890, 872, 872, 873, 874, 698, 325, 698,
- 325, 87, 88, 875, 876, 890, 872, 872,
- 873, 874, 367, 368, 367, 368, 87, 88,
- 875, 876, 890, 872, 872, 873, 874, 386,
- 387, 388, 389, 388, 389, 87, 88, 875,
- 876, 890, 872, 872, 873, 874, 425, 426,
- 425, 426, 87, 88, 875, 876, 890, 872,
- 872, 873, 874, 446, 447, 448, 446, 447,
- 448, 87, 88, 875, 876, 890, 872, 872,
- 873, 874, 509, 509, 87, 88, 875, 876,
- 890, 872, 872, 873, 874, 526, 526, 87,
- 88, 875, 876, 890, 872, 872, 873, 874,
- 536, 537, 538, 536, 537, 538, 87, 88,
- 875, 876, 890, 872, 872, 873, 874, 566,
- 567, 568, 569, 570, 571, 566, 567, 568,
- 569, 570, 571, 87, 88, 875, 876, 890,
- 872, 872, 873, 874, 632, 633, 634, 632,
- 633, 634, 87, 88, 875, 876, 890, 872,
- 872, 873, 874, 668, 668, 87, 88, 875,
- 876, 890, 872, 872, 873, 874, 678, 678,
- 87, 88, 875, 876, 890, 903, 903, 98,
- 905, 906, 97, 97, 907, 908, 97, 97,
- 97, 904, 909, 909, 910, 911, 5, 6,
+ 136, 137, 138, 139, 140, 141, 80, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 134, 135, 136, 137, 138, 139, 140,
+ 141, 837, 838, 75, 75, 839, 840, 75,
+ 75, 123, 75, 662, 842, 842, 843, 844,
+ 67, 68, 69, 67, 68, 69, 89, 90,
+ 845, 846, 847, 848, 849, 850, 841, 851,
+ 851, 852, 853, 80, 95, 96, 854, 113,
+ 114, 115, 855, 116, 75, 75, 75, 85,
+ 856, 856, 857, 858, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 5,
+ 15, 16, 17, 18, 19, 20, 21, 22,
+ 95, 96, 859, 860, 4, 0, 98, 862,
+ 97, 861, 91, 863, 863, 864, 865, 866,
+ 867, 866, 867, 97, 97, 97, 85, 868,
+ 868, 869, 870, 98, 871, 98, 871, 97,
+ 97, 97, 91, 872, 872, 873, 874, 75,
+ 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 80, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136,
+ 137, 138, 139, 140, 141, 95, 96, 859,
+ 875, 114, 115, 859, 876, 75, 75, 123,
+ 75, 120, 86, 86, 87, 88, 160, 161,
+ 162, 163, 164, 160, 161, 162, 163, 164,
+ 89, 90, 89, 90, 841, 86, 86, 87,
+ 88, 236, 237, 238, 236, 237, 238, 89,
+ 90, 89, 90, 841, 86, 86, 87, 88,
+ 281, 281, 89, 90, 89, 90, 841, 86,
+ 86, 87, 88, 303, 304, 303, 304, 89,
+ 90, 89, 90, 841, 86, 86, 87, 88,
+ 715, 328, 715, 328, 89, 90, 89, 90,
+ 841, 86, 86, 87, 88, 371, 372, 371,
+ 372, 89, 90, 89, 90, 841, 86, 86,
+ 87, 88, 390, 391, 392, 393, 392, 393,
+ 89, 90, 89, 90, 841, 86, 86, 87,
+ 88, 429, 430, 429, 430, 89, 90, 89,
+ 90, 841, 86, 86, 87, 88, 450, 451,
+ 452, 450, 451, 452, 89, 90, 89, 90,
+ 841, 86, 86, 87, 88, 513, 513, 89,
+ 90, 89, 90, 841, 86, 86, 87, 88,
+ 530, 530, 89, 90, 89, 90, 841, 86,
+ 86, 87, 88, 540, 541, 542, 540, 541,
+ 542, 89, 90, 89, 90, 841, 86, 86,
+ 87, 88, 570, 571, 572, 573, 574, 575,
+ 570, 571, 572, 573, 574, 575, 89, 90,
+ 89, 90, 841, 86, 86, 87, 88, 636,
+ 637, 638, 636, 637, 638, 89, 90, 89,
+ 90, 841, 86, 86, 87, 88, 672, 672,
+ 89, 90, 89, 90, 841, 86, 86, 87,
+ 88, 682, 682, 89, 90, 89, 90, 841,
+ 86, 86, 87, 88, 695, 695, 89, 90,
+ 89, 90, 841, 98, 878, 97, 877, 85,
+ 86, 86, 87, 88, 774, 775, 776, 774,
+ 775, 776, 89, 90, 89, 90, 879, 880,
+ 880, 773, 881, 881, 773, 882, 882, 773,
+ 883, 883, 773, 884, 884, 773, 885, 885,
+ 885, 885, 773, 886, 886, 773, 887, 887,
+ 773, 888, 888, 888, 888, 773, 890, 890,
+ 891, 892, 89, 90, 893, 894, 889, 896,
+ 896, 897, 898, 32, 33, 34, 35, 36,
+ 32, 33, 34, 35, 36, 89, 90, 899,
+ 900, 31, 895, 901, 901, 902, 903, 5,
6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21,
- 87, 88, 912, 913, 4, 118, 84, 87,
- 84, 85, 86, 88, 914, 915, 914, 916,
- 917, 918, 777, 83, 90, 93, 90, 91,
- 92, 94, 919, 844, 919, 920, 921, 922,
- 777, 89, 845, 848, 845, 846, 847, 849,
- 923, 915, 923, 924, 925, 926, 95, 859,
- 83, 850, 96, 850, 851, 852, 853, 927,
- 844, 927, 928, 929, 930, 95, 859, 83,
- 931, 931, 38, 932, 932, 38, 933, 933,
- 934, 935, 936, 937, 938, 938, 939, 940,
- 61, 941, 941, 38, 942, 942, 38, 943,
- 943, 38, 944, 944, 945, 946, 947, 948,
- 949, 949, 950, 951, 61, 952, 952, 38,
- 953, 953, 954, 955, 956, 957, 958, 958,
- 959, 960, 61, 754, 962, 753, 961, 83,
- 963, 963, 964, 965, 966, 849, 966, 849,
- 753, 753, 753, 83, 967, 967, 968, 969,
- 970, 853, 970, 853, 753, 753, 753, 89,
- 963, 966, 963, 964, 965, 849, 971, 915,
- 971, 972, 973, 926, 753, 961, 83, 967,
- 970, 967, 968, 969, 853, 974, 844, 974,
- 975, 976, 930, 753, 961, 83, 845, 848,
- 845, 846, 847, 849, 977, 848, 977, 978,
- 979, 174, 95, 115, 83, 850, 96, 850,
- 851, 852, 853, 980, 96, 980, 981, 982,
- 178, 95, 115, 83, 984, 983, 75, 985,
- 985, 986, 987, 73, 122, 123, 124, 125,
+ 22, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 95, 96, 904, 905, 4,
+ 0, 98, 907, 97, 906, 154, 909, 909,
+ 910, 911, 67, 68, 69, 67, 68, 69,
+ 89, 90, 912, 913, 847, 848, 914, 915,
+ 908, 916, 916, 917, 918, 75, 124, 125,
126, 127, 128, 129, 130, 131, 132, 133,
- 134, 135, 136, 137, 138, 78, 122, 123,
- 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 87,
- 88, 912, 988, 105, 106, 912, 989, 73,
- 73, 121, 73, 118, 84, 87, 84, 85,
- 86, 88, 990, 915, 990, 991, 992, 926,
- 983, 83, 90, 93, 90, 91, 92, 94,
- 993, 844, 993, 994, 995, 930, 983, 83,
- 767, 767, 768, 769, 157, 158, 159, 160,
- 161, 157, 158, 159, 160, 161, 770, 771,
- 996, 767, 767, 768, 769, 233, 234, 235,
- 233, 234, 235, 770, 771, 996, 767, 767,
- 768, 769, 278, 278, 770, 771, 996, 767,
- 767, 768, 769, 300, 301, 300, 301, 770,
- 771, 996, 767, 767, 768, 769, 698, 325,
- 698, 325, 770, 771, 996, 767, 767, 768,
- 769, 367, 368, 367, 368, 770, 771, 996,
- 767, 767, 768, 769, 386, 387, 388, 389,
- 388, 389, 770, 771, 996, 767, 767, 768,
- 769, 425, 426, 425, 426, 770, 771, 996,
- 767, 767, 768, 769, 446, 447, 448, 446,
- 447, 448, 770, 771, 996, 767, 767, 768,
- 769, 509, 509, 770, 771, 996, 767, 767,
- 768, 769, 526, 526, 770, 771, 996, 767,
- 767, 768, 769, 536, 537, 538, 536, 537,
- 538, 770, 771, 996, 767, 767, 768, 769,
- 566, 567, 568, 569, 570, 571, 566, 567,
- 568, 569, 570, 571, 770, 771, 996, 767,
- 767, 768, 769, 632, 633, 634, 632, 633,
- 634, 770, 771, 996, 767, 767, 768, 769,
- 668, 668, 770, 771, 996, 767, 767, 768,
- 769, 678, 678, 770, 771, 996, 754, 998,
- 753, 997, 89, 754, 1000, 753, 999, 151,
- 767, 767, 768, 769, 324, 325, 324, 325,
- 770, 771, 996, 96, 1002, 95, 1001, 151,
- 1004, 1005, 1006, 1003, 1003, 1003, 778, 1008,
- 1007, 1010, 1009, 1012, 1013, 1014, 1015, 1012,
- 1012, 1012, 1012, 1011, 1016, 1017, 1018, 1016,
- 1019, 1017, 1016, 1016, 1017, 1017, 1017, 1011,
- 1020, 1021, 1021, 1020, 1022, 1021, 1020, 1020,
- 1021, 1021, 1021, 1011, 1023, 1017, 1025, 1024,
- 1026, 1024, 1027, 1028, 1029, 1027, 1030, 1028,
- 1027, 1027, 1028, 1028, 1028, 1024, 1020, 1020,
- 1020, 1020, 1011, 1031, 1031, 1031, 1031, 1011,
- 1034, 1035, 1033, 1033, 1032, 1036, 1037, 1036,
- 1039, 1036, 1037, 1038, 1037, 1032, 1033, 1041,
- 1033, 1040, 1042, 1040, 1043, 1040, 1044, 1045,
- 1044, 1047, 1044, 1045, 1046, 1045, 1040, 1048,
- 1048, 1050, 1048, 1051, 1048, 1049, 1032, 1052,
- 1052, 1054, 1052, 1055, 1052, 1053, 1032, 1057,
- 1057, 1057, 1057, 1056, 1049, 1058, 1049, 1040,
- 1059, 1040, 1060, 1040, 1061, 1061, 1063, 1061,
- 1064, 1061, 1062, 1040, 1066, 1066, 1067, 1068,
- 1069, 1070, 1065, 1066, 1066, 1067, 1068, 1069,
- 1070, 1072, 1071, 1074, 1074, 1075, 1076, 1078,
- 1079, 1080, 1081, 1082, 1078, 1079, 1080, 1081,
- 1082, 1083, 1084, 1083, 1084, 1077, 1073, 1086,
- 1086, 1087, 1088, 1089, 1090, 1089, 1090, 1085,
- 1092, 1091, 1074, 1074, 1075, 1076, 1083, 1084,
- 1083, 1084, 1093, 1073, 1096, 1097, 1098, 1099,
- 1100, 1096, 1097, 1098, 1099, 1100, 1095, 1094,
- 1101, 1101, 1102, 1103, 1105, 1106, 1105, 1106,
- 1104, 1073, 1108, 1107, 1065, 1110, 1110, 1111,
- 1112, 1113, 1114, 1109, 1110, 1110, 1111, 1112,
- 1115, 1116, 1117, 1115, 1113, 1114, 1115, 1115,
- 1115, 1109, 1118, 1119, 1120, 1118, 1118, 1118,
- 1118, 1109, 1122, 1122, 1123, 1124, 1125, 1125,
- 1126, 1125, 1127, 1128, 1127, 1128, 1125, 1125,
- 1125, 1121, 1129, 1129, 1130, 1131, 1132, 1133,
- 1132, 1133, 1121, 1135, 1134, 1136, 1118, 1138,
- 1137, 1139, 1137, 1140, 1141, 1142, 1140, 1140,
- 1140, 1140, 1137, 1122, 1122, 1123, 1124, 1127,
- 1128, 1127, 1128, 1121, 1144, 1143, 1109, 1145,
- 1145, 1146, 1147, 1148, 1149, 778, 1145, 1145,
- 1146, 1147, 1148, 1149, 1150, 1150, 1150, 1151,
- 1153, 1153, 1154, 1155, 1156, 1157, 1156, 1158,
- 1152, 1160, 1160, 1161, 1162, 1163, 1164, 1165,
- 1163, 1166, 1167, 1166, 1168, 1163, 1163, 1163,
- 1159, 1170, 1171, 1172, 1170, 1170, 1170, 1170,
- 1169, 1173, 1173, 1174, 1175, 1176, 1176, 1177,
- 1176, 1178, 1179, 1178, 1179, 1176, 1176, 1176,
- 1159, 1180, 1180, 1181, 1182, 1166, 1167, 1166,
- 1167, 89, 1184, 1183, 1185, 1170, 1187, 1186,
- 1188, 1186, 1189, 1190, 1191, 1189, 1189, 1189,
- 1189, 1186, 1173, 1173, 1174, 1175, 1178, 1179,
- 1178, 1179, 1159, 1184, 1193, 1183, 1192, 89,
- 1194, 1194, 1195, 1196, 1163, 1164, 1165, 1163,
- 1197, 1198, 1163, 1163, 1163, 1169, 1200, 1199,
- 778, 1202, 1201, 778, 1204, 1204, 1204, 1204,
- 1203, 1205, 1205, 1205, 1205, 1203, 1206, 1207,
- 1206, 1206, 1206, 1203, 1208, 1209, 1208, 1208,
- 1208, 1203, 1209, 1209, 1210, 1211, 1204, 1212,
- 1213, 1214, 1214, 1215, 1216, 1204, 1204, 1204,
- 1203, 1218, 1217, 1203, 1209, 1203, 1220, 1220,
- 1221, 1222, 1223, 1224, 1225, 1225, 1226, 1227,
- 1219, 1228, 1228, 1229, 1230, 1231, 1232, 1233,
- 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241,
- 1242, 1243, 1244, 1245, 1246, 1247, 1231, 1232,
- 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240,
- 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248,
- 1249, 1250, 1250, 1251, 1252, 1219, 1253, 1253,
- 1254, 1255, 1256, 1257, 1258, 1256, 1257, 1258,
- 1259, 1260, 1261, 1261, 1262, 1263, 1219, 1264,
- 1264, 1219, 1265, 1265, 1219, 1266, 1266, 1267,
- 1268, 1269, 1270, 1271, 1271, 1272, 1273, 1219,
- 1275, 1274, 1219, 1276, 1277, 1278, 1279, 1280,
- 1276, 1277, 1278, 1279, 1280, 1219, 1281, 1281,
- 1219, 1282, 1282, 1283, 1284, 1285, 1286, 1287,
- 1287, 1288, 1289, 1219, 1290, 1291, 1290, 1291,
- 1219, 1292, 1292, 1219, 1293, 1293, 1219, 1294,
- 1294, 1219, 1295, 1295, 1219, 1296, 1296, 1297,
- 1298, 1299, 1300, 1301, 1301, 1302, 1303, 1219,
- 1304, 1304, 1305, 1306, 1307, 1308, 1309, 1309,
- 1310, 1311, 1219, 1312, 1312, 1219, 1313, 1313,
- 1219, 1314, 1314, 1315, 1316, 1317, 1318, 1319,
- 1319, 1320, 1321, 1219, 1322, 1322, 1219, 1323,
- 1323, 1219, 1324, 1324, 1219, 1325, 1325, 1326,
- 1327, 1328, 1329, 1330, 1330, 1331, 1332, 1219,
- 1333, 1333, 1219, 1334, 1334, 1219, 1335, 1335,
- 1219, 1336, 1336, 1337, 1338, 1339, 1340, 1341,
- 1341, 1342, 1343, 1219, 1344, 1345, 1346, 1344,
- 1345, 1346, 1219, 1347, 1347, 1219, 1348, 1348,
- 1219, 1349, 1349, 1219, 1350, 1350, 1351, 1352,
- 1353, 1354, 1355, 1355, 1356, 1357, 1219, 1358,
- 1359, 1358, 1359, 1219, 1360, 1360, 1219, 1361,
- 1361, 1219, 1362, 1362, 1363, 1364, 1365, 1366,
- 1367, 1367, 1368, 1369, 1219, 1370, 1370, 1219,
- 1371, 1371, 1219, 1372, 1372, 1219, 1373, 1373,
- 1374, 1375, 1376, 1377, 1378, 1378, 1379, 1380,
- 1219, 1381, 1381, 1382, 1383, 1384, 1385, 1386,
- 1386, 1387, 1388, 1219, 1389, 1389, 1219, 1390,
- 1390, 1219, 1391, 1392, 1219, 1393, 1219, 1394,
- 1394, 1395, 1396, 1397, 1398, 1399, 1399, 1400,
- 1401, 1219, 1402, 1219, 1403, 1403, 1404, 1405,
- 1406, 1407, 1408, 1408, 1409, 1410, 1219, 1411,
- 1412, 1411, 1412, 1219, 1413, 1413, 1219, 1414,
- 1414, 1219, 1415, 1415, 1219, 1416, 1416, 1417,
- 1418, 1419, 1420, 1421, 1421, 1422, 1423, 1219,
- 1424, 1424, 1219, 1425, 1425, 1219, 1426, 1426,
- 1219, 1427, 1427, 1428, 1429, 1430, 1431, 1432,
- 1432, 1433, 1434, 1219, 1435, 1435, 1219, 1436,
- 1436, 1219, 1437, 1437, 1219, 1438, 1438, 1219,
- 1439, 1439, 1219, 1440, 1440, 1219, 1441, 1441,
- 1219, 1442, 1442, 1443, 1444, 1445, 1446, 1447,
- 1447, 1448, 1449, 1219, 1450, 1451, 1450, 1451,
- 1219, 1452, 1452, 1219, 1453, 1453, 1454, 1455,
- 1456, 1457, 1458, 1458, 1459, 1460, 1219, 1461,
- 1461, 1462, 1463, 1464, 1465, 1466, 1466, 1467,
- 1468, 1219, 1469, 1470, 1471, 1472, 1471, 1472,
- 1219, 1473, 1219, 1474, 1474, 1475, 1476, 1477,
- 1478, 1479, 1479, 1480, 1481, 1219, 1482, 1219,
- 1483, 1483, 1484, 1485, 1486, 1487, 1488, 1488,
- 1489, 1490, 1219, 1491, 1491, 1219, 1492, 1492,
- 1493, 1494, 1495, 1496, 1497, 1497, 1498, 1499,
- 1219, 1500, 1500, 1501, 1502, 1503, 1504, 1505,
- 1505, 1506, 1507, 1219, 1508, 1509, 1508, 1509,
- 1219, 1510, 1510, 1219, 1511, 1511, 1219, 1512,
- 1512, 1219, 1513, 1513, 1514, 1515, 1516, 1517,
- 1518, 1518, 1519, 1520, 1219, 1521, 1521, 1522,
- 1523, 1524, 1525, 1526, 1526, 1527, 1528, 1219,
- 1529, 1530, 1531, 1529, 1530, 1531, 1219, 1532,
- 1532, 1219, 1533, 1533, 1219, 1534, 1534, 1219,
- 1535, 1535, 1536, 1537, 1538, 1539, 1540, 1540,
- 1541, 1542, 1219, 1543, 1543, 1219, 1544, 1544,
- 1545, 1546, 1547, 1548, 1549, 1549, 1550, 1551,
- 1219, 1552, 1552, 1553, 1554, 1555, 1555, 1556,
- 1557, 1558, 1558, 1559, 1560, 1219, 1561, 1561,
- 1219, 1562, 1562, 1563, 1564, 1565, 1566, 1567,
- 1568, 1568, 1569, 1570, 1219, 1571, 1571, 1572,
- 1573, 1574, 1574, 1575, 1576, 1577, 1577, 1578,
- 1579, 1219, 1580, 1580, 1219, 1581, 1581, 1219,
- 1582, 1582, 1219, 1583, 1583, 1219, 1584, 1584,
- 1585, 1586, 1587, 1588, 1589, 1589, 1590, 1591,
- 1219, 1592, 1592, 1219, 1593, 1593, 1219, 1594,
- 1594, 1219, 1595, 1595, 1219, 1596, 1596, 1219,
- 1597, 1597, 1219, 1598, 1598, 1219, 1599, 1599,
- 1219, 1600, 1600, 1219, 1601, 1601, 1602, 1603,
- 1604, 1605, 1606, 1606, 1607, 1608, 1219, 1609,
- 1609, 1219, 1610, 1610, 1219, 1611, 1611, 1612,
- 1613, 1614, 1615, 1616, 1616, 1617, 1618, 1219,
- 1619, 1620, 1621, 1619, 1620, 1621, 1219, 1622,
- 1622, 1623, 1624, 1625, 1626, 1627, 1627, 1628,
- 1629, 1219, 1630, 1630, 1219, 1631, 1631, 1219,
- 1632, 1632, 1219, 1633, 1633, 1634, 1635, 1636,
- 1637, 1638, 1638, 1639, 1640, 1219, 1641, 1641,
- 1642, 1643, 1644, 1645, 1646, 1646, 1647, 1648,
- 1219, 1649, 1650, 1651, 1652, 1653, 1654, 1649,
- 1650, 1651, 1652, 1653, 1654, 1219, 1655, 1655,
- 1219, 1656, 1656, 1219, 1657, 1657, 1219, 1658,
- 1658, 1219, 1659, 1659, 1660, 1661, 1662, 1663,
- 1664, 1664, 1665, 1666, 1219, 1667, 1667, 1219,
- 1668, 1668, 1669, 1670, 1671, 1672, 1673, 1673,
- 1674, 1675, 1219, 1676, 1676, 1219, 1677, 1677,
- 1678, 1679, 1680, 1681, 1682, 1682, 1683, 1684,
- 1219, 1685, 1685, 1219, 1686, 1686, 1687, 1688,
- 1689, 1690, 1691, 1691, 1692, 1693, 1219, 1694,
- 1694, 1219, 1695, 1695, 1219, 1696, 1696, 1219,
- 1697, 1697, 1698, 1699, 1700, 1701, 1702, 1702,
- 1703, 1704, 1219, 1705, 1705, 1219, 1706, 1706,
- 1219, 1707, 1707, 1708, 1709, 1710, 1711, 1712,
- 1712, 1713, 1714, 1219, 1715, 1716, 1717, 1715,
- 1716, 1717, 1219, 1718, 1718, 1219, 1719, 1719,
- 1219, 1720, 1720, 1721, 1722, 1723, 1724, 1725,
- 1725, 1726, 1727, 1219, 1728, 1728, 1219, 1729,
- 1729, 1730, 1731, 1732, 1733, 1734, 1734, 1735,
- 1736, 1219, 1737, 1737, 1219, 1738, 1738, 1219,
- 1739, 1219, 1740, 1740, 1741, 1742, 1744, 1745,
- 1746, 1746, 1747, 1748, 1743, 1219, 1749, 1749,
- 1219, 1750, 1750, 1219, 1751, 1751, 1752, 1753,
- 1754, 1755, 1756, 1756, 1757, 1758, 1219, 1759,
- 1759, 1219, 1760, 1760, 1219, 1761, 1761, 1219,
- 1762, 1762, 1219, 1763, 1763, 1219, 1764, 1764,
- 1765, 1766, 1767, 1768, 1769, 1769, 1770, 1771,
- 1219, 1772, 1772, 1219, 1773, 1773, 1219, 1774,
- 1774, 1219, 1775, 1775, 1776, 1777, 1778, 1779,
- 1780, 1780, 1781, 1782, 1219, 1783, 1783, 1219,
- 1784, 1784, 1785, 1786, 1787, 1788, 1789, 1789,
- 1790, 1791, 1219, 1793, 1793, 1794, 1795, 1796,
- 1797, 1792, 1793, 1793, 1794, 1795, 1796, 1797,
- 1799, 1798, 1800, 1800, 1801, 1802, 1804, 1805,
- 1803, 1798, 1807, 1807, 1808, 1809, 1811, 1812,
- 1810, 1810, 1810, 1806, 1813, 1813, 1813, 1806,
- 1814, 1814, 1815, 1816, 1817, 1818, 1819, 1819,
- 1820, 1821, 1810, 1810, 1810, 1806, 1823, 1822,
- 1806, 1825, 1824, 1792, 1827, 1826, 1792, 1828,
- 1828, 1829, 1830, 1831, 1832, 1792, 1828, 1828,
- 1829, 1830, 1833, 1831, 1832, 1834, 1798, 1835,
- 1835, 1836, 1837, 1839, 1839, 1840, 1841, 1838,
- 1798, 1842, 1842, 1843, 1844, 1846, 1847, 1845,
- 1845, 1845, 1806, 1848, 1848, 1848, 1806, 1849,
- 1849, 1850, 1851, 1852, 1853, 1854, 1854, 1855,
- 1856, 1845, 1845, 1845, 1806, 1858, 1857, 1806,
- 1860, 1859, 1792, 1861, 1861, 1862, 1863, 1864,
- 1865, 1838, 1798, 1867, 1866, 1792, 1869, 1870,
- 1871, 1872, 1873, 1874, 1868, 1875, 1868, 1876,
- 1868, 1877, 1868, 1878, 1878, 1878, 1878, 1878,
- 1878, 1868, 1879, 1868, 1880, 1868, 1881, 1881,
- 1881, 1881, 1881, 1881, 1868, 1882, 1868, 1883,
- 1868, 1884, 1885, 1868, 1886, 1868, 1887, 1868,
- 1888, 1868, 1889, 1868, 1890, 1890, 1890, 1890,
- 1890, 1890, 1868, 1891, 1868, 1892, 1868, 1893,
- 1868, 1894, 1868, 1895, 1895, 1895, 1895, 1895,
- 1895, 1868, 1896, 1868, 1897, 1868, 1899, 1898,
- 1900, 1900, 1900, 1900, 1900, 1900, 1901, 1898,
- 1902, 1868, 1903, 1868, 1904, 1868, 1905, 1868,
- 1906, 1868, 1907, 1868, 1908, 1868, 1909, 1868,
- 1910, 1868, 1911, 1868, 1912, 1868, 1913, 1868,
- 1914, 1868, 1915, 1868, 1916, 1916, 1916, 1916,
- 1916, 1916, 1868, 1917, 1868, 1918, 1868, 1919,
- 1868, 1920, 1920, 1920, 1920, 1920, 1920, 1868,
- 1922, 1922, 1923, 1924, 1925, 1926, 1927, 1927,
- 1928, 1929, 1921, 1930, 1930, 1931, 1932, 1933,
- 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941,
- 1942, 1942, 1943, 1944, 1921, 1945, 1921, 1946,
- 1921, 1947, 1921, 1948, 1921, 1921, 1950, 1921,
- 1921, 1921, 1949, 1951, 1951, 1952, 1953, 1954,
- 1955, 1956, 1956, 1957, 1958, 1921, 1960, 1959,
- 1921, 1961, 1921, 1962, 1921, 1963, 1921, 1964,
- 1965, 1965, 1965, 1965, 1921, 1966, 1966, 1966,
- 1966, 1921, 1967, 1967, 1967, 1967, 1921, 1968,
- 1969, 1968, 1968, 1968, 1921, 1970, 1971, 1970,
- 1970, 1970, 1921, 1972, 1973, 1973, 1973, 1973,
- 1921, 1974, 1974, 1975, 1976, 1977, 1978, 1979,
- 1979, 1980, 1981, 1921, 1971, 1921, 1982, 1982,
- 1982, 1982, 1921, 1983, 1984, 1983, 1983, 1983,
- 1921, 1985, 1986, 1985, 1985, 1985, 1921, 1987,
- 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1993,
- 1994, 1995, 1990, 1990, 1990, 1921, 1986, 1921,
- 1996, 1921, 1997, 1921, 1998, 1999, 1921, 2000,
- 1921, 2001, 1921, 2002, 1921, 2003, 1921, 2004,
- 1921, 2006, 2007, 2007, 2005, 2008, 2008, 2005,
- 2009, 2010, 2011, 2011, 2005, 2012, 2012, 2005,
- 2013, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
- 2020, 2020, 2021, 2022, 2017, 2005, 2023, 2023,
- 2005, 2024, 1921, 2025, 1921, 2026, 1921, 2027,
- 1921, 2028, 1921, 2029, 2030, 2030, 2030, 2030,
- 2005, 2031, 2031, 2031, 2031, 2005, 2032, 2033,
- 2034, 2034, 2034, 2034, 2005, 2035, 2035, 2035,
- 2035, 2005, 2036, 2036, 2037, 2038, 2039, 2040,
- 2041, 2042, 2043, 2043, 2044, 2045, 2040, 2040,
- 2040, 2005, 2046, 2046, 2046, 2046, 2005, 2047,
- 1921, 2048, 1921, 2050, 2049, 2051, 2051, 2052,
- 2053, 2055, 2056, 2057, 2058, 2058, 2059, 2060,
- 2054, 2049, 1921, 1921, 1921, 1921, 2061, 1987,
- 1987, 1988, 1989, 1991, 1992, 1993, 1993, 1994,
- 1995, 1921, 2062, 1921, 2063, 1921, 2064, 1921,
- 2065, 1921, 2066, 1921, 2067, 1921, 2068, 1921,
- 2069, 1921, 2070, 1921, 2071, 2072, 2072, 1921,
- 2073, 2073, 1921, 2074, 2075, 1921, 2076, 2076,
- 1921, 2077, 2077, 2078, 2079, 2080, 2081, 2082,
- 2083, 2083, 2084, 2085, 1921, 2086, 2086, 1921,
- 2087, 1921, 2088, 1921, 2089, 1921, 2090, 1921,
- 2091, 1921, 2092, 1921, 2093, 1921, 2094, 1921,
- 2095, 1921, 2096, 1921, 2097, 1921, 2098, 1921,
- 2099, 1921, 2100, 1921, 2101, 2101, 2102, 2103,
- 2104, 2105, 2106, 2106, 2107, 2108, 1921, 2109,
- 1921, 2110, 1921, 2111, 1921, 2112, 1921, 2113,
- 2114, 2049, 2115, 2049, 2116, 2117, 2049, 2118,
- 2118, 2119, 2120, 2122, 2123, 2124, 2124, 2125,
- 2126, 2121, 2049, 1951, 1951, 1952, 1953, 1954,
- 1955, 1956, 1956, 1957, 1958, 2127, 2127, 2127,
- 1921, 2128, 1921, 2131, 2132, 2133, 2134, 2135,
- 2131, 2132, 2133, 2134, 2135, 2130, 2129, 2136,
- 2136, 2136, 2136, 2137, 2129, 2138, 2139, 2138,
- 2139, 2129, 2140, 2140, 2140, 2140, 2129, 2141,
- 2141, 2129, 2142, 2143, 2142, 2142, 2142, 2129,
- 2144, 2144, 2129, 2145, 2145, 2129, 2146, 2146,
- 2129, 2147, 2147, 2129, 2148, 2129, 2149, 2129,
- 2150, 2150, 2129, 2151, 2151, 2129, 2152, 2152,
- 2129, 2153, 2129, 2154, 2154, 2154, 2154, 2129,
- 2155, 2156, 2155, 2156, 2129, 2157, 2158, 2157,
- 2158, 2129, 2159, 2129, 2160, 2160, 2129, 2161,
- 2161, 2129, 2162, 2162, 2129, 2163, 2163, 2129,
- 2164, 2164, 2164, 2164, 2129, 2165, 2165, 2129,
- 2166, 2166, 2129, 2167, 2167, 2129, 2168, 2169,
- 2129, 2170, 2129, 2171, 2129, 2172, 2172, 2129,
- 2173, 2173, 2129, 2174, 2174, 2129, 2175, 2129,
- 2176, 2129, 2177, 2129, 2178, 2178, 2178, 2178,
- 2129, 2179, 2129, 2180, 2129, 2181, 2181, 2129,
- 2182, 2182, 2129, 2183, 2183, 2129, 2184, 2129,
- 2185, 2129, 2186, 2129, 2187, 2187, 2187, 2187,
- 2129, 2188, 2189, 2129, 2190, 2129, 2191, 2129,
- 2192, 2129, 2193, 2129, 2194, 2194, 2194, 2194,
- 2129, 2195, 2129, 2196, 2129, 2197, 2197, 2197,
- 2197, 2129, 2198, 2198, 2129, 2199, 2199, 2129,
- 2200, 2200, 2129, 2201, 2201, 2129, 2202, 2202,
- 2129, 2203, 2203, 2129, 2204, 2204, 2129, 2205,
- 2205, 2205, 2205, 2129, 2206, 2206, 2129, 2207,
- 2207, 2129, 2208, 2208, 2129, 2209, 2209, 2129,
- 2210, 2210, 2129, 2211, 2211, 2129, 2212, 2213,
- 2212, 2213, 2129, 2214, 2214, 2129, 2215, 2215,
- 2129, 2216, 2216, 2216, 2216, 2129, 2217, 2217,
- 2129, 2218, 2218, 2129, 2219, 2219, 2219, 2219,
- 2129, 2220, 2220, 2129, 2221, 2221, 2129, 2222,
- 2223, 2222, 2223, 2129, 2224, 2224, 2129, 2225,
- 2129, 2226, 2226, 2226, 2226, 2129, 2227, 2227,
- 2129, 2228, 2228, 2129, 2229, 2230, 2231, 2129,
- 2232, 2233, 2232, 2232, 2232, 2129, 2234, 2234,
- 2129, 2235, 2235, 2129, 2236, 2236, 2129, 2237,
- 2237, 2129, 2238, 2129, 2239, 2129, 2240, 2240,
- 2129, 2241, 2241, 2129, 2242, 2242, 2129, 2243,
- 2129, 2244, 2244, 2244, 2244, 2129, 2245, 2129,
- 2246, 2129, 2247, 2247, 2247, 2247, 2129, 2248,
- 2129, 2249, 2129, 2250, 2250, 2250, 2250, 2129,
- 2253, 2254, 2255, 2256, 2257, 2258, 2253, 2254,
- 2255, 2256, 2257, 2258, 2252, 2251, 2259, 2259,
- 2259, 2259, 2260, 2251, 2261, 2261, 2251, 2262,
- 2262, 2251, 2263, 2263, 2251, 2264, 2264, 2251,
- 2265, 2265, 2251, 2266, 2266, 2266, 2266, 2251,
- 2267, 2268, 2269, 2267, 2268, 2269, 2251, 2270,
- 2270, 2251, 2271, 2271, 2251, 2272, 2272, 2251,
- 2273, 2273, 2251, 2274, 2274, 2251, 2275, 2275,
- 2275, 2275, 2251, 2276, 2277, 2276, 2277, 2251,
- 2278, 2278, 2251, 2279, 2279, 2279, 2279, 2251,
- 2280, 2280, 2251, 2281, 2281, 2251, 2282, 2282,
- 2282, 2282, 2251, 2283, 2283, 2251, 2284, 2284,
- 2251, 2285, 2285, 2251, 2286, 2286, 2286, 2286,
- 2251, 2287, 2287, 2251, 2288, 2288, 2251, 2289,
- 2289, 2289, 2289, 2251, 2290, 2291, 2290, 2291,
- 2251, 2292, 2292, 2251, 2293, 2293, 2293, 2293,
- 2251, 2294, 2294, 2251, 2295, 2295, 2251, 2296,
- 2296, 2296, 2296, 2251, 2297, 2297, 2251, 2298,
- 2298, 2251, 2299, 2299, 2251, 2300, 2300, 2300,
- 2300, 2251, 2301, 2301, 2251, 2302, 2302, 2251,
- 2303, 2303, 2303, 2303, 2251, 2305, 2305, 2304,
- 2306, 2307, 2306, 2306, 2306, 2307, 2304, 2308,
- 2308, 2308, 2308, 2308, 2308, 75, 2309, 2309,
- 2309, 2309, 75, 2310, 2310, 2310, 2310, 2310,
- 2310, 75, 2311, 2311, 2312, 2313, 2314, 2315,
- 75, 2316, 2316, 2317, 2318, 2319, 2319, 2319,
- 2320, 2321, 2319, 2319, 2319, 75, 2322, 2322,
- 2323, 2324, 2325, 2326, 75, 2328, 2328, 2329,
- 2330, 2332, 2333, 2331, 2327, 2334, 2334, 2335,
- 2336, 2338, 2339, 2337, 2327, 2340, 2340, 2341,
- 2342, 2344, 2345, 2343, 2327, 2347, 2347, 2348,
- 2349, 2351, 2352, 2353, 2354, 2355, 2351, 2352,
- 2353, 2354, 2355, 2356, 2357, 2350, 2346, 2358,
- 2358, 2359, 2360, 2362, 2363, 2361, 2327, 2364,
- 2364, 2365, 2366, 2368, 2369, 2370, 2371, 2372,
- 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2367,
- 2346, 2375, 2375, 2376, 2377, 2379, 2380, 2378,
- 2327, 2381, 2381, 2382, 2383, 2385, 2386, 2387,
- 2388, 2389, 2385, 2386, 2387, 2388, 2389, 2390,
- 2391, 2384, 2346, 2392, 2392, 2393, 2394, 2396,
- 2397, 2395, 2327, 2398, 2398, 2400, 2401, 2402,
- 2403, 2404, 2400, 2401, 2402, 2403, 2404, 2398,
- 2398, 2399, 2346, 2398, 2398, 2398, 2398, 2405,
- 2346, 2407, 2408, 2409, 2410, 2411, 2407, 2408,
- 2409, 2410, 2411, 2406, 2346, 2412, 2412, 2412,
- 2412, 2413, 2346, 2415, 2414, 75, 2381, 2381,
- 2382, 2383, 2390, 2391, 2416, 2346, 2418, 2419,
- 2420, 2421, 2422, 2418, 2419, 2420, 2421, 2422,
- 2417, 2346, 2423, 2423, 2424, 2425, 2427, 2428,
- 2426, 2346, 2430, 2429, 75, 2364, 2364, 2365,
- 2366, 2373, 2374, 2431, 2346, 2433, 2434, 2435,
- 2436, 2437, 2433, 2434, 2435, 2436, 2437, 2432,
- 2346, 2438, 2438, 2439, 2440, 2442, 2443, 2441,
- 2346, 2445, 2444, 75, 2347, 2347, 2348, 2349,
- 2356, 2357, 2446, 2346, 2448, 2449, 2450, 2451,
- 2452, 2448, 2449, 2450, 2451, 2452, 2447, 2346,
- 2453, 2453, 2454, 2455, 2457, 2458, 2456, 2346,
- 2460, 2459, 75, 2462, 2461, 75, 2464, 2463,
- 75, 75, 75, 75, 75, 2465, 2466, 2466,
- 2467, 2468, 2469, 2470, 75, 2472, 2472, 2473,
- 2474, 2475, 2476, 2471, 2471, 2471, 75, 2477,
- 2477, 2477, 2477, 75, 2479, 2478, 75, 2480,
- 2480, 2480, 2480, 2480, 2480, 75, 2481, 2481,
- 2482, 2483, 2484, 2485, 75, 2486, 2486, 2487,
- 2488, 2489, 2489, 2489, 2490, 2491, 2489, 2489,
- 2489, 75, 2492, 2492, 2492, 2492, 75, 2494,
- 2493, 75, 2495, 2327, 2496, 2496, 2497, 2498,
- 2500, 2501, 2499, 2327, 2502, 2502, 2503, 2504,
- 2505, 2505, 2505, 2506, 2507, 2505, 2505, 2505,
- 75, 2508, 2508, 2508, 2508, 75, 2510, 2509,
- 75, 2512, 2512, 2512, 2512, 2511, 2513, 2513,
- 2514, 2515, 2516, 2517, 2518, 2518, 2519, 2520,
- 2512, 2522, 2522, 2523, 2524, 2525, 2526, 2527,
- 2527, 2528, 2529, 2521, 2521, 2521, 2512, 2531,
- 2530, 2512, 2532, 2532, 2532, 2532, 2304, 2533,
- 2534, 2533, 2533, 2533, 2534, 2534, 2534, 2304,
- 2536, 2535, 2537, 2537, 2538, 2539, 2541, 2542,
- 2540, 2535, 2543, 2543, 2544, 2545, 2547, 2548,
- 2549, 2550, 2546, 2535, 2551, 2551, 2552, 2553,
- 2555, 2556, 2554, 2535, 2557, 2557, 2558, 2559,
- 2547, 2548, 2561, 2562, 2560, 2535, 2563, 2563,
- 2564, 2565, 2566, 2568, 2569, 2567, 2535, 2570,
- 2570, 2571, 2572, 2547, 2548, 2573, 2574, 2535,
- 2575, 2575, 2576, 2577, 2578, 2579, 2535, 2575,
- 2575, 2576, 2577, 2578, 2579, 2580, 2535, 2581,
- 2581, 2582, 2583, 2585, 2586, 2584, 2535, 2587,
- 2587, 2588, 2589, 2591, 2592, 2593, 2594, 2590,
- 2535, 2595, 2595, 2596, 2597, 2599, 2600, 2598,
- 2535, 2601, 2601, 2602, 2603, 2591, 2592, 2605,
- 2606, 2604, 2535, 2607, 2607, 2608, 2609, 2610,
- 2612, 2613, 2611, 2535, 2614, 2614, 2615, 2616,
- 2591, 2592, 2617, 2618, 2535, 2619, 2619, 2620,
- 2621, 2622, 2623, 2535, 2619, 2619, 2620, 2621,
- 2624, 2622, 2623, 2625, 2535, 2626, 2535, 2627,
- 2627, 2628, 2629, 2630, 2632, 2633, 2634, 2635,
- 2635, 2636, 2637, 2631, 2535, 2638, 2638, 2639,
- 2640, 2642, 2643, 2644, 2644, 2645, 2646, 2641,
- 2535, 2647, 2647, 2648, 2649, 2650, 2652, 2653,
- 2654, 2655, 2655, 2656, 2657, 2651, 2535, 2658,
- 2658, 2659, 2660, 2662, 2663, 2644, 2644, 2664,
- 2665, 2661, 2535, 2666, 2666, 2667, 2668, 2669,
- 2671, 2672, 2673, 2674, 2674, 2675, 2676, 2670,
- 2535, 2677, 2677, 2678, 2679, 2681, 2682, 2644,
- 2644, 2683, 2684, 2680, 2535, 2685, 2685, 2686,
- 2687, 2688, 2685, 2690, 2691, 2692, 2692, 2693,
- 2694, 2689, 2535, 2695, 2695, 2696, 2697, 2698,
- 2699, 2644, 2644, 2700, 2701, 2535, 2703, 2702,
- 2535, 2704, 2704, 2705, 2706, 2704, 2708, 2709,
- 2710, 2710, 2711, 2712, 2707, 2535, 2685, 2685,
- 2686, 2687, 2685, 2690, 2691, 2692, 2692, 2693,
- 2694, 2713, 2535, 2715, 2714, 2535, 2716, 2716,
- 2717, 2718, 2720, 2721, 2722, 2723, 2723, 2724,
- 2725, 2719, 2535, 2666, 2666, 2667, 2668, 2671,
- 2672, 2673, 2674, 2674, 2675, 2676, 2726, 2535,
- 2677, 2677, 2678, 2679, 2681, 2682, 2644, 2644,
- 2683, 2684, 2535, 2728, 2727, 2535, 2729, 2729,
- 2730, 2731, 2733, 2734, 2735, 2736, 2736, 2737,
- 2738, 2732, 2535, 2647, 2647, 2648, 2649, 2652,
- 2653, 2654, 2655, 2655, 2656, 2657, 2739, 2535,
- 2658, 2658, 2659, 2660, 2662, 2663, 2644, 2644,
- 2664, 2665, 2535, 2741, 2740, 2535, 2742, 2742,
- 2743, 2744, 2746, 2747, 2748, 2749, 2749, 2750,
- 2751, 2745, 2535, 2627, 2627, 2628, 2629, 2632,
- 2633, 2634, 2635, 2635, 2636, 2637, 2752, 2535,
- 2638, 2638, 2639, 2640, 2642, 2643, 2644, 2644,
- 2645, 2646, 2535, 2754, 2753, 2535, 2755, 2755,
- 2756, 2757, 2758, 2759, 2535, 2761, 2760, 2535,
- 2762, 2762, 2763, 2764, 2766, 2767, 2765, 2535,
- 2607, 2607, 2608, 2609, 2612, 2613, 2768, 2535,
- 2770, 2769, 2535, 2772, 2771, 2535, 2774, 2773,
- 2535, 2775, 2775, 2776, 2777, 2778, 2779, 2535,
- 2781, 2780, 2535, 2782, 2782, 2783, 2784, 2786,
- 2787, 2785, 2535, 2563, 2563, 2564, 2565, 2568,
- 2569, 2788, 2535, 2790, 2789, 2535, 2792, 2791,
- 2535, 2793, 2327, 2794, 2794, 2795, 2796, 2798,
- 2799, 2797, 2327, 2800, 2800, 2801, 2802, 2804,
- 2805, 2803, 2327, 2806, 2806, 2807, 2808, 2810,
- 2811, 2809, 2327, 2812, 2812, 2813, 2814, 2816,
- 2817, 2815, 2327, 2818, 2818, 2819, 2820, 2822,
- 2823, 2821, 2327, 2824, 2824, 2825, 2826, 2827,
- 2827, 2827, 2828, 2829, 2827, 2827, 2827, 75,
- 2830, 2830, 2830, 2830, 75, 2832, 2831, 75,
- 2834, 2833, 75, 2836, 2835, 75, 2837, 2327,
- 2838, 2838, 2839, 2840, 2842, 2843, 2841, 2327,
- 2844, 2844, 2845, 2846, 2848, 2849, 2847, 2327,
- 2850, 2850, 2851, 2852, 2854, 2855, 2853, 2327,
- 2857, 2857, 2858, 2859, 2860, 2861, 2856, 2856,
- 2856, 75, 2862, 2862, 2863, 2864, 2865, 2866,
- 75, 2868, 2868, 2869, 2870, 2871, 2872, 2867,
- 2867, 2867, 75, 2873, 2873, 2874, 2875, 2876,
- 2877, 75, 2879, 2879, 2880, 2881, 2882, 2883,
- 2878, 2878, 2878, 75, 2884, 2884, 2885, 2886,
- 2887, 2888, 75, 2889, 2889, 2890, 2891, 2892,
- 2892, 2892, 2893, 2894, 2892, 2892, 2892, 75,
- 2895, 2895, 2895, 2895, 75, 2897, 2896, 75,
- 2899, 2898, 75, 2901, 2900, 75, 2903, 2902,
- 75, 2905, 2904, 75, 2906, 2906, 2906, 75,
- 2907, 2907, 2908, 2909, 2910, 2911, 75, 2907,
- 2907, 2908, 2909, 2910, 2911, 2912, 2327, 2913,
- 2913, 2914, 2915, 2917, 2918, 2916, 2327, 2919,
- 2919, 2920, 2921, 2923, 2924, 2922, 2922, 2922,
- 75, 2925, 2925, 2926, 2927, 2928, 2929, 75,
- 2925, 2925, 2926, 2927, 2930, 2928, 2929, 2930,
- 2930, 2930, 75, 2931, 2931, 75, 2933, 2932,
- 75, 2935, 2934, 75, 2937, 2936, 75, 2939,
- 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946,
- 2947, 2947, 2948, 2949, 2938, 2950, 2951, 2938,
- 2952, 2938, 2954, 2954, 2953, 2956, 2955, 2953,
- 2957, 2938, 2958, 2958, 2959, 2960, 2962, 2963,
- 2964, 2964, 2965, 2966, 2961, 2938, 2968, 2967,
- 75, 2969, 2938, 2970, 2970, 2970, 2970, 2953,
- 2972, 2971, 2971, 2971, 2953, 2973, 2327, 2974,
- 2974, 2975, 2976, 2978, 2979, 2977, 2327, 2980,
- 2980, 2981, 2982, 2984, 2985, 2983, 2983, 2983,
- 75, 2986, 2986, 2987, 2988, 2989, 2990, 75,
- 2986, 2986, 2987, 2988, 2989, 2990, 2991, 2327,
- 2992, 2992, 2993, 2994, 2996, 2997, 2995, 2327,
- 2999, 2999, 3000, 3001, 3003, 3004, 3002, 3002,
- 3002, 2998, 3005, 3005, 3005, 2998, 3006, 3006,
- 3007, 3008, 3009, 3010, 3011, 3011, 3012, 3013,
- 3002, 3002, 3002, 2998, 3015, 3014, 2998, 3017,
- 3016, 75, 3019, 3018, 75, 3021, 3020, 75,
- 3022, 2327, 3023, 3023, 3024, 3025, 3027, 3028,
- 3026, 2327, 3029, 3029, 3030, 3031, 3033, 3034,
- 3032, 2327, 3035, 3035, 3036, 3037, 3039, 3040,
- 3038, 2327, 3041, 3041, 3042, 3043, 3045, 3046,
- 3044, 3044, 3044, 2998, 3047, 3047, 3047, 2998,
- 3048, 3048, 3049, 3050, 3051, 3052, 3053, 3053,
- 3054, 3055, 3044, 3044, 3044, 2998, 3057, 3056,
- 2998, 3059, 3058, 75, 3061, 3060, 75, 3062,
- 2327, 3063, 3063, 3064, 3065, 3067, 3068, 3066,
- 2327, 3070, 3070, 3071, 3072, 3073, 3074, 3075,
- 3076, 3077, 3078, 3069, 3079, 3079, 3080, 3081,
- 3082, 3083, 3069, 3079, 3079, 3080, 3081, 3082,
- 3083, 3085, 3084, 3086, 3086, 3087, 3088, 3090,
- 3091, 3089, 3084, 3092, 3092, 3093, 3094, 3095,
- 3096, 3097, 3069, 3099, 3099, 3100, 3101, 3102,
- 3102, 3103, 3104, 3105, 3105, 3106, 3107, 3108,
- 3108, 3108, 3108, 3109, 3110, 3108, 3108, 3111,
- 3112, 3113, 3114, 3108, 3108, 3115, 3116, 3117,
- 3118, 3108, 3108, 3119, 3120, 3098, 3099, 3099,
- 3100, 3101, 3122, 3109, 3110, 3122, 3122, 3122,
- 3121, 3108, 3108, 3121, 3124, 3123, 3121, 3102,
- 3102, 3103, 3104, 3108, 3108, 3108, 3108, 3113,
- 3114, 3108, 3108, 3115, 3116, 3121, 3126, 3125,
- 3121, 3122, 3099, 3099, 3100, 3101, 3102, 3102,
- 3103, 3104, 3105, 3105, 3106, 3107, 3108, 3108,
- 3108, 3108, 3109, 3110, 3108, 3108, 3111, 3112,
- 3113, 3114, 3108, 3108, 3115, 3116, 3117, 3118,
- 3108, 3108, 3119, 3120, 3122, 3122, 3122, 3121,
- 3124, 3126, 3128, 3123, 3125, 3127, 3121, 3130,
- 3129, 3069, 3132, 3131, 3069, 3133, 3133, 3134,
- 3135, 3136, 3137, 3069, 3133, 3133, 3134, 3135,
- 3136, 3137, 3138, 3084, 3139, 3139, 3140, 3141,
- 3143, 3144, 3142, 3084, 3146, 3146, 3147, 3148,
- 3149, 3150, 3151, 3149, 3145, 3153, 3154, 3154,
- 3155, 3156, 3157, 3157, 3158, 3159, 3160, 3160,
- 3161, 3162, 3163, 3163, 3163, 3163, 3164, 3165,
- 3163, 3163, 3166, 3167, 3168, 3169, 3163, 3163,
- 3170, 3171, 3172, 3173, 3163, 3163, 3174, 3175,
- 3153, 3152, 3177, 3176, 3069, 3179, 3178, 3069,
- 3180, 3180, 3181, 3182, 3183, 3184, 3069, 3180,
- 3180, 3181, 3182, 3183, 3184, 3185, 3084, 3186,
- 3186, 3187, 3188, 3190, 3191, 3189, 3084, 3192,
- 3192, 3193, 3194, 3195, 3196, 3197, 3195, 3195,
- 3195, 3145, 3198, 3199, 3199, 3200, 3201, 3202,
- 3202, 3203, 3204, 3205, 3205, 3206, 3207, 3208,
- 3208, 3208, 3208, 3209, 3210, 3208, 3208, 3211,
- 3212, 3213, 3214, 3208, 3208, 3215, 3216, 3217,
- 3218, 3208, 3208, 3219, 3220, 3198, 3198, 3198,
- 3152, 3222, 3221, 3069, 3224, 3223, 3069, 3225,
- 3225, 3226, 3227, 3228, 3229, 3069, 3225, 3225,
- 3226, 3227, 3228, 3229, 3230, 3084, 3231, 3231,
- 3232, 3233, 3235, 3236, 3234, 3084, 3237, 3237,
- 3238, 3239, 3240, 3240, 3240, 3241, 3242, 3240,
- 3240, 3240, 3069, 3243, 3243, 3244, 3245, 3246,
- 3246, 3247, 3248, 3249, 3249, 3250, 3251, 3252,
- 3252, 3252, 3252, 3253, 3254, 3252, 3252, 3255,
- 3256, 3257, 3258, 3252, 3252, 3259, 3260, 3261,
- 3262, 3252, 3252, 3263, 3264, 3098, 3266, 3265,
- 3069, 3268, 3267, 3069, 3270, 3269, 75, 3272,
- 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280,
- 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288,
- 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279,
- 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287,
- 3288, 3271, 3289, 3289, 3290, 3291, 3292, 3293,
- 3294, 3292, 3293, 3294, 3295, 3296, 3271, 3297,
- 3297, 3298, 3299, 3301, 3302, 3300, 3300, 3300,
- 75, 3303, 3303, 3304, 3305, 3306, 3307, 75,
- 3303, 3303, 3304, 3305, 3306, 3307, 3308, 2327,
- 3309, 3309, 3310, 3311, 3313, 3314, 3312, 2327,
- 3315, 3315, 3316, 3317, 3319, 3320, 3318, 2327,
- 3321, 3321, 3322, 3323, 3325, 3326, 3324, 2327,
- 3328, 3328, 3329, 3330, 3332, 3333, 3331, 3327,
- 3334, 3334, 3335, 3336, 3338, 3339, 3337, 3327,
- 3340, 3340, 3341, 3342, 3344, 3345, 3343, 3327,
- 3346, 3346, 3347, 3348, 3350, 3351, 3349, 3327,
- 3352, 3352, 3353, 3354, 3356, 3357, 3355, 2327,
- 3358, 3358, 3359, 3360, 3362, 3363, 3361, 2327,
- 3364, 3364, 3365, 3366, 3367, 3367, 3367, 3368,
- 3369, 3367, 3367, 3367, 75, 3370, 3370, 3371,
- 3372, 3373, 3374, 75, 3375, 3375, 3376, 3377,
- 3378, 3379, 3380, 3378, 3378, 3378, 75, 3381,
- 3381, 75, 3383, 3382, 75, 3385, 3384, 75,
- 3387, 3386, 75, 3389, 3388, 75, 3391, 3390,
- 75, 3393, 3392, 75, 3395, 3394, 75, 3397,
- 3396, 75, 3398, 3398, 3271, 3399, 3399, 3271,
- 3400, 3400, 3401, 3402, 3403, 3404, 3271, 3405,
- 3405, 3271, 3406, 3406, 3271, 3407, 3407, 3271,
- 3408, 3408, 3409, 3410, 3411, 3412, 3271, 3413,
- 3413, 3271, 3414, 3414, 3415, 3416, 3417, 3418,
- 3271, 3419, 3420, 3421, 3422, 3423, 3419, 3420,
- 3421, 3422, 3423, 3271, 3424, 3424, 3271, 3425,
- 3425, 3426, 3427, 3428, 3429, 3271, 3430, 3431,
- 3430, 3431, 3271, 3432, 3432, 3271, 3433, 3433,
- 3271, 3434, 3434, 3271, 3435, 3435, 3271, 3436,
- 3436, 3437, 3438, 3439, 3440, 3271, 3441, 3441,
- 3442, 3443, 3444, 3445, 3271, 3446, 3446, 3271,
- 3447, 3447, 3271, 3448, 3448, 3449, 3450, 3451,
- 3452, 3271, 3453, 3453, 3271, 3454, 3454, 3271,
- 3455, 3455, 3271, 3456, 3456, 3457, 3458, 3459,
- 3460, 3271, 3461, 3461, 3271, 3462, 3462, 3271,
- 3463, 3463, 3271, 3464, 3464, 3465, 3466, 3467,
- 3468, 3271, 3469, 3470, 3471, 3469, 3470, 3471,
- 3271, 3472, 3472, 3271, 3473, 3473, 3271, 3474,
- 3474, 3271, 3475, 3475, 3476, 3477, 3478, 3479,
- 3271, 3480, 3481, 3480, 3481, 3271, 3482, 3482,
- 3271, 3483, 3483, 3271, 3484, 3484, 3485, 3486,
- 3487, 3488, 3271, 3489, 3489, 3271, 3490, 3490,
- 3271, 3491, 3491, 3271, 3492, 3492, 3493, 3494,
- 3495, 3496, 3271, 3497, 3497, 3498, 3499, 3500,
- 3501, 3271, 3502, 3502, 3271, 3503, 3503, 3271,
- 3504, 3505, 3271, 3506, 3271, 3507, 3507, 3508,
- 3509, 3510, 3511, 3271, 3512, 3271, 3513, 3513,
- 3514, 3515, 3516, 3517, 3271, 3518, 3519, 3518,
- 3519, 3271, 3520, 3520, 3271, 3521, 3521, 3271,
- 3522, 3522, 3271, 3523, 3523, 3524, 3525, 3526,
- 3527, 3271, 3528, 3528, 3271, 3529, 3529, 3271,
- 3530, 3530, 3271, 3531, 3531, 3532, 3533, 3534,
- 3535, 3271, 3536, 3536, 3271, 3537, 3537, 3271,
- 3538, 3538, 3271, 3539, 3539, 3271, 3540, 3540,
- 3271, 3541, 3541, 3271, 3542, 3542, 3271, 3543,
- 3543, 3544, 3545, 3546, 3547, 3271, 3548, 3549,
- 3548, 3549, 3271, 3550, 3550, 3271, 3551, 3551,
- 3552, 3553, 3554, 3555, 3271, 3556, 3556, 3557,
- 3558, 3559, 3560, 3271, 3561, 3562, 3563, 3564,
- 3563, 3564, 3271, 3565, 3271, 3566, 3566, 3567,
- 3568, 3569, 3570, 3271, 3571, 3271, 3572, 3572,
- 3573, 3574, 3575, 3576, 3271, 3577, 3577, 3271,
- 3578, 3578, 3579, 3580, 3581, 3582, 3271, 3583,
- 3583, 3584, 3585, 3586, 3587, 3271, 3588, 3589,
- 3588, 3589, 3271, 3590, 3590, 3271, 3591, 3591,
- 3271, 3592, 3592, 3271, 3593, 3593, 3594, 3595,
- 3596, 3597, 3271, 3598, 3598, 3599, 3600, 3601,
- 3602, 3271, 3603, 3604, 3605, 3603, 3604, 3605,
- 3271, 3606, 3606, 3271, 3607, 3607, 3271, 3608,
- 3608, 3271, 3609, 3609, 3610, 3611, 3612, 3613,
- 3271, 3614, 3614, 3271, 3615, 3615, 3616, 3617,
- 3618, 3619, 3271, 3620, 3620, 3621, 3622, 3623,
- 3623, 3624, 3625, 3271, 3626, 3626, 3271, 3627,
- 3627, 3628, 3629, 3630, 3631, 3632, 3271, 3633,
- 3633, 3634, 3635, 3636, 3636, 3637, 3638, 3271,
- 3639, 3639, 3271, 3640, 3640, 3271, 3641, 3641,
- 3271, 3642, 3642, 3271, 3643, 3643, 3644, 3645,
- 3646, 3647, 3271, 3648, 3648, 3271, 3649, 3649,
- 3271, 3650, 3650, 3271, 3651, 3651, 3271, 3652,
- 3652, 3271, 3653, 3653, 3271, 3654, 3654, 3271,
- 3655, 3655, 3271, 3656, 3656, 3271, 3657, 3657,
- 3658, 3659, 3660, 3661, 3271, 3662, 3662, 3271,
- 3663, 3663, 3271, 3664, 3664, 3665, 3666, 3667,
- 3668, 3271, 3669, 3670, 3671, 3669, 3670, 3671,
- 3271, 3672, 3672, 3673, 3674, 3675, 3676, 3271,
- 3677, 3677, 3271, 3678, 3678, 3271, 3679, 3679,
- 3271, 3680, 3680, 3681, 3682, 3683, 3684, 3271,
- 3685, 3685, 3686, 3687, 3688, 3689, 3271, 3690,
- 3691, 3692, 3693, 3694, 3695, 3690, 3691, 3692,
- 3693, 3694, 3695, 3271, 3696, 3696, 3271, 3697,
- 3697, 3271, 3698, 3698, 3271, 3699, 3699, 3271,
- 3700, 3700, 3701, 3702, 3703, 3704, 3271, 3705,
- 3705, 3271, 3706, 3706, 3707, 3708, 3709, 3710,
- 3271, 3711, 3711, 3271, 3712, 3712, 3713, 3714,
- 3715, 3716, 3271, 3717, 3717, 3271, 3718, 3718,
- 3719, 3720, 3721, 3722, 3271, 3723, 3723, 3271,
- 3724, 3724, 3271, 3725, 3725, 3271, 3726, 3726,
- 3727, 3728, 3729, 3730, 3271, 3731, 3731, 3271,
- 3732, 3732, 3271, 3733, 3733, 3734, 3735, 3736,
- 3737, 3271, 3738, 3739, 3740, 3738, 3739, 3740,
- 3271, 3741, 3741, 3271, 3742, 3742, 3271, 3743,
- 3743, 3744, 3745, 3746, 3747, 3271, 3748, 3748,
- 3271, 3749, 3749, 3750, 3751, 3752, 3753, 3271,
- 3754, 3754, 3271, 3755, 3755, 3271, 3757, 3756,
- 3758, 3758, 3759, 3760, 3762, 3763, 3761, 3756,
- 3764, 3764, 3271, 3765, 3765, 3271, 3766, 3766,
- 3767, 3768, 3769, 3770, 3271, 3771, 3771, 3271,
- 3772, 3772, 3271, 3773, 3773, 3271, 3774, 3774,
- 3271, 3775, 3775, 3271, 3776, 3776, 3777, 3778,
- 3779, 3780, 3271, 3781, 3781, 3781, 3781, 3781,
- 3781, 75, 3782, 3782, 3782, 3782, 75, 3783,
- 3783, 3783, 3783, 75, 3784, 2327, 3785, 3785,
- 3786, 3787, 3789, 3790, 3788, 2327, 3791, 3791,
- 3792, 3793, 3795, 3796, 3794, 2327, 3797, 3797,
- 3798, 3799, 3801, 3802, 3800, 2327, 3803, 3803,
- 3804, 3805, 3807, 3808, 3806, 3806, 3806, 75,
- 3809, 3809, 3810, 3811, 3812, 3813, 75, 3809,
- 3809, 3810, 3811, 3814, 3812, 3813, 3814, 3814,
- 3814, 75, 3815, 3815, 75, 3817, 3816, 75,
- 3819, 3818, 75, 3821, 3820, 75, 3822, 3822,
- 3822, 3822, 75, 3823, 3823, 75, 3824, 2327,
- 3825, 3825, 3826, 3827, 3829, 3830, 3828, 2327,
- 3831, 3831, 3832, 3833, 3835, 3836, 3834, 2327,
- 3837, 3837, 3838, 3839, 3841, 3842, 3840, 2327,
- 3843, 3843, 3844, 3845, 3847, 3848, 3846, 2327,
- 3849, 3849, 3850, 3851, 3853, 3854, 3852, 2327,
- 3855, 3855, 3856, 3857, 3858, 3860, 3861, 3859,
- 3859, 3859, 2998, 3862, 3862, 3863, 3864, 3865,
- 3866, 2998, 3868, 3868, 3869, 3870, 3872, 3873,
- 3871, 3871, 3871, 3867, 3874, 3874, 3874, 3867,
- 3876, 3875, 3875, 3875, 3867, 3877, 3877, 3877,
- 3867, 3879, 3878, 3878, 3878, 3867, 3881, 3880,
- 3880, 3880, 3867, 3882, 3882, 3882, 3867, 3884,
- 3883, 3883, 3883, 3867, 3885, 3885, 3885, 3885,
- 3886, 3886, 3886, 3867, 3887, 3887, 3887, 3887,
- 75, 3888, 3867, 3884, 3867, 3881, 3867, 3889,
- 3867, 3879, 3867, 3891, 3890, 75, 3892, 3892,
- 3892, 2998, 3862, 3862, 3863, 3864, 3865, 3866,
- 3893, 3893, 3893, 2998, 3895, 3894, 75, 3897,
- 3896, 75, 3899, 3898, 75, 3900, 2327, 3901,
- 3901, 3902, 3903, 3905, 3906, 3904, 2327, 3907,
- 3907, 3908, 3909, 3911, 3912, 3910, 2327, 3913,
- 3913, 3914, 3915, 3917, 3918, 3916, 2327, 3919,
- 3919, 3920, 3921, 3923, 3924, 3922, 2327, 3925,
- 3925, 3926, 3927, 3929, 3930, 3928, 2327, 3931,
- 3931, 3932, 3933, 3934, 3936, 3937, 3935, 3935,
- 3935, 2998, 3938, 3938, 3938, 3938, 2998, 3939,
- 3939, 3939, 2998, 3938, 3938, 3938, 3938, 3940,
- 3940, 3940, 2998, 3942, 3941, 75, 3944, 3943,
- 75, 3946, 3945, 75, 3947, 2327, 3948, 3948,
- 3949, 3950, 3952, 3953, 3951, 2327, 3954, 3954,
- 3955, 3956, 3958, 3959, 3957, 2327, 3960, 3960,
- 3961, 3962, 3964, 3965, 3963, 2327, 3966, 3966,
- 3967, 3968, 3970, 3971, 3969, 2327, 3972, 3972,
- 3973, 3974, 3976, 3977, 3975, 2327, 3978, 3978,
- 3979, 3980, 3982, 3983, 3981, 3981, 3981, 2998,
- 3984, 3984, 3984, 2998, 3985, 3985, 3986, 3987,
- 3988, 3989, 3990, 3990, 3991, 3992, 3981, 3981,
- 3981, 2998, 3994, 3993, 2998, 3996, 3995, 75,
- 3998, 3997, 75, 4000, 3999, 75, 4001, 2327,
- 4002, 4002, 4003, 4004, 4006, 4007, 4005, 2327,
- 4008, 4008, 4009, 4010, 4012, 4013, 4011, 2327,
- 4014, 4014, 4014, 4014, 4015, 2327, 4016, 4016,
- 4016, 4016, 75, 4018, 4017, 75, 4019, 2327,
- 4020, 4020, 4021, 4022, 4024, 4025, 4023, 2327,
- 4026, 4026, 4027, 4028, 4030, 4031, 4029, 2327,
- 4032, 4032, 4033, 4034, 4036, 4037, 4035, 2327,
- 4038, 4038, 4039, 4040, 4042, 4043, 4041, 2327,
- 4044, 4044, 4045, 4046, 4048, 4049, 4047, 2327,
- 4050, 4050, 4051, 4052, 4054, 4055, 4053, 4053,
- 4053, 2998, 4056, 4056, 4056, 2998, 4057, 4057,
- 4058, 4059, 4060, 4061, 4062, 4062, 4063, 4064,
- 4053, 4053, 4053, 2998, 4066, 4065, 2998, 4068,
- 4067, 75, 4070, 4069, 75, 4072, 4071, 75,
- 4073, 2327, 4074, 4074, 4075, 4076, 4078, 4079,
- 4077, 2327, 4080, 4080, 4081, 4082, 4083, 4084,
- 4085, 4083, 2304, 4086, 4087, 4086, 4086, 4086,
- 4087, 2304, 4089, 4088, 75, 4090, 2327, 4091,
- 4091, 4092, 4093, 4095, 4096, 4094, 2327, 4097,
- 4097, 4098, 4099, 4101, 4102, 4100, 4100, 4100,
- 2998, 4103, 4103, 4103, 2998, 4104, 4104, 4104,
- 2998, 4105, 4105, 4105, 2998, 4107, 4106, 4108,
- 4108, 4108, 2998, 4109, 4109, 4109, 2998, 4110,
- 4110, 4110, 2998, 4111, 4111, 4111, 2998, 4113,
- 4107, 4113, 4113, 4113, 4112, 4115, 4114, 75,
- 4116, 4116, 4116, 2998, 4117, 4117, 4117, 2998,
- 4119, 4118, 4120, 4120, 4120, 2998, 4121, 4121,
- 4121, 2998, 4122, 4119, 4122, 4122, 4122, 4118,
- 4123, 4123, 4123, 2998, 4124, 4124, 4124, 2998,
- 4125, 4118, 4126, 4126, 4126, 2998, 4127, 4127,
- 4127, 2998, 4128, 4125, 4128, 4128, 4128, 4118,
- 4129, 2327, 4130, 4130, 4131, 4132, 4134, 4135,
- 4133, 2327, 4136, 4136, 4137, 4138, 4140, 4141,
- 4139, 2327, 4142, 4142, 4143, 4144, 4146, 4147,
- 4145, 2327, 4149, 4149, 4150, 4151, 4152, 4153,
- 4148, 4148, 4148, 75, 4154, 4154, 4154, 4154,
- 75, 4156, 4155, 75, 4158, 4157, 75, 4159,
- 2327, 4160, 4160, 4161, 4162, 4164, 4165, 4163,
- 2327, 4167, 4167, 4168, 4169, 4170, 4171, 4166,
- 4166, 4166, 75, 4172, 4172, 4173, 4174, 4175,
- 4176, 75, 4178, 4178, 4179, 4180, 4181, 4182,
- 4177, 4177, 4177, 75, 4183, 4183, 4183, 4183,
- 75, 4185, 4184, 75, 4187, 4186, 75, 4188,
- 2327, 4189, 4189, 4190, 4191, 4193, 4194, 4192,
- 2327, 4195, 4195, 4196, 4197, 4198, 4198, 4198,
- 4199, 4200, 4198, 4198, 4198, 75, 4201, 4201,
- 4201, 4201, 75, 4202, 4202, 4202, 4202, 75,
- 4204, 4203, 75, 4206, 4206, 4207, 4208, 4209,
- 4210, 4210, 4210, 4211, 4212, 4213, 4214, 4210,
- 4210, 4210, 4205, 4215, 4215, 4216, 4217, 4218,
- 4219, 73, 4220, 4219, 4211, 4212, 4221, 4222,
- 4223, 4224, 4225, 4226, 73, 73, 4219, 73,
- 4219, 73, 4219, 73, 871, 4228, 4228, 4207,
- 4229, 4230, 4210, 4231, 4232, 4233, 4234, 4235,
- 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243,
- 4244, 4245, 4246, 4247, 4210, 4210, 4231, 4232,
- 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240,
- 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4211,
- 4212, 4248, 4249, 4210, 4210, 4210, 4227, 4228,
- 4228, 4207, 4229, 4230, 4210, 4252, 4253, 4254,
- 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262,
- 4263, 4264, 4265, 4266, 4267, 4268, 4210, 4210,
- 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259,
- 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267,
- 4268, 4211, 4212, 4248, 4249, 4210, 4251, 4210,
- 4210, 4250, 4270, 4270, 4271, 4272, 4273, 4274,
- 4274, 4274, 4275, 4276, 4277, 4278, 4274, 4274,
- 4274, 4269, 4206, 4206, 4207, 4279, 4280, 4210,
- 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259,
- 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267,
- 4268, 4210, 4210, 4252, 4253, 4254, 4255, 4256,
- 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264,
- 4265, 4266, 4267, 4268, 4211, 4212, 4281, 4282,
- 4210, 4251, 4210, 4210, 4250, 4283, 4283, 4207,
- 4284, 4285, 4210, 4210, 4210, 87, 88, 4286,
- 4287, 4210, 4210, 4210, 871, 4288, 4288, 4216,
- 4289, 4290, 4219, 73, 4220, 4219, 87, 88,
- 4286, 4291, 105, 106, 4286, 4292, 73, 73,
- 4219, 73, 4219, 73, 4219, 73, 871, 4215,
- 4215, 4216, 4217, 4218, 4219, 73, 4295, 4296,
- 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304,
- 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4220,
- 4219, 4295, 4296, 4297, 4298, 4299, 4300, 4301,
- 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309,
- 4310, 4311, 4211, 4212, 4221, 4222, 4223, 4224,
- 4225, 4226, 73, 73, 4219, 4294, 73, 4219,
- 73, 4219, 73, 4293, 4288, 4288, 4216, 4289,
- 4290, 4219, 73, 4295, 4296, 4297, 4298, 4299,
- 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307,
- 4308, 4309, 4310, 4311, 4220, 4219, 4295, 4296,
- 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304,
- 4305, 4306, 4307, 4308, 4309, 4310, 4311, 87,
- 88, 4312, 4291, 105, 106, 4312, 4292, 73,
- 73, 4219, 4294, 73, 4219, 73, 4219, 73,
- 4293, 778, 778, 778, 778, 1036, 1037, 1036,
- 1039, 1036, 1037, 1038, 1037, 1032, 778, 778,
- 778, 1194, 1194, 1195, 1196, 1163, 1164, 1165,
- 1163, 1197, 1198, 1163, 1163, 1163, 1169, 778,
- 1209, 1209, 1210, 1211, 1204, 1212, 1213, 1214,
- 1214, 1215, 1216, 1204, 1204, 1204, 1203, 1218,
- 1217, 1203, 778, 1228, 1228, 1229, 1230, 1231,
- 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239,
- 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247,
- 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238,
- 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246,
- 1247, 1248, 1249, 1250, 1250, 1251, 1252, 1219,
- 1275, 1274, 1219, 778, 1814, 1814, 1815, 1816,
- 1817, 1818, 1819, 1819, 1820, 1821, 1810, 1810,
- 1810, 1806, 1823, 1822, 1806, 1842, 1842, 1843,
- 1844, 1846, 1847, 1845, 1845, 1845, 1806, 1792,
- 1849, 1849, 1850, 1851, 1852, 1853, 1854, 1854,
- 1855, 1856, 1845, 1845, 1845, 1806, 1858, 1857,
- 1806, 1860, 1859, 1792, 778, 778, 1930, 1930,
- 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938,
- 1939, 1940, 1941, 1942, 1942, 1943, 1944, 1921,
- 1960, 1959, 1921, 778, 778, 778, 778, 778,
- 778, 778, 778, 778, 2522, 2522, 2523, 2524,
- 2525, 2526, 2527, 2527, 2528, 2529, 2521, 2521,
- 2521, 2512, 2531, 2530, 2512, 778, 778, 2695,
- 2695, 2696, 2697, 2698, 2699, 2644, 2644, 2700,
- 2701, 2535, 2703, 2702, 2535, 2677, 2677, 2678,
- 2679, 2681, 2682, 2644, 2644, 2683, 2684, 2680,
- 2535, 2715, 2714, 2535, 2658, 2658, 2659, 2660,
- 2662, 2663, 2644, 2644, 2664, 2665, 2661, 2535,
- 2728, 2727, 2535, 2638, 2638, 2639, 2640, 2642,
- 2643, 2644, 2644, 2645, 2646, 2641, 2535, 2741,
- 2740, 2535, 778, 778, 778, 778, 2939, 2939,
- 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947,
- 2947, 2948, 2949, 2938, 2968, 2967, 75, 778,
- 3006, 3006, 3007, 3008, 3009, 3010, 3011, 3011,
- 3012, 3013, 3002, 3002, 3002, 2998, 3015, 3014,
- 2998, 778, 3048, 3048, 3049, 3050, 3051, 3052,
- 3053, 3053, 3054, 3055, 3044, 3044, 3044, 2998,
- 3057, 3056, 2998, 778, 3102, 3102, 3103, 3104,
- 3108, 3108, 3108, 3108, 3113, 3114, 3108, 3108,
- 3115, 3116, 3121, 3126, 3125, 3121, 3099, 3099,
- 3100, 3101, 3122, 3109, 3110, 3122, 3122, 3122,
- 3121, 3124, 3123, 3121, 3122, 3099, 3099, 3100,
- 3101, 3102, 3102, 3103, 3104, 3105, 3105, 3106,
- 3107, 3108, 3108, 3108, 3108, 3109, 3110, 3108,
- 3108, 3111, 3112, 3113, 3114, 3108, 3108, 3115,
- 3116, 3117, 3118, 3108, 3108, 3119, 3120, 3122,
- 3122, 3122, 3121, 3124, 3126, 3128, 3123, 3125,
- 3127, 3121, 778, 778, 778, 778, 778, 778,
- 778, 3985, 3985, 3986, 3987, 3988, 3989, 3990,
- 3990, 3991, 3992, 3981, 3981, 3981, 2998, 3994,
- 3993, 2998, 778, 778, 4057, 4057, 4058, 4059,
- 4060, 4061, 4062, 4062, 4063, 4064, 4053, 4053,
- 4053, 2998, 4066, 4065, 2998, 778, 778, 778,
- 778, 778, 778, 778, 0
+ 134, 135, 136, 137, 138, 139, 140, 141,
+ 80, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, 134, 135, 136, 137, 138,
+ 139, 140, 141, 95, 96, 919, 875, 114,
+ 115, 920, 876, 75, 75, 123, 75, 120,
+ 890, 890, 891, 892, 160, 161, 162, 163,
+ 164, 160, 161, 162, 163, 164, 89, 90,
+ 893, 894, 908, 890, 890, 891, 892, 236,
+ 237, 238, 236, 237, 238, 89, 90, 893,
+ 894, 908, 890, 890, 891, 892, 281, 281,
+ 89, 90, 893, 894, 908, 890, 890, 891,
+ 892, 303, 304, 303, 304, 89, 90, 893,
+ 894, 908, 890, 890, 891, 892, 715, 328,
+ 715, 328, 89, 90, 893, 894, 908, 890,
+ 890, 891, 892, 371, 372, 371, 372, 89,
+ 90, 893, 894, 908, 890, 890, 891, 892,
+ 390, 391, 392, 393, 392, 393, 89, 90,
+ 893, 894, 908, 890, 890, 891, 892, 429,
+ 430, 429, 430, 89, 90, 893, 894, 908,
+ 890, 890, 891, 892, 450, 451, 452, 450,
+ 451, 452, 89, 90, 893, 894, 908, 890,
+ 890, 891, 892, 513, 513, 89, 90, 893,
+ 894, 908, 890, 890, 891, 892, 530, 530,
+ 89, 90, 893, 894, 908, 890, 890, 891,
+ 892, 540, 541, 542, 540, 541, 542, 89,
+ 90, 893, 894, 908, 890, 890, 891, 892,
+ 570, 571, 572, 573, 574, 575, 570, 571,
+ 572, 573, 574, 575, 89, 90, 893, 894,
+ 908, 890, 890, 891, 892, 636, 637, 638,
+ 636, 637, 638, 89, 90, 893, 894, 908,
+ 890, 890, 891, 892, 672, 672, 89, 90,
+ 893, 894, 908, 890, 890, 891, 892, 682,
+ 682, 89, 90, 893, 894, 908, 890, 890,
+ 891, 892, 695, 695, 89, 90, 893, 894,
+ 908, 921, 921, 100, 923, 924, 99, 99,
+ 925, 926, 99, 99, 99, 922, 927, 927,
+ 928, 929, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 89, 90,
+ 930, 931, 4, 120, 86, 89, 86, 87,
+ 88, 90, 932, 933, 932, 934, 935, 936,
+ 795, 85, 92, 95, 92, 93, 94, 96,
+ 937, 862, 937, 938, 939, 940, 795, 91,
+ 863, 866, 863, 864, 865, 867, 941, 933,
+ 941, 942, 943, 944, 97, 877, 85, 868,
+ 98, 868, 869, 870, 871, 945, 862, 945,
+ 946, 947, 948, 97, 877, 85, 949, 949,
+ 39, 950, 950, 39, 951, 951, 952, 953,
+ 954, 955, 956, 956, 957, 958, 63, 959,
+ 959, 39, 960, 960, 39, 961, 961, 39,
+ 962, 962, 963, 964, 965, 966, 967, 967,
+ 968, 969, 63, 970, 970, 39, 971, 971,
+ 972, 973, 974, 975, 976, 976, 977, 978,
+ 63, 772, 980, 771, 979, 85, 981, 981,
+ 982, 983, 984, 867, 984, 867, 771, 771,
+ 771, 85, 985, 985, 986, 987, 988, 871,
+ 988, 871, 771, 771, 771, 91, 981, 984,
+ 981, 982, 983, 867, 989, 933, 989, 990,
+ 991, 944, 771, 979, 85, 985, 988, 985,
+ 986, 987, 871, 992, 862, 992, 993, 994,
+ 948, 771, 979, 85, 863, 866, 863, 864,
+ 865, 867, 995, 866, 995, 996, 997, 177,
+ 97, 117, 85, 868, 98, 868, 869, 870,
+ 871, 998, 98, 998, 999, 1000, 181, 97,
+ 117, 85, 1002, 1001, 77, 1003, 1003, 1004,
+ 1005, 75, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 80, 124, 125, 126,
+ 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 89,
+ 90, 930, 1006, 107, 108, 930, 1007, 75,
+ 75, 123, 75, 120, 86, 89, 86, 87,
+ 88, 90, 1008, 933, 1008, 1009, 1010, 944,
+ 1001, 85, 92, 95, 92, 93, 94, 96,
+ 1011, 862, 1011, 1012, 1013, 948, 1001, 85,
+ 785, 785, 786, 787, 160, 161, 162, 163,
+ 164, 160, 161, 162, 163, 164, 788, 789,
+ 1014, 785, 785, 786, 787, 236, 237, 238,
+ 236, 237, 238, 788, 789, 1014, 785, 785,
+ 786, 787, 281, 281, 788, 789, 1014, 785,
+ 785, 786, 787, 303, 304, 303, 304, 788,
+ 789, 1014, 785, 785, 786, 787, 715, 328,
+ 715, 328, 788, 789, 1014, 785, 785, 786,
+ 787, 371, 372, 371, 372, 788, 789, 1014,
+ 785, 785, 786, 787, 390, 391, 392, 393,
+ 392, 393, 788, 789, 1014, 785, 785, 786,
+ 787, 429, 430, 429, 430, 788, 789, 1014,
+ 785, 785, 786, 787, 450, 451, 452, 450,
+ 451, 452, 788, 789, 1014, 785, 785, 786,
+ 787, 513, 513, 788, 789, 1014, 785, 785,
+ 786, 787, 530, 530, 788, 789, 1014, 785,
+ 785, 786, 787, 540, 541, 542, 540, 541,
+ 542, 788, 789, 1014, 785, 785, 786, 787,
+ 570, 571, 572, 573, 574, 575, 570, 571,
+ 572, 573, 574, 575, 788, 789, 1014, 785,
+ 785, 786, 787, 636, 637, 638, 636, 637,
+ 638, 788, 789, 1014, 785, 785, 786, 787,
+ 672, 672, 788, 789, 1014, 785, 785, 786,
+ 787, 682, 682, 788, 789, 1014, 785, 785,
+ 786, 787, 695, 695, 788, 789, 1014, 772,
+ 1016, 771, 1015, 91, 772, 1018, 771, 1017,
+ 154, 785, 785, 786, 787, 327, 328, 327,
+ 328, 788, 789, 1014, 98, 1020, 97, 1019,
+ 154, 1022, 1023, 1024, 1021, 1021, 1021, 796,
+ 1026, 1025, 1028, 1027, 1030, 1031, 1032, 1033,
+ 1030, 1030, 1030, 1030, 1029, 1034, 1035, 1036,
+ 1034, 1037, 1035, 1034, 1034, 1035, 1035, 1035,
+ 1029, 1038, 1039, 1039, 1038, 1040, 1039, 1038,
+ 1038, 1039, 1039, 1039, 1029, 1041, 1035, 1043,
+ 1042, 1044, 1042, 1045, 1046, 1047, 1045, 1048,
+ 1046, 1045, 1045, 1046, 1046, 1046, 1042, 1038,
+ 1038, 1038, 1038, 1029, 1049, 1049, 1049, 1049,
+ 1029, 1052, 1053, 1051, 1051, 1050, 1054, 1055,
+ 1054, 1057, 1054, 1055, 1056, 1055, 1050, 1051,
+ 1059, 1051, 1058, 1060, 1058, 1061, 1058, 1062,
+ 1063, 1062, 1065, 1062, 1063, 1064, 1063, 1058,
+ 1066, 1066, 1068, 1066, 1069, 1066, 1067, 1050,
+ 1070, 1070, 1072, 1070, 1073, 1070, 1071, 1050,
+ 1075, 1075, 1075, 1075, 1074, 1067, 1076, 1067,
+ 1058, 1077, 1058, 1078, 1058, 1079, 1079, 1081,
+ 1079, 1082, 1079, 1080, 1058, 1084, 1084, 1085,
+ 1086, 1087, 1088, 1083, 1084, 1084, 1085, 1086,
+ 1087, 1088, 1090, 1089, 1092, 1092, 1093, 1094,
+ 1096, 1097, 1098, 1099, 1100, 1096, 1097, 1098,
+ 1099, 1100, 1101, 1102, 1101, 1102, 1095, 1091,
+ 1104, 1104, 1105, 1106, 1107, 1108, 1107, 1108,
+ 1103, 1110, 1109, 1092, 1092, 1093, 1094, 1101,
+ 1102, 1101, 1102, 1111, 1091, 1114, 1115, 1116,
+ 1117, 1118, 1114, 1115, 1116, 1117, 1118, 1113,
+ 1112, 1119, 1119, 1120, 1121, 1123, 1124, 1123,
+ 1124, 1122, 1091, 1126, 1125, 1083, 1128, 1128,
+ 1129, 1130, 1131, 1132, 1127, 1128, 1128, 1129,
+ 1130, 1133, 1134, 1135, 1133, 1131, 1132, 1133,
+ 1133, 1133, 1127, 1136, 1137, 1138, 1136, 1136,
+ 1136, 1136, 1127, 1140, 1140, 1141, 1142, 1143,
+ 1143, 1144, 1143, 1145, 1146, 1145, 1146, 1143,
+ 1143, 1143, 1139, 1147, 1147, 1148, 1149, 1150,
+ 1151, 1150, 1151, 1139, 1153, 1152, 1154, 1136,
+ 1156, 1155, 1157, 1155, 1158, 1159, 1160, 1158,
+ 1158, 1158, 1158, 1155, 1140, 1140, 1141, 1142,
+ 1145, 1146, 1145, 1146, 1139, 1162, 1161, 1127,
+ 1163, 1163, 1164, 1165, 1166, 1167, 796, 1163,
+ 1163, 1164, 1165, 1166, 1167, 1168, 1168, 1168,
+ 1169, 1171, 1171, 1172, 1173, 1174, 1175, 1174,
+ 1176, 1170, 1178, 1178, 1179, 1180, 1181, 1182,
+ 1183, 1181, 1184, 1185, 1184, 1186, 1181, 1181,
+ 1181, 1177, 1188, 1189, 1190, 1188, 1188, 1188,
+ 1188, 1187, 1191, 1191, 1192, 1193, 1194, 1194,
+ 1195, 1194, 1196, 1197, 1196, 1197, 1194, 1194,
+ 1194, 1177, 1198, 1198, 1199, 1200, 1184, 1185,
+ 1184, 1185, 91, 1202, 1201, 1203, 1188, 1205,
+ 1204, 1206, 1204, 1207, 1208, 1209, 1207, 1207,
+ 1207, 1207, 1204, 1191, 1191, 1192, 1193, 1196,
+ 1197, 1196, 1197, 1177, 1202, 1211, 1201, 1210,
+ 91, 1212, 1212, 1213, 1214, 1181, 1182, 1183,
+ 1181, 1215, 1216, 1181, 1181, 1181, 1187, 1218,
+ 1217, 796, 1220, 1219, 796, 1222, 1222, 1222,
+ 1222, 1221, 1223, 1223, 1223, 1223, 1221, 1224,
+ 1225, 1224, 1224, 1224, 1221, 1226, 1227, 1226,
+ 1226, 1226, 1221, 1227, 1227, 1228, 1229, 1222,
+ 1230, 1231, 1232, 1232, 1233, 1234, 1222, 1222,
+ 1222, 1221, 1236, 1235, 1221, 1227, 1221, 1238,
+ 1238, 1239, 1240, 1241, 1242, 1243, 1243, 1244,
+ 1245, 1237, 1246, 1246, 1247, 1248, 1249, 1250,
+ 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258,
+ 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266,
+ 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256,
+ 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264,
+ 1265, 1266, 1267, 1268, 1269, 1269, 1270, 1271,
+ 1237, 1272, 1272, 1273, 1274, 1275, 1276, 1277,
+ 1275, 1276, 1277, 1278, 1279, 1280, 1280, 1281,
+ 1282, 1237, 1283, 1283, 1237, 1284, 1284, 1237,
+ 1285, 1285, 1286, 1287, 1288, 1289, 1290, 1290,
+ 1291, 1292, 1237, 1294, 1293, 1237, 1295, 1296,
+ 1297, 1298, 1299, 1295, 1296, 1297, 1298, 1299,
+ 1237, 1300, 1300, 1237, 1301, 1301, 1302, 1303,
+ 1304, 1305, 1306, 1306, 1307, 1308, 1237, 1309,
+ 1310, 1309, 1310, 1237, 1311, 1311, 1237, 1312,
+ 1312, 1237, 1313, 1313, 1237, 1314, 1314, 1237,
+ 1315, 1315, 1316, 1317, 1318, 1319, 1320, 1320,
+ 1321, 1322, 1237, 1323, 1323, 1324, 1325, 1326,
+ 1327, 1328, 1328, 1329, 1330, 1237, 1331, 1331,
+ 1237, 1332, 1332, 1237, 1333, 1333, 1334, 1335,
+ 1336, 1337, 1338, 1338, 1339, 1340, 1237, 1341,
+ 1341, 1237, 1342, 1342, 1237, 1343, 1343, 1237,
+ 1344, 1344, 1345, 1346, 1347, 1348, 1349, 1349,
+ 1350, 1351, 1237, 1352, 1352, 1237, 1353, 1353,
+ 1237, 1354, 1354, 1237, 1355, 1355, 1356, 1357,
+ 1358, 1359, 1360, 1360, 1361, 1362, 1237, 1363,
+ 1364, 1365, 1363, 1364, 1365, 1237, 1366, 1366,
+ 1237, 1367, 1367, 1237, 1368, 1368, 1237, 1369,
+ 1369, 1370, 1371, 1372, 1373, 1374, 1374, 1375,
+ 1376, 1237, 1377, 1378, 1377, 1378, 1237, 1379,
+ 1379, 1237, 1380, 1380, 1237, 1381, 1381, 1382,
+ 1383, 1384, 1385, 1386, 1386, 1387, 1388, 1237,
+ 1389, 1389, 1237, 1390, 1390, 1237, 1391, 1391,
+ 1237, 1392, 1392, 1393, 1394, 1395, 1396, 1397,
+ 1397, 1398, 1399, 1237, 1400, 1400, 1401, 1402,
+ 1403, 1404, 1405, 1405, 1406, 1407, 1237, 1408,
+ 1408, 1237, 1409, 1409, 1237, 1410, 1411, 1237,
+ 1412, 1237, 1413, 1413, 1414, 1415, 1416, 1417,
+ 1418, 1418, 1419, 1420, 1237, 1421, 1237, 1422,
+ 1422, 1423, 1424, 1425, 1426, 1427, 1427, 1428,
+ 1429, 1237, 1430, 1431, 1430, 1431, 1237, 1432,
+ 1432, 1237, 1433, 1433, 1237, 1434, 1434, 1237,
+ 1435, 1435, 1436, 1437, 1438, 1439, 1440, 1440,
+ 1441, 1442, 1237, 1443, 1443, 1237, 1444, 1444,
+ 1237, 1445, 1445, 1237, 1446, 1446, 1447, 1448,
+ 1449, 1450, 1451, 1451, 1452, 1453, 1237, 1454,
+ 1454, 1237, 1455, 1455, 1237, 1456, 1456, 1237,
+ 1457, 1457, 1237, 1458, 1458, 1237, 1459, 1459,
+ 1237, 1460, 1460, 1237, 1461, 1461, 1462, 1463,
+ 1464, 1465, 1466, 1466, 1467, 1468, 1237, 1469,
+ 1470, 1469, 1470, 1237, 1471, 1471, 1237, 1472,
+ 1472, 1473, 1474, 1475, 1476, 1477, 1477, 1478,
+ 1479, 1237, 1480, 1480, 1481, 1482, 1483, 1484,
+ 1485, 1485, 1486, 1487, 1237, 1488, 1489, 1490,
+ 1491, 1490, 1491, 1237, 1492, 1237, 1493, 1493,
+ 1494, 1495, 1496, 1497, 1498, 1498, 1499, 1500,
+ 1237, 1501, 1237, 1502, 1502, 1503, 1504, 1505,
+ 1506, 1507, 1507, 1508, 1509, 1237, 1510, 1510,
+ 1237, 1511, 1511, 1512, 1513, 1514, 1515, 1516,
+ 1516, 1517, 1518, 1237, 1519, 1519, 1520, 1521,
+ 1522, 1523, 1524, 1524, 1525, 1526, 1237, 1527,
+ 1528, 1527, 1528, 1237, 1529, 1529, 1237, 1530,
+ 1530, 1237, 1531, 1531, 1237, 1532, 1532, 1533,
+ 1534, 1535, 1536, 1537, 1537, 1538, 1539, 1237,
+ 1540, 1540, 1541, 1542, 1543, 1544, 1545, 1545,
+ 1546, 1547, 1237, 1548, 1549, 1550, 1548, 1549,
+ 1550, 1237, 1551, 1551, 1237, 1552, 1552, 1237,
+ 1553, 1553, 1237, 1554, 1554, 1555, 1556, 1557,
+ 1558, 1559, 1559, 1560, 1561, 1237, 1562, 1562,
+ 1237, 1563, 1563, 1564, 1565, 1566, 1567, 1568,
+ 1568, 1569, 1570, 1237, 1571, 1571, 1572, 1573,
+ 1574, 1574, 1575, 1576, 1577, 1577, 1578, 1579,
+ 1237, 1580, 1580, 1237, 1581, 1581, 1582, 1583,
+ 1584, 1585, 1586, 1587, 1587, 1588, 1589, 1237,
+ 1590, 1590, 1591, 1592, 1593, 1593, 1594, 1595,
+ 1596, 1596, 1597, 1598, 1237, 1599, 1599, 1237,
+ 1600, 1600, 1237, 1601, 1601, 1237, 1602, 1602,
+ 1237, 1603, 1603, 1604, 1605, 1606, 1607, 1608,
+ 1608, 1609, 1610, 1237, 1611, 1611, 1237, 1612,
+ 1612, 1237, 1613, 1613, 1237, 1614, 1614, 1237,
+ 1615, 1615, 1237, 1616, 1616, 1237, 1617, 1617,
+ 1237, 1618, 1618, 1237, 1619, 1619, 1237, 1620,
+ 1620, 1621, 1622, 1623, 1624, 1625, 1625, 1626,
+ 1627, 1237, 1628, 1628, 1237, 1629, 1629, 1237,
+ 1630, 1630, 1631, 1632, 1633, 1634, 1635, 1635,
+ 1636, 1637, 1237, 1638, 1639, 1640, 1638, 1639,
+ 1640, 1237, 1641, 1641, 1642, 1643, 1644, 1645,
+ 1646, 1646, 1647, 1648, 1237, 1649, 1649, 1237,
+ 1650, 1650, 1237, 1651, 1651, 1237, 1652, 1652,
+ 1653, 1654, 1655, 1656, 1657, 1657, 1658, 1659,
+ 1237, 1660, 1660, 1661, 1662, 1663, 1664, 1665,
+ 1665, 1666, 1667, 1237, 1668, 1669, 1670, 1671,
+ 1672, 1673, 1668, 1669, 1670, 1671, 1672, 1673,
+ 1237, 1674, 1674, 1237, 1675, 1675, 1237, 1676,
+ 1676, 1237, 1677, 1677, 1237, 1678, 1678, 1679,
+ 1680, 1681, 1682, 1683, 1683, 1684, 1685, 1237,
+ 1686, 1686, 1237, 1687, 1687, 1688, 1689, 1690,
+ 1691, 1692, 1692, 1693, 1694, 1237, 1695, 1695,
+ 1237, 1696, 1696, 1697, 1698, 1699, 1700, 1701,
+ 1701, 1702, 1703, 1237, 1704, 1704, 1237, 1705,
+ 1705, 1706, 1707, 1708, 1709, 1710, 1710, 1711,
+ 1712, 1237, 1713, 1713, 1237, 1714, 1714, 1237,
+ 1715, 1715, 1237, 1716, 1716, 1717, 1718, 1719,
+ 1720, 1721, 1721, 1722, 1723, 1237, 1724, 1724,
+ 1237, 1725, 1725, 1237, 1726, 1726, 1727, 1728,
+ 1729, 1730, 1731, 1731, 1732, 1733, 1237, 1734,
+ 1735, 1736, 1734, 1735, 1736, 1237, 1737, 1737,
+ 1237, 1738, 1738, 1237, 1739, 1739, 1740, 1741,
+ 1742, 1743, 1744, 1744, 1745, 1746, 1237, 1747,
+ 1747, 1237, 1748, 1748, 1749, 1750, 1751, 1752,
+ 1753, 1753, 1754, 1755, 1237, 1756, 1756, 1237,
+ 1757, 1757, 1237, 1758, 1237, 1759, 1759, 1760,
+ 1761, 1763, 1764, 1765, 1765, 1766, 1767, 1762,
+ 1237, 1768, 1768, 1237, 1769, 1769, 1237, 1770,
+ 1770, 1771, 1772, 1773, 1774, 1775, 1775, 1776,
+ 1777, 1237, 1778, 1778, 1237, 1779, 1779, 1237,
+ 1780, 1780, 1237, 1781, 1781, 1237, 1782, 1782,
+ 1237, 1783, 1783, 1784, 1785, 1786, 1787, 1788,
+ 1788, 1789, 1790, 1237, 1791, 1791, 1237, 1792,
+ 1792, 1237, 1793, 1793, 1237, 1794, 1794, 1237,
+ 1795, 1795, 1237, 1796, 1796, 1797, 1798, 1799,
+ 1800, 1801, 1801, 1802, 1803, 1237, 1804, 1804,
+ 1237, 1805, 1805, 1237, 1806, 1806, 1237, 1807,
+ 1807, 1808, 1809, 1810, 1811, 1812, 1812, 1813,
+ 1814, 1237, 1815, 1815, 1237, 1816, 1816, 1817,
+ 1818, 1819, 1820, 1821, 1821, 1822, 1823, 1237,
+ 1825, 1825, 1826, 1827, 1828, 1829, 1824, 1825,
+ 1825, 1826, 1827, 1828, 1829, 1831, 1830, 1832,
+ 1832, 1833, 1834, 1836, 1837, 1835, 1830, 1839,
+ 1839, 1840, 1841, 1843, 1844, 1842, 1842, 1842,
+ 1838, 1845, 1845, 1845, 1838, 1846, 1846, 1847,
+ 1848, 1849, 1850, 1851, 1851, 1852, 1853, 1842,
+ 1842, 1842, 1838, 1855, 1854, 1838, 1857, 1856,
+ 1824, 1859, 1858, 1824, 1860, 1860, 1861, 1862,
+ 1863, 1864, 1824, 1860, 1860, 1861, 1862, 1865,
+ 1863, 1864, 1866, 1830, 1867, 1867, 1868, 1869,
+ 1871, 1871, 1872, 1873, 1870, 1830, 1874, 1874,
+ 1875, 1876, 1878, 1879, 1877, 1877, 1877, 1838,
+ 1880, 1880, 1880, 1838, 1881, 1881, 1882, 1883,
+ 1884, 1885, 1886, 1886, 1887, 1888, 1877, 1877,
+ 1877, 1838, 1890, 1889, 1838, 1892, 1891, 1824,
+ 1893, 1893, 1894, 1895, 1896, 1897, 1870, 1830,
+ 1899, 1898, 1824, 1901, 1902, 1903, 1904, 1905,
+ 1906, 1907, 1908, 1900, 1909, 1900, 1910, 1900,
+ 1911, 1900, 1912, 1912, 1912, 1912, 1912, 1912,
+ 1900, 1913, 1900, 1914, 1900, 1915, 1900, 1916,
+ 1900, 1917, 1900, 1918, 1900, 1919, 1919, 1919,
+ 1919, 1919, 1919, 1900, 1920, 1900, 1921, 1900,
+ 1922, 1922, 1922, 1922, 1922, 1922, 1900, 1923,
+ 1900, 1924, 1900, 1925, 1926, 1900, 1927, 1900,
+ 1928, 1900, 1929, 1900, 1930, 1900, 1931, 1931,
+ 1931, 1931, 1931, 1931, 1900, 1932, 1900, 1933,
+ 1900, 1934, 1900, 1935, 1900, 1936, 1936, 1936,
+ 1936, 1936, 1936, 1900, 1937, 1900, 1938, 1900,
+ 1940, 1939, 1941, 1941, 1941, 1941, 1941, 1941,
+ 1942, 1939, 1943, 1900, 1944, 1900, 1945, 1900,
+ 1946, 1900, 1947, 1900, 1948, 1900, 1949, 1900,
+ 1950, 1900, 1951, 1900, 1952, 1900, 1953, 1900,
+ 1954, 1900, 1955, 1900, 1956, 1900, 1957, 1957,
+ 1957, 1957, 1957, 1957, 1900, 1958, 1900, 1959,
+ 1900, 1960, 1900, 1961, 1900, 1962, 1962, 1962,
+ 1962, 1962, 1962, 1900, 1963, 1900, 1964, 1900,
+ 1965, 1900, 1966, 1966, 1966, 1966, 1966, 1966,
+ 1900, 1968, 1968, 1969, 1970, 1971, 1972, 1973,
+ 1973, 1974, 1975, 1967, 1976, 1976, 1977, 1978,
+ 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986,
+ 1987, 1988, 1989, 1990, 1990, 1991, 1992, 1967,
+ 1993, 1967, 1994, 1967, 1995, 1967, 1996, 1967,
+ 1967, 1998, 1967, 1967, 1967, 1997, 1999, 1999,
+ 2000, 2001, 2002, 2003, 2004, 2004, 2005, 2006,
+ 1967, 2008, 2007, 1967, 2009, 1967, 2010, 1967,
+ 2011, 1967, 2012, 1967, 2013, 1967, 2014, 1967,
+ 2015, 1967, 1967, 2017, 1967, 1967, 1967, 2016,
+ 2018, 2018, 2019, 2020, 2021, 2022, 2023, 2023,
+ 2024, 2025, 1967, 2018, 2018, 2019, 2020, 2021,
+ 2022, 2023, 2023, 2024, 2025, 2026, 2026, 2026,
+ 1967, 2027, 1967, 2028, 2028, 2029, 2030, 2031,
+ 2032, 2033, 2033, 2034, 2035, 1967, 2036, 1967,
+ 2037, 1967, 2038, 1967, 2039, 2040, 2040, 2040,
+ 2040, 1967, 2041, 2041, 2041, 2041, 1967, 2042,
+ 2042, 2042, 2042, 1967, 2043, 2044, 2043, 2043,
+ 2043, 1967, 2045, 2046, 2045, 2045, 2045, 1967,
+ 2027, 2047, 2047, 2047, 2047, 1967, 2046, 1967,
+ 2048, 2048, 2048, 2048, 1967, 2049, 2050, 2049,
+ 2049, 2049, 1967, 2051, 2052, 2051, 2051, 2051,
+ 1967, 2018, 2018, 2019, 2020, 2053, 2021, 2022,
+ 2023, 2023, 2024, 2025, 2053, 2053, 2053, 1967,
+ 2052, 1967, 2054, 1967, 2055, 1967, 2056, 2057,
+ 1967, 2058, 1967, 2059, 1967, 2060, 1967, 2061,
+ 1967, 2062, 1967, 2064, 2065, 2065, 2063, 2066,
+ 2066, 2063, 2067, 2068, 2069, 2069, 2063, 2070,
+ 2070, 2063, 2071, 2071, 2072, 2073, 2074, 2075,
+ 2076, 2077, 2078, 2078, 2079, 2080, 2075, 2063,
+ 2081, 2081, 2063, 2082, 1967, 2083, 1967, 2084,
+ 1967, 2085, 1967, 2086, 1967, 2087, 2088, 2088,
+ 2088, 2088, 2063, 2089, 2089, 2089, 2089, 2063,
+ 2090, 2091, 2092, 2092, 2092, 2092, 2063, 2093,
+ 2093, 2093, 2093, 2063, 2094, 2094, 2095, 2096,
+ 2097, 2098, 2099, 2100, 2101, 2101, 2102, 2103,
+ 2098, 2098, 2098, 2063, 2104, 2104, 2104, 2104,
+ 2063, 2105, 1967, 2106, 1967, 2108, 2107, 2109,
+ 2109, 2110, 2111, 2113, 2114, 2115, 2116, 2116,
+ 2117, 2118, 2112, 2107, 1967, 1967, 1967, 1967,
+ 2016, 2119, 1967, 2120, 1967, 2121, 1967, 2122,
+ 1967, 2123, 1967, 2124, 1967, 2125, 1967, 2126,
+ 1967, 2127, 1967, 2128, 2129, 2129, 1967, 2130,
+ 2130, 1967, 2131, 2132, 1967, 2133, 2133, 1967,
+ 2134, 2134, 2135, 2136, 2137, 2138, 2139, 2140,
+ 2140, 2141, 2142, 1967, 2143, 2143, 1967, 2144,
+ 1967, 2145, 1967, 2146, 1967, 2147, 1967, 2148,
+ 1967, 2149, 1967, 2150, 1967, 2151, 1967, 2152,
+ 1967, 2153, 1967, 2154, 1967, 2155, 1967, 2156,
+ 1967, 2157, 1967, 2158, 2158, 2159, 2160, 2161,
+ 2162, 2163, 2163, 2164, 2165, 1967, 2166, 1967,
+ 2167, 1967, 2168, 1967, 2169, 1967, 2170, 2170,
+ 2171, 2172, 2173, 2174, 2175, 2175, 2176, 2177,
+ 1967, 2178, 1967, 2179, 1967, 2180, 1967, 2181,
+ 1967, 2182, 2183, 2107, 2184, 2107, 2185, 2186,
+ 2107, 2187, 2187, 2188, 2189, 2191, 2192, 2193,
+ 2193, 2194, 2195, 2190, 2107, 1999, 1999, 2000,
+ 2001, 2002, 2003, 2004, 2004, 2005, 2006, 2196,
+ 2196, 2196, 1967, 2197, 1967, 2200, 2201, 2202,
+ 2203, 2204, 2200, 2201, 2202, 2203, 2204, 2199,
+ 2198, 2205, 2205, 2205, 2205, 2206, 2198, 2207,
+ 2208, 2207, 2208, 2198, 2209, 2209, 2209, 2209,
+ 2198, 2210, 2210, 2198, 2211, 2212, 2211, 2211,
+ 2211, 2198, 2213, 2213, 2198, 2214, 2214, 2198,
+ 2215, 2215, 2198, 2216, 2216, 2198, 2217, 2198,
+ 2218, 2198, 2219, 2219, 2198, 2220, 2220, 2198,
+ 2221, 2221, 2198, 2222, 2198, 2223, 2223, 2223,
+ 2223, 2198, 2224, 2225, 2224, 2225, 2198, 2226,
+ 2227, 2226, 2227, 2198, 2228, 2198, 2229, 2229,
+ 2198, 2230, 2230, 2198, 2231, 2231, 2198, 2232,
+ 2232, 2198, 2233, 2233, 2233, 2233, 2198, 2234,
+ 2234, 2198, 2235, 2235, 2198, 2236, 2236, 2198,
+ 2237, 2238, 2198, 2239, 2198, 2240, 2198, 2241,
+ 2241, 2198, 2242, 2242, 2198, 2243, 2243, 2198,
+ 2244, 2198, 2245, 2198, 2246, 2198, 2247, 2247,
+ 2247, 2247, 2198, 2248, 2198, 2249, 2198, 2250,
+ 2250, 2198, 2251, 2251, 2198, 2252, 2252, 2198,
+ 2253, 2198, 2254, 2198, 2255, 2198, 2256, 2256,
+ 2256, 2256, 2198, 2257, 2258, 2198, 2259, 2198,
+ 2260, 2198, 2261, 2198, 2262, 2198, 2263, 2263,
+ 2263, 2263, 2198, 2264, 2198, 2265, 2198, 2266,
+ 2266, 2266, 2266, 2198, 2267, 2267, 2198, 2268,
+ 2268, 2198, 2269, 2269, 2198, 2270, 2270, 2198,
+ 2271, 2271, 2198, 2272, 2272, 2198, 2273, 2273,
+ 2198, 2274, 2274, 2274, 2274, 2198, 2275, 2275,
+ 2198, 2276, 2276, 2198, 2277, 2277, 2198, 2278,
+ 2278, 2198, 2279, 2279, 2198, 2280, 2280, 2198,
+ 2281, 2282, 2281, 2282, 2198, 2283, 2283, 2198,
+ 2284, 2284, 2198, 2285, 2285, 2285, 2285, 2198,
+ 2286, 2286, 2198, 2287, 2287, 2198, 2288, 2288,
+ 2288, 2288, 2198, 2289, 2289, 2198, 2290, 2290,
+ 2198, 2291, 2292, 2291, 2292, 2198, 2293, 2293,
+ 2198, 2294, 2198, 2295, 2295, 2295, 2295, 2198,
+ 2296, 2296, 2198, 2297, 2297, 2198, 2298, 2299,
+ 2300, 2198, 2301, 2302, 2301, 2301, 2301, 2198,
+ 2303, 2303, 2198, 2304, 2304, 2198, 2305, 2305,
+ 2198, 2306, 2306, 2198, 2307, 2198, 2308, 2198,
+ 2309, 2309, 2198, 2310, 2310, 2198, 2311, 2311,
+ 2198, 2312, 2198, 2313, 2313, 2313, 2313, 2198,
+ 2314, 2198, 2315, 2198, 2316, 2316, 2316, 2316,
+ 2198, 2317, 2198, 2318, 2198, 2319, 2319, 2319,
+ 2319, 2198, 2322, 2323, 2324, 2325, 2326, 2327,
+ 2322, 2323, 2324, 2325, 2326, 2327, 2321, 2320,
+ 2328, 2328, 2328, 2328, 2329, 2320, 2330, 2330,
+ 2320, 2331, 2331, 2320, 2332, 2332, 2320, 2333,
+ 2333, 2320, 2334, 2334, 2320, 2335, 2335, 2335,
+ 2335, 2320, 2336, 2337, 2338, 2336, 2337, 2338,
+ 2320, 2339, 2339, 2320, 2340, 2340, 2320, 2341,
+ 2341, 2320, 2342, 2342, 2320, 2343, 2343, 2320,
+ 2344, 2344, 2344, 2344, 2320, 2345, 2346, 2345,
+ 2346, 2320, 2347, 2347, 2320, 2348, 2348, 2348,
+ 2348, 2320, 2349, 2349, 2320, 2350, 2350, 2320,
+ 2351, 2351, 2351, 2351, 2320, 2352, 2352, 2320,
+ 2353, 2353, 2320, 2354, 2354, 2320, 2355, 2355,
+ 2355, 2355, 2320, 2356, 2356, 2320, 2357, 2357,
+ 2320, 2358, 2358, 2358, 2358, 2320, 2359, 2360,
+ 2359, 2360, 2320, 2361, 2361, 2320, 2362, 2362,
+ 2362, 2362, 2320, 2363, 2363, 2320, 2364, 2364,
+ 2320, 2365, 2365, 2365, 2365, 2320, 2366, 2366,
+ 2320, 2367, 2367, 2320, 2368, 2368, 2320, 2369,
+ 2369, 2369, 2369, 2320, 2370, 2370, 2320, 2371,
+ 2371, 2320, 2372, 2372, 2372, 2372, 2320, 2374,
+ 2374, 2373, 2375, 2376, 2375, 2375, 2375, 2376,
+ 2373, 2377, 2377, 2377, 2377, 2377, 2377, 77,
+ 2378, 2378, 2378, 2378, 77, 2379, 2379, 2379,
+ 2379, 2379, 2379, 77, 2380, 2380, 2381, 2382,
+ 2383, 2384, 77, 2385, 2385, 2386, 2387, 2388,
+ 2388, 2388, 2389, 2390, 2388, 2388, 2388, 77,
+ 2391, 2391, 2392, 2393, 2394, 2395, 77, 2397,
+ 2397, 2398, 2399, 2401, 2402, 2400, 2396, 2403,
+ 2403, 2404, 2405, 2407, 2408, 2406, 2396, 2409,
+ 2409, 2410, 2411, 2413, 2414, 2412, 2396, 2416,
+ 2416, 2417, 2418, 2420, 2421, 2422, 2423, 2424,
+ 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2419,
+ 2415, 2427, 2427, 2428, 2429, 2431, 2432, 2430,
+ 2396, 2433, 2433, 2434, 2435, 2437, 2438, 2439,
+ 2440, 2441, 2437, 2438, 2439, 2440, 2441, 2442,
+ 2443, 2436, 2415, 2444, 2444, 2445, 2446, 2448,
+ 2449, 2447, 2396, 2450, 2450, 2451, 2452, 2454,
+ 2455, 2456, 2457, 2458, 2454, 2455, 2456, 2457,
+ 2458, 2459, 2460, 2453, 2415, 2461, 2461, 2462,
+ 2463, 2465, 2466, 2464, 2396, 2467, 2467, 2469,
+ 2470, 2471, 2472, 2473, 2469, 2470, 2471, 2472,
+ 2473, 2467, 2467, 2468, 2415, 2467, 2467, 2467,
+ 2467, 2474, 2415, 2476, 2477, 2478, 2479, 2480,
+ 2476, 2477, 2478, 2479, 2480, 2475, 2415, 2481,
+ 2481, 2481, 2481, 2482, 2415, 2484, 2483, 77,
+ 2450, 2450, 2451, 2452, 2459, 2460, 2485, 2415,
+ 2487, 2488, 2489, 2490, 2491, 2487, 2488, 2489,
+ 2490, 2491, 2486, 2415, 2492, 2492, 2493, 2494,
+ 2496, 2497, 2495, 2415, 2499, 2498, 77, 2433,
+ 2433, 2434, 2435, 2442, 2443, 2500, 2415, 2502,
+ 2503, 2504, 2505, 2506, 2502, 2503, 2504, 2505,
+ 2506, 2501, 2415, 2507, 2507, 2508, 2509, 2511,
+ 2512, 2510, 2415, 2514, 2513, 77, 2416, 2416,
+ 2417, 2418, 2425, 2426, 2515, 2415, 2517, 2518,
+ 2519, 2520, 2521, 2517, 2518, 2519, 2520, 2521,
+ 2516, 2415, 2522, 2522, 2523, 2524, 2526, 2527,
+ 2525, 2415, 2529, 2528, 77, 2531, 2530, 77,
+ 2533, 2532, 77, 77, 77, 77, 77, 2534,
+ 2535, 2535, 2536, 2537, 2538, 2539, 77, 2541,
+ 2541, 2542, 2543, 2544, 2545, 2540, 2540, 2540,
+ 77, 2546, 2546, 2546, 2546, 77, 2548, 2547,
+ 77, 2549, 2549, 2549, 2549, 2549, 2549, 77,
+ 2550, 2550, 2551, 2552, 2553, 2554, 77, 2555,
+ 2555, 2556, 2557, 2558, 2558, 2558, 2559, 2560,
+ 2558, 2558, 2558, 77, 2561, 2561, 2561, 2561,
+ 77, 2563, 2562, 77, 2564, 2396, 2565, 2565,
+ 2566, 2567, 2569, 2570, 2568, 2396, 2571, 2571,
+ 2572, 2573, 2574, 2574, 2574, 2575, 2576, 2574,
+ 2574, 2574, 77, 2577, 2577, 2577, 2577, 77,
+ 2579, 2578, 77, 2581, 2581, 2581, 2581, 2580,
+ 2582, 2582, 2583, 2584, 2585, 2586, 2587, 2587,
+ 2588, 2589, 2581, 2591, 2591, 2592, 2593, 2594,
+ 2595, 2596, 2596, 2597, 2598, 2590, 2590, 2590,
+ 2581, 2600, 2599, 2581, 2601, 2601, 2601, 2601,
+ 2373, 2602, 2603, 2602, 2602, 2602, 2603, 2603,
+ 2603, 2373, 2605, 2604, 2606, 2606, 2607, 2608,
+ 2610, 2611, 2609, 2604, 2612, 2612, 2613, 2614,
+ 2616, 2617, 2618, 2619, 2615, 2604, 2620, 2620,
+ 2621, 2622, 2624, 2625, 2623, 2604, 2626, 2626,
+ 2627, 2628, 2616, 2617, 2630, 2631, 2629, 2604,
+ 2632, 2632, 2633, 2634, 2635, 2637, 2638, 2636,
+ 2604, 2639, 2639, 2640, 2641, 2616, 2617, 2642,
+ 2643, 2604, 2644, 2644, 2645, 2646, 2647, 2648,
+ 2604, 2644, 2644, 2645, 2646, 2647, 2648, 2649,
+ 2604, 2650, 2650, 2651, 2652, 2654, 2655, 2653,
+ 2604, 2656, 2656, 2657, 2658, 2660, 2661, 2662,
+ 2663, 2659, 2604, 2664, 2664, 2665, 2666, 2668,
+ 2669, 2667, 2604, 2670, 2670, 2671, 2672, 2660,
+ 2661, 2674, 2675, 2673, 2604, 2676, 2676, 2677,
+ 2678, 2679, 2681, 2682, 2680, 2604, 2683, 2683,
+ 2684, 2685, 2660, 2661, 2686, 2687, 2604, 2688,
+ 2688, 2689, 2690, 2691, 2692, 2604, 2688, 2688,
+ 2689, 2690, 2693, 2691, 2692, 2694, 2604, 2695,
+ 2604, 2696, 2696, 2697, 2698, 2699, 2701, 2702,
+ 2703, 2704, 2704, 2705, 2706, 2700, 2604, 2707,
+ 2707, 2708, 2709, 2711, 2712, 2713, 2713, 2714,
+ 2715, 2710, 2604, 2716, 2716, 2717, 2718, 2719,
+ 2721, 2722, 2723, 2724, 2724, 2725, 2726, 2720,
+ 2604, 2727, 2727, 2728, 2729, 2731, 2732, 2713,
+ 2713, 2733, 2734, 2730, 2604, 2735, 2735, 2736,
+ 2737, 2738, 2740, 2741, 2742, 2743, 2743, 2744,
+ 2745, 2739, 2604, 2746, 2746, 2747, 2748, 2750,
+ 2751, 2713, 2713, 2752, 2753, 2749, 2604, 2754,
+ 2754, 2755, 2756, 2757, 2754, 2759, 2760, 2761,
+ 2761, 2762, 2763, 2758, 2604, 2764, 2764, 2765,
+ 2766, 2767, 2768, 2713, 2713, 2769, 2770, 2604,
+ 2772, 2771, 2604, 2773, 2773, 2774, 2775, 2773,
+ 2777, 2778, 2779, 2779, 2780, 2781, 2776, 2604,
+ 2754, 2754, 2755, 2756, 2754, 2759, 2760, 2761,
+ 2761, 2762, 2763, 2782, 2604, 2784, 2783, 2604,
+ 2785, 2785, 2786, 2787, 2789, 2790, 2791, 2792,
+ 2792, 2793, 2794, 2788, 2604, 2735, 2735, 2736,
+ 2737, 2740, 2741, 2742, 2743, 2743, 2744, 2745,
+ 2795, 2604, 2746, 2746, 2747, 2748, 2750, 2751,
+ 2713, 2713, 2752, 2753, 2604, 2797, 2796, 2604,
+ 2798, 2798, 2799, 2800, 2802, 2803, 2804, 2805,
+ 2805, 2806, 2807, 2801, 2604, 2716, 2716, 2717,
+ 2718, 2721, 2722, 2723, 2724, 2724, 2725, 2726,
+ 2808, 2604, 2727, 2727, 2728, 2729, 2731, 2732,
+ 2713, 2713, 2733, 2734, 2604, 2810, 2809, 2604,
+ 2811, 2811, 2812, 2813, 2815, 2816, 2817, 2818,
+ 2818, 2819, 2820, 2814, 2604, 2696, 2696, 2697,
+ 2698, 2701, 2702, 2703, 2704, 2704, 2705, 2706,
+ 2821, 2604, 2707, 2707, 2708, 2709, 2711, 2712,
+ 2713, 2713, 2714, 2715, 2604, 2823, 2822, 2604,
+ 2824, 2824, 2825, 2826, 2827, 2828, 2604, 2830,
+ 2829, 2604, 2831, 2831, 2832, 2833, 2835, 2836,
+ 2834, 2604, 2676, 2676, 2677, 2678, 2681, 2682,
+ 2837, 2604, 2839, 2838, 2604, 2841, 2840, 2604,
+ 2843, 2842, 2604, 2844, 2844, 2845, 2846, 2847,
+ 2848, 2604, 2850, 2849, 2604, 2851, 2851, 2852,
+ 2853, 2855, 2856, 2854, 2604, 2632, 2632, 2633,
+ 2634, 2637, 2638, 2857, 2604, 2859, 2858, 2604,
+ 2861, 2860, 2604, 2862, 2396, 2863, 2863, 2864,
+ 2865, 2867, 2868, 2866, 2396, 2869, 2869, 2870,
+ 2871, 2873, 2874, 2872, 2396, 2875, 2875, 2876,
+ 2877, 2879, 2880, 2878, 2396, 2881, 2881, 2882,
+ 2883, 2885, 2886, 2884, 2396, 2887, 2887, 2888,
+ 2889, 2891, 2892, 2890, 2396, 2893, 2893, 2894,
+ 2895, 2896, 2896, 2896, 2897, 2898, 2896, 2896,
+ 2896, 77, 2899, 2899, 2899, 2899, 77, 2901,
+ 2900, 77, 2903, 2902, 77, 2905, 2904, 77,
+ 2906, 2396, 2907, 2907, 2908, 2909, 2911, 2912,
+ 2910, 2396, 2913, 2913, 2914, 2915, 2917, 2918,
+ 2916, 2396, 2919, 2919, 2920, 2921, 2923, 2924,
+ 2922, 2396, 2926, 2926, 2927, 2928, 2929, 2930,
+ 2925, 2925, 2925, 77, 2931, 2931, 2932, 2933,
+ 2934, 2935, 77, 2937, 2937, 2938, 2939, 2940,
+ 2941, 2936, 2936, 2936, 77, 2942, 2942, 2943,
+ 2944, 2945, 2946, 77, 2948, 2948, 2949, 2950,
+ 2951, 2952, 2947, 2947, 2947, 77, 2953, 2953,
+ 2954, 2955, 2956, 2957, 77, 2958, 2958, 2959,
+ 2960, 2961, 2961, 2961, 2962, 2963, 2961, 2961,
+ 2961, 77, 2964, 2964, 2964, 2964, 77, 2966,
+ 2965, 77, 2968, 2967, 77, 2970, 2969, 77,
+ 2972, 2971, 77, 2974, 2973, 77, 2975, 2975,
+ 2975, 77, 2976, 2976, 2977, 2978, 2979, 2980,
+ 77, 2976, 2976, 2977, 2978, 2979, 2980, 2981,
+ 2396, 2982, 2982, 2983, 2984, 2986, 2987, 2985,
+ 2396, 2988, 2988, 2989, 2990, 2992, 2993, 2991,
+ 2991, 2991, 77, 2994, 2994, 2995, 2996, 2997,
+ 2998, 77, 2994, 2994, 2995, 2996, 2999, 2997,
+ 2998, 2999, 2999, 2999, 77, 3000, 3000, 77,
+ 3002, 3001, 77, 3004, 3003, 77, 3006, 3005,
+ 77, 3008, 3008, 3009, 3010, 3011, 3012, 3013,
+ 3014, 3015, 3016, 3016, 3017, 3018, 3007, 3019,
+ 3020, 3007, 3021, 3007, 3023, 3023, 3022, 3025,
+ 3024, 3022, 3026, 3007, 3027, 3027, 3028, 3029,
+ 3031, 3032, 3033, 3033, 3034, 3035, 3030, 3007,
+ 3037, 3036, 77, 3038, 3007, 3039, 3039, 3039,
+ 3039, 3022, 3041, 3040, 3040, 3040, 3022, 3042,
+ 2396, 3043, 3043, 3044, 3045, 3047, 3048, 3046,
+ 2396, 3049, 3049, 3050, 3051, 3053, 3054, 3052,
+ 3052, 3052, 77, 3055, 3055, 3056, 3057, 3058,
+ 3059, 77, 3055, 3055, 3056, 3057, 3058, 3059,
+ 3060, 2396, 3061, 3061, 3062, 3063, 3065, 3066,
+ 3064, 2396, 3068, 3068, 3069, 3070, 3072, 3073,
+ 3071, 3071, 3071, 3067, 3074, 3074, 3074, 3067,
+ 3075, 3075, 3076, 3077, 3078, 3079, 3080, 3080,
+ 3081, 3082, 3071, 3071, 3071, 3067, 3084, 3083,
+ 3067, 3086, 3085, 77, 3088, 3087, 77, 3090,
+ 3089, 77, 3091, 2396, 3092, 3092, 3093, 3094,
+ 3096, 3097, 3095, 2396, 3098, 3098, 3099, 3100,
+ 3102, 3103, 3101, 2396, 3104, 3104, 3105, 3106,
+ 3108, 3109, 3107, 2396, 3110, 3110, 3111, 3112,
+ 3114, 3115, 3113, 3113, 3113, 3067, 3116, 3116,
+ 3116, 3067, 3117, 3117, 3118, 3119, 3120, 3121,
+ 3122, 3122, 3123, 3124, 3113, 3113, 3113, 3067,
+ 3126, 3125, 3067, 3128, 3127, 77, 3130, 3129,
+ 77, 3131, 2396, 3132, 3132, 3133, 3134, 3136,
+ 3137, 3135, 2396, 3139, 3139, 3140, 3141, 3142,
+ 3143, 3144, 3145, 3146, 3147, 3138, 3148, 3148,
+ 3149, 3150, 3151, 3152, 3138, 3148, 3148, 3149,
+ 3150, 3151, 3152, 3154, 3153, 3155, 3155, 3156,
+ 3157, 3159, 3160, 3158, 3153, 3161, 3161, 3162,
+ 3163, 3164, 3165, 3166, 3138, 3168, 3168, 3169,
+ 3170, 3171, 3171, 3172, 3173, 3174, 3174, 3175,
+ 3176, 3177, 3177, 3177, 3177, 3178, 3179, 3177,
+ 3177, 3180, 3181, 3182, 3183, 3177, 3177, 3184,
+ 3185, 3186, 3187, 3177, 3177, 3188, 3189, 3167,
+ 3168, 3168, 3169, 3170, 3191, 3178, 3179, 3191,
+ 3191, 3191, 3190, 3177, 3177, 3190, 3193, 3192,
+ 3190, 3171, 3171, 3172, 3173, 3177, 3177, 3177,
+ 3177, 3182, 3183, 3177, 3177, 3184, 3185, 3190,
+ 3195, 3194, 3190, 3191, 3168, 3168, 3169, 3170,
+ 3171, 3171, 3172, 3173, 3174, 3174, 3175, 3176,
+ 3177, 3177, 3177, 3177, 3178, 3179, 3177, 3177,
+ 3180, 3181, 3182, 3183, 3177, 3177, 3184, 3185,
+ 3186, 3187, 3177, 3177, 3188, 3189, 3191, 3191,
+ 3191, 3190, 3193, 3195, 3197, 3192, 3194, 3196,
+ 3190, 3199, 3198, 3138, 3201, 3200, 3138, 3202,
+ 3202, 3203, 3204, 3205, 3206, 3138, 3202, 3202,
+ 3203, 3204, 3205, 3206, 3207, 3153, 3208, 3208,
+ 3209, 3210, 3212, 3213, 3211, 3153, 3215, 3215,
+ 3216, 3217, 3218, 3219, 3220, 3218, 3214, 3222,
+ 3223, 3223, 3224, 3225, 3226, 3226, 3227, 3228,
+ 3229, 3229, 3230, 3231, 3232, 3232, 3232, 3232,
+ 3233, 3234, 3232, 3232, 3235, 3236, 3237, 3238,
+ 3232, 3232, 3239, 3240, 3241, 3242, 3232, 3232,
+ 3243, 3244, 3222, 3221, 3246, 3245, 3138, 3248,
+ 3247, 3138, 3249, 3249, 3250, 3251, 3252, 3253,
+ 3138, 3249, 3249, 3250, 3251, 3252, 3253, 3254,
+ 3153, 3255, 3255, 3256, 3257, 3259, 3260, 3258,
+ 3153, 3261, 3261, 3262, 3263, 3264, 3265, 3266,
+ 3264, 3264, 3264, 3214, 3267, 3268, 3268, 3269,
+ 3270, 3271, 3271, 3272, 3273, 3274, 3274, 3275,
+ 3276, 3277, 3277, 3277, 3277, 3278, 3279, 3277,
+ 3277, 3280, 3281, 3282, 3283, 3277, 3277, 3284,
+ 3285, 3286, 3287, 3277, 3277, 3288, 3289, 3267,
+ 3267, 3267, 3221, 3291, 3290, 3138, 3293, 3292,
+ 3138, 3294, 3294, 3295, 3296, 3297, 3298, 3138,
+ 3294, 3294, 3295, 3296, 3297, 3298, 3299, 3153,
+ 3300, 3300, 3301, 3302, 3304, 3305, 3303, 3153,
+ 3306, 3306, 3307, 3308, 3309, 3309, 3309, 3310,
+ 3311, 3309, 3309, 3309, 3138, 3312, 3312, 3313,
+ 3314, 3315, 3315, 3316, 3317, 3318, 3318, 3319,
+ 3320, 3321, 3321, 3321, 3321, 3322, 3323, 3321,
+ 3321, 3324, 3325, 3326, 3327, 3321, 3321, 3328,
+ 3329, 3330, 3331, 3321, 3321, 3332, 3333, 3167,
+ 3335, 3334, 3138, 3337, 3336, 3138, 3339, 3338,
+ 77, 3341, 3342, 3343, 3344, 3345, 3346, 3347,
+ 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355,
+ 3356, 3357, 3358, 3341, 3342, 3343, 3344, 3345,
+ 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353,
+ 3354, 3355, 3356, 3357, 3358, 3340, 3359, 3359,
+ 3360, 3361, 3362, 3363, 3364, 3362, 3363, 3364,
+ 3365, 3366, 3340, 3367, 3367, 3368, 3369, 3371,
+ 3372, 3370, 3370, 3370, 77, 3373, 3373, 3374,
+ 3375, 3376, 3377, 77, 3373, 3373, 3374, 3375,
+ 3376, 3377, 3378, 2396, 3379, 3379, 3380, 3381,
+ 3383, 3384, 3382, 2396, 3385, 3385, 3386, 3387,
+ 3389, 3390, 3388, 2396, 3391, 3391, 3392, 3393,
+ 3395, 3396, 3394, 2396, 3398, 3398, 3399, 3400,
+ 3402, 3403, 3401, 3397, 3404, 3404, 3405, 3406,
+ 3408, 3409, 3407, 3397, 3410, 3410, 3411, 3412,
+ 3414, 3415, 3413, 3397, 3416, 3416, 3417, 3418,
+ 3420, 3421, 3419, 3397, 3422, 3422, 3423, 3424,
+ 3426, 3427, 3425, 2396, 3428, 3428, 3429, 3430,
+ 3432, 3433, 3431, 2396, 3434, 3434, 3435, 3436,
+ 3437, 3437, 3437, 3438, 3439, 3437, 3437, 3437,
+ 77, 3440, 3440, 3441, 3442, 3443, 3444, 77,
+ 3445, 3445, 3446, 3447, 3448, 3449, 3450, 3448,
+ 3448, 3448, 77, 3451, 3451, 77, 3453, 3452,
+ 77, 3455, 3454, 77, 3457, 3456, 77, 3459,
+ 3458, 77, 3461, 3460, 77, 3463, 3462, 77,
+ 3465, 3464, 77, 3467, 3466, 77, 3468, 3468,
+ 3340, 3469, 3469, 3340, 3470, 3470, 3471, 3472,
+ 3473, 3474, 3340, 3475, 3475, 3340, 3476, 3476,
+ 3340, 3477, 3477, 3340, 3478, 3478, 3479, 3480,
+ 3481, 3482, 3340, 3483, 3483, 3340, 3484, 3484,
+ 3485, 3486, 3487, 3488, 3340, 3489, 3490, 3491,
+ 3492, 3493, 3489, 3490, 3491, 3492, 3493, 3340,
+ 3494, 3494, 3340, 3495, 3495, 3496, 3497, 3498,
+ 3499, 3340, 3500, 3501, 3500, 3501, 3340, 3502,
+ 3502, 3340, 3503, 3503, 3340, 3504, 3504, 3340,
+ 3505, 3505, 3340, 3506, 3506, 3507, 3508, 3509,
+ 3510, 3340, 3511, 3511, 3512, 3513, 3514, 3515,
+ 3340, 3516, 3516, 3340, 3517, 3517, 3340, 3518,
+ 3518, 3519, 3520, 3521, 3522, 3340, 3523, 3523,
+ 3340, 3524, 3524, 3340, 3525, 3525, 3340, 3526,
+ 3526, 3527, 3528, 3529, 3530, 3340, 3531, 3531,
+ 3340, 3532, 3532, 3340, 3533, 3533, 3340, 3534,
+ 3534, 3535, 3536, 3537, 3538, 3340, 3539, 3540,
+ 3541, 3539, 3540, 3541, 3340, 3542, 3542, 3340,
+ 3543, 3543, 3340, 3544, 3544, 3340, 3545, 3545,
+ 3546, 3547, 3548, 3549, 3340, 3550, 3551, 3550,
+ 3551, 3340, 3552, 3552, 3340, 3553, 3553, 3340,
+ 3554, 3554, 3555, 3556, 3557, 3558, 3340, 3559,
+ 3559, 3340, 3560, 3560, 3340, 3561, 3561, 3340,
+ 3562, 3562, 3563, 3564, 3565, 3566, 3340, 3567,
+ 3567, 3568, 3569, 3570, 3571, 3340, 3572, 3572,
+ 3340, 3573, 3573, 3340, 3574, 3575, 3340, 3576,
+ 3340, 3577, 3577, 3578, 3579, 3580, 3581, 3340,
+ 3582, 3340, 3583, 3583, 3584, 3585, 3586, 3587,
+ 3340, 3588, 3589, 3588, 3589, 3340, 3590, 3590,
+ 3340, 3591, 3591, 3340, 3592, 3592, 3340, 3593,
+ 3593, 3594, 3595, 3596, 3597, 3340, 3598, 3598,
+ 3340, 3599, 3599, 3340, 3600, 3600, 3340, 3601,
+ 3601, 3602, 3603, 3604, 3605, 3340, 3606, 3606,
+ 3340, 3607, 3607, 3340, 3608, 3608, 3340, 3609,
+ 3609, 3340, 3610, 3610, 3340, 3611, 3611, 3340,
+ 3612, 3612, 3340, 3613, 3613, 3614, 3615, 3616,
+ 3617, 3340, 3618, 3619, 3618, 3619, 3340, 3620,
+ 3620, 3340, 3621, 3621, 3622, 3623, 3624, 3625,
+ 3340, 3626, 3626, 3627, 3628, 3629, 3630, 3340,
+ 3631, 3632, 3633, 3634, 3633, 3634, 3340, 3635,
+ 3340, 3636, 3636, 3637, 3638, 3639, 3640, 3340,
+ 3641, 3340, 3642, 3642, 3643, 3644, 3645, 3646,
+ 3340, 3647, 3647, 3340, 3648, 3648, 3649, 3650,
+ 3651, 3652, 3340, 3653, 3653, 3654, 3655, 3656,
+ 3657, 3340, 3658, 3659, 3658, 3659, 3340, 3660,
+ 3660, 3340, 3661, 3661, 3340, 3662, 3662, 3340,
+ 3663, 3663, 3664, 3665, 3666, 3667, 3340, 3668,
+ 3668, 3669, 3670, 3671, 3672, 3340, 3673, 3674,
+ 3675, 3673, 3674, 3675, 3340, 3676, 3676, 3340,
+ 3677, 3677, 3340, 3678, 3678, 3340, 3679, 3679,
+ 3680, 3681, 3682, 3683, 3340, 3684, 3684, 3340,
+ 3685, 3685, 3686, 3687, 3688, 3689, 3340, 3690,
+ 3690, 3691, 3692, 3693, 3693, 3694, 3695, 3340,
+ 3696, 3696, 3340, 3697, 3697, 3698, 3699, 3700,
+ 3701, 3702, 3340, 3703, 3703, 3704, 3705, 3706,
+ 3706, 3707, 3708, 3340, 3709, 3709, 3340, 3710,
+ 3710, 3340, 3711, 3711, 3340, 3712, 3712, 3340,
+ 3713, 3713, 3714, 3715, 3716, 3717, 3340, 3718,
+ 3718, 3340, 3719, 3719, 3340, 3720, 3720, 3340,
+ 3721, 3721, 3340, 3722, 3722, 3340, 3723, 3723,
+ 3340, 3724, 3724, 3340, 3725, 3725, 3340, 3726,
+ 3726, 3340, 3727, 3727, 3728, 3729, 3730, 3731,
+ 3340, 3732, 3732, 3340, 3733, 3733, 3340, 3734,
+ 3734, 3735, 3736, 3737, 3738, 3340, 3739, 3740,
+ 3741, 3739, 3740, 3741, 3340, 3742, 3742, 3743,
+ 3744, 3745, 3746, 3340, 3747, 3747, 3340, 3748,
+ 3748, 3340, 3749, 3749, 3340, 3750, 3750, 3751,
+ 3752, 3753, 3754, 3340, 3755, 3755, 3756, 3757,
+ 3758, 3759, 3340, 3760, 3761, 3762, 3763, 3764,
+ 3765, 3760, 3761, 3762, 3763, 3764, 3765, 3340,
+ 3766, 3766, 3340, 3767, 3767, 3340, 3768, 3768,
+ 3340, 3769, 3769, 3340, 3770, 3770, 3771, 3772,
+ 3773, 3774, 3340, 3775, 3775, 3340, 3776, 3776,
+ 3777, 3778, 3779, 3780, 3340, 3781, 3781, 3340,
+ 3782, 3782, 3783, 3784, 3785, 3786, 3340, 3787,
+ 3787, 3340, 3788, 3788, 3789, 3790, 3791, 3792,
+ 3340, 3793, 3793, 3340, 3794, 3794, 3340, 3795,
+ 3795, 3340, 3796, 3796, 3797, 3798, 3799, 3800,
+ 3340, 3801, 3801, 3340, 3802, 3802, 3340, 3803,
+ 3803, 3804, 3805, 3806, 3807, 3340, 3808, 3809,
+ 3810, 3808, 3809, 3810, 3340, 3811, 3811, 3340,
+ 3812, 3812, 3340, 3813, 3813, 3814, 3815, 3816,
+ 3817, 3340, 3818, 3818, 3340, 3819, 3819, 3820,
+ 3821, 3822, 3823, 3340, 3824, 3824, 3340, 3825,
+ 3825, 3340, 3827, 3826, 3828, 3828, 3829, 3830,
+ 3832, 3833, 3831, 3826, 3834, 3834, 3340, 3835,
+ 3835, 3340, 3836, 3836, 3837, 3838, 3839, 3840,
+ 3340, 3841, 3841, 3340, 3842, 3842, 3340, 3843,
+ 3843, 3340, 3844, 3844, 3340, 3845, 3845, 3340,
+ 3846, 3846, 3847, 3848, 3849, 3850, 3340, 3851,
+ 3851, 3340, 3852, 3852, 3340, 3853, 3853, 3340,
+ 3854, 3854, 3340, 3855, 3855, 3340, 3856, 3856,
+ 3857, 3858, 3859, 3860, 3340, 3861, 3861, 3861,
+ 3861, 3861, 3861, 77, 3862, 3862, 3862, 3862,
+ 77, 3863, 3863, 3863, 3863, 77, 3864, 2396,
+ 3865, 3865, 3866, 3867, 3869, 3870, 3868, 2396,
+ 3871, 3871, 3872, 3873, 3875, 3876, 3874, 2396,
+ 3877, 3877, 3878, 3879, 3881, 3882, 3880, 2396,
+ 3883, 3883, 3884, 3885, 3887, 3888, 3886, 3886,
+ 3886, 77, 3889, 3889, 3890, 3891, 3892, 3893,
+ 77, 3889, 3889, 3890, 3891, 3894, 3892, 3893,
+ 3894, 3894, 3894, 77, 3895, 3895, 77, 3897,
+ 3896, 77, 3899, 3898, 77, 3901, 3900, 77,
+ 3902, 3902, 3902, 3902, 77, 3903, 3903, 77,
+ 3904, 2396, 3905, 3905, 3906, 3907, 3909, 3910,
+ 3908, 2396, 3911, 3911, 3912, 3913, 3915, 3916,
+ 3914, 2396, 3917, 3917, 3918, 3919, 3921, 3922,
+ 3920, 2396, 3923, 3923, 3924, 3925, 3927, 3928,
+ 3926, 2396, 3929, 3929, 3930, 3931, 3933, 3934,
+ 3932, 2396, 3935, 3935, 3936, 3937, 3938, 3940,
+ 3941, 3939, 3939, 3939, 3067, 3942, 3942, 3943,
+ 3944, 3945, 3946, 3067, 3948, 3948, 3949, 3950,
+ 3952, 3953, 3951, 3951, 3951, 3947, 3954, 3954,
+ 3954, 3947, 3956, 3955, 3955, 3955, 3947, 3957,
+ 3957, 3957, 3947, 3959, 3958, 3958, 3958, 3947,
+ 3961, 3960, 3960, 3960, 3947, 3962, 3962, 3962,
+ 3947, 3964, 3963, 3963, 3963, 3947, 3965, 3965,
+ 3965, 3965, 3966, 3966, 3966, 3947, 3967, 3967,
+ 3967, 3967, 77, 3968, 3947, 3964, 3947, 3961,
+ 3947, 3969, 3947, 3959, 3947, 3971, 3970, 77,
+ 3972, 3972, 3972, 3067, 3942, 3942, 3943, 3944,
+ 3945, 3946, 3973, 3973, 3973, 3067, 3975, 3974,
+ 77, 3977, 3976, 77, 3979, 3978, 77, 3980,
+ 2396, 3981, 3981, 3982, 3983, 3985, 3986, 3984,
+ 2396, 3987, 3987, 3988, 3989, 3991, 3992, 3990,
+ 2396, 3993, 3993, 3994, 3995, 3997, 3998, 3996,
+ 2396, 3999, 3999, 4000, 4001, 4003, 4004, 4002,
+ 2396, 4005, 4005, 4006, 4007, 4009, 4010, 4008,
+ 2396, 4011, 4011, 4012, 4013, 4014, 4016, 4017,
+ 4015, 4015, 4015, 3067, 4018, 4018, 4018, 4018,
+ 3067, 4019, 4019, 4019, 3067, 4018, 4018, 4018,
+ 4018, 4020, 4020, 4020, 3067, 4022, 4021, 77,
+ 4024, 4023, 77, 4026, 4025, 77, 4027, 2396,
+ 4028, 4028, 4029, 4030, 4032, 4033, 4031, 2396,
+ 4034, 4034, 4035, 4036, 4038, 4039, 4037, 2396,
+ 4040, 4040, 4041, 4042, 4044, 4045, 4043, 2396,
+ 4046, 4046, 4047, 4048, 4050, 4051, 4049, 2396,
+ 4052, 4052, 4053, 4054, 4056, 4057, 4055, 2396,
+ 4058, 4058, 4059, 4060, 4062, 4063, 4061, 4061,
+ 4061, 3067, 4064, 4064, 4064, 3067, 4065, 4065,
+ 4066, 4067, 4068, 4069, 4070, 4070, 4071, 4072,
+ 4061, 4061, 4061, 3067, 4074, 4073, 3067, 4076,
+ 4075, 77, 4078, 4077, 77, 4080, 4079, 77,
+ 4081, 2396, 4082, 4082, 4083, 4084, 4086, 4087,
+ 4085, 2396, 4088, 4088, 4089, 4090, 4092, 4093,
+ 4091, 2396, 4094, 4094, 4094, 4094, 4095, 2396,
+ 4096, 4096, 4096, 4096, 77, 4098, 4097, 77,
+ 4099, 2396, 4100, 4100, 4101, 4102, 4104, 4105,
+ 4103, 2396, 4106, 4106, 4107, 4108, 4110, 4111,
+ 4109, 2396, 4112, 4112, 4113, 4114, 4116, 4117,
+ 4115, 2396, 4118, 4118, 4119, 4120, 4122, 4123,
+ 4121, 2396, 4124, 4124, 4125, 4126, 4128, 4129,
+ 4127, 2396, 4130, 4130, 4131, 4132, 4134, 4135,
+ 4133, 4133, 4133, 3067, 4136, 4136, 4136, 3067,
+ 4137, 4137, 4138, 4139, 4140, 4141, 4142, 4142,
+ 4143, 4144, 4133, 4133, 4133, 3067, 4146, 4145,
+ 3067, 4148, 4147, 77, 4150, 4149, 77, 4152,
+ 4151, 77, 4153, 2396, 4154, 4154, 4155, 4156,
+ 4158, 4159, 4157, 2396, 4160, 4160, 4161, 4162,
+ 4163, 4164, 4165, 4163, 2373, 4166, 4167, 4166,
+ 4166, 4166, 4167, 2373, 4169, 4168, 77, 4170,
+ 2396, 4171, 4171, 4172, 4173, 4175, 4176, 4174,
+ 2396, 4177, 4177, 4178, 4179, 4181, 4182, 4180,
+ 4180, 4180, 3067, 4183, 4183, 4183, 3067, 4184,
+ 4184, 4184, 3067, 4185, 4185, 4185, 3067, 4187,
+ 4186, 4188, 4188, 4188, 3067, 4189, 4189, 4189,
+ 3067, 4190, 4190, 4190, 3067, 4191, 4191, 4191,
+ 3067, 4193, 4187, 4193, 4193, 4193, 4192, 4195,
+ 4194, 77, 4196, 4196, 4196, 3067, 4197, 4197,
+ 4197, 3067, 4199, 4198, 4200, 4200, 4200, 3067,
+ 4201, 4201, 4201, 3067, 4202, 4199, 4202, 4202,
+ 4202, 4198, 4203, 4203, 4203, 3067, 4204, 4204,
+ 4204, 3067, 4205, 4198, 4206, 4206, 4206, 3067,
+ 4207, 4207, 4207, 3067, 4208, 4205, 4208, 4208,
+ 4208, 4198, 4209, 2396, 4210, 4210, 4211, 4212,
+ 4214, 4215, 4213, 2396, 4216, 4216, 4217, 4218,
+ 4220, 4221, 4219, 2396, 4222, 4222, 4223, 4224,
+ 4226, 4227, 4225, 2396, 4229, 4229, 4230, 4231,
+ 4232, 4233, 4228, 4228, 4228, 77, 4234, 4234,
+ 4234, 4234, 77, 4236, 4235, 77, 4238, 4237,
+ 77, 4239, 2396, 4240, 4240, 4241, 4242, 4244,
+ 4245, 4243, 2396, 4247, 4247, 4248, 4249, 4250,
+ 4251, 4246, 4246, 4246, 77, 4252, 4252, 4253,
+ 4254, 4255, 4256, 77, 4258, 4258, 4259, 4260,
+ 4261, 4262, 4257, 4257, 4257, 77, 4263, 4263,
+ 4263, 4263, 77, 4265, 4264, 77, 4267, 4266,
+ 77, 4268, 2396, 4269, 4269, 4270, 4271, 4273,
+ 4274, 4272, 2396, 4275, 4275, 4276, 4277, 4278,
+ 4278, 4278, 4279, 4280, 4278, 4278, 4278, 77,
+ 4281, 4281, 4281, 4281, 77, 4282, 4282, 4282,
+ 4282, 77, 4284, 4283, 77, 4286, 4286, 4287,
+ 4288, 4289, 4290, 4290, 4290, 4291, 4292, 4293,
+ 4294, 4290, 4290, 4290, 4285, 4295, 4295, 4296,
+ 4297, 4298, 4299, 75, 4300, 4299, 4291, 4292,
+ 4301, 4302, 4303, 4304, 4305, 4306, 75, 75,
+ 4299, 75, 4299, 75, 4299, 75, 889, 4308,
+ 4308, 4287, 4309, 4310, 4290, 4311, 4312, 4313,
+ 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321,
+ 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4290,
+ 4290, 4311, 4312, 4313, 4314, 4315, 4316, 4317,
+ 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325,
+ 4326, 4327, 4328, 4291, 4292, 4329, 4330, 4290,
+ 4290, 4290, 4307, 4308, 4308, 4287, 4309, 4310,
+ 4290, 4333, 4334, 4335, 4336, 4337, 4338, 4339,
+ 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347,
+ 4348, 4349, 4350, 4290, 4290, 4333, 4334, 4335,
+ 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343,
+ 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4291,
+ 4292, 4329, 4330, 4290, 4332, 4290, 4290, 4331,
+ 4352, 4352, 4353, 4354, 4355, 4356, 4356, 4356,
+ 4357, 4358, 4359, 4360, 4356, 4356, 4356, 4351,
+ 4286, 4286, 4287, 4361, 4362, 4290, 4333, 4334,
+ 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342,
+ 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350,
+ 4290, 4290, 4333, 4334, 4335, 4336, 4337, 4338,
+ 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346,
+ 4347, 4348, 4349, 4350, 4291, 4292, 4363, 4364,
+ 4290, 4332, 4290, 4290, 4331, 4365, 4365, 4287,
+ 4366, 4367, 4290, 4290, 4290, 89, 90, 4368,
+ 4369, 4290, 4290, 4290, 889, 4370, 4370, 4296,
+ 4371, 4372, 4299, 75, 4300, 4299, 89, 90,
+ 4368, 4373, 107, 108, 4368, 4374, 75, 75,
+ 4299, 75, 4299, 75, 4299, 75, 889, 4295,
+ 4295, 4296, 4297, 4298, 4299, 75, 4377, 4378,
+ 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386,
+ 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394,
+ 4300, 4299, 4377, 4378, 4379, 4380, 4381, 4382,
+ 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390,
+ 4391, 4392, 4393, 4394, 4291, 4292, 4301, 4302,
+ 4303, 4304, 4305, 4306, 75, 75, 4299, 4376,
+ 75, 4299, 75, 4299, 75, 4375, 4370, 4370,
+ 4296, 4371, 4372, 4299, 75, 4377, 4378, 4379,
+ 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387,
+ 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4300,
+ 4299, 4377, 4378, 4379, 4380, 4381, 4382, 4383,
+ 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391,
+ 4392, 4393, 4394, 89, 90, 4395, 4373, 107,
+ 108, 4395, 4374, 75, 75, 4299, 4376, 75,
+ 4299, 75, 4299, 75, 4375, 796, 796, 796,
+ 796, 1054, 1055, 1054, 1057, 1054, 1055, 1056,
+ 1055, 1050, 796, 796, 796, 1212, 1212, 1213,
+ 1214, 1181, 1182, 1183, 1181, 1215, 1216, 1181,
+ 1181, 1181, 1187, 796, 1227, 1227, 1228, 1229,
+ 1222, 1230, 1231, 1232, 1232, 1233, 1234, 1222,
+ 1222, 1222, 1221, 1236, 1235, 1221, 796, 1246,
+ 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253,
+ 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261,
+ 1262, 1263, 1264, 1265, 1266, 1249, 1250, 1251,
+ 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259,
+ 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267,
+ 1268, 1269, 1269, 1270, 1271, 1237, 1294, 1293,
+ 1237, 796, 1846, 1846, 1847, 1848, 1849, 1850,
+ 1851, 1851, 1852, 1853, 1842, 1842, 1842, 1838,
+ 1855, 1854, 1838, 1874, 1874, 1875, 1876, 1878,
+ 1879, 1877, 1877, 1877, 1838, 1824, 1881, 1881,
+ 1882, 1883, 1884, 1885, 1886, 1886, 1887, 1888,
+ 1877, 1877, 1877, 1838, 1890, 1889, 1838, 1892,
+ 1891, 1824, 796, 796, 1976, 1976, 1977, 1978,
+ 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986,
+ 1987, 1988, 1989, 1990, 1990, 1991, 1992, 1967,
+ 2008, 2007, 1967, 796, 796, 796, 796, 796,
+ 796, 796, 796, 796, 2591, 2591, 2592, 2593,
+ 2594, 2595, 2596, 2596, 2597, 2598, 2590, 2590,
+ 2590, 2581, 2600, 2599, 2581, 796, 796, 2764,
+ 2764, 2765, 2766, 2767, 2768, 2713, 2713, 2769,
+ 2770, 2604, 2772, 2771, 2604, 2746, 2746, 2747,
+ 2748, 2750, 2751, 2713, 2713, 2752, 2753, 2749,
+ 2604, 2784, 2783, 2604, 2727, 2727, 2728, 2729,
+ 2731, 2732, 2713, 2713, 2733, 2734, 2730, 2604,
+ 2797, 2796, 2604, 2707, 2707, 2708, 2709, 2711,
+ 2712, 2713, 2713, 2714, 2715, 2710, 2604, 2810,
+ 2809, 2604, 796, 796, 796, 796, 3008, 3008,
+ 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016,
+ 3016, 3017, 3018, 3007, 3037, 3036, 77, 796,
+ 3075, 3075, 3076, 3077, 3078, 3079, 3080, 3080,
+ 3081, 3082, 3071, 3071, 3071, 3067, 3084, 3083,
+ 3067, 796, 3117, 3117, 3118, 3119, 3120, 3121,
+ 3122, 3122, 3123, 3124, 3113, 3113, 3113, 3067,
+ 3126, 3125, 3067, 796, 3171, 3171, 3172, 3173,
+ 3177, 3177, 3177, 3177, 3182, 3183, 3177, 3177,
+ 3184, 3185, 3190, 3195, 3194, 3190, 3168, 3168,
+ 3169, 3170, 3191, 3178, 3179, 3191, 3191, 3191,
+ 3190, 3193, 3192, 3190, 3191, 3168, 3168, 3169,
+ 3170, 3171, 3171, 3172, 3173, 3174, 3174, 3175,
+ 3176, 3177, 3177, 3177, 3177, 3178, 3179, 3177,
+ 3177, 3180, 3181, 3182, 3183, 3177, 3177, 3184,
+ 3185, 3186, 3187, 3177, 3177, 3188, 3189, 3191,
+ 3191, 3191, 3190, 3193, 3195, 3197, 3192, 3194,
+ 3196, 3190, 796, 796, 796, 796, 796, 796,
+ 796, 4065, 4065, 4066, 4067, 4068, 4069, 4070,
+ 4070, 4071, 4072, 4061, 4061, 4061, 3067, 4074,
+ 4073, 3067, 796, 796, 4137, 4137, 4138, 4139,
+ 4140, 4141, 4142, 4142, 4143, 4144, 4133, 4133,
+ 4133, 3067, 4146, 4145, 3067, 796, 796, 796,
+ 796, 796, 796, 796, 0
};
static const short _zone_scanner_trans_targs[] = {
0, 1, 1, 1, 2, 4, 17, 40,
- 54, 61, 175, 81, 85, 93, 99, 115,
- 125, 128, 135, 154, 164, 167, 1396, 183,
- 1401, 302, 0, 3, 3, 3, 2, 198,
- 198, 198, 198, 198, 3, 201, 0, 3,
- 3, 3, 4, 17, 40, 54, 61, 70,
- 81, 85, 93, 99, 115, 125, 128, 135,
- 154, 164, 167, 3, 201, 0, 5, 5,
- 5, 266, 269, 273, 5, 10, 6, 11,
- 20, 6, 5, 0, 5, 5, 9, 5,
- 10, 11, 20, 0, 7, 7, 7, 1396,
- 8, 0, 7, 7, 7, 1396, 8, 8,
- 1396, 6, 6, 10, 5, 12, 12, 12,
- 13, 1402, 208, 280, 12, 12, 12, 13,
- 1402, 208, 280, 13, 1397, 14, 0, 14,
- 14, 15, 204, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 1404, 275, 1402, 276, 1405,
- 278, 0, 16, 16, 16, 1398, 305, 0,
- 16, 16, 16, 1398, 305, 18, 22, 29,
- 32, 36, 19, 5, 5, 5, 5, 10,
- 6, 11, 20, 21, 21, 21, 13, 21,
- 21, 21, 13, 23, 28, 24, 25, 26,
- 27, 5, 5, 5, 5, 10, 6, 11,
- 20, 5, 5, 5, 5, 10, 6, 11,
- 20, 30, 31, 5, 5, 5, 5, 10,
- 6, 11, 20, 33, 34, 35, 5, 5,
- 5, 5, 10, 6, 11, 20, 37, 38,
- 39, 5, 5, 5, 5, 10, 6, 11,
- 20, 41, 45, 53, 42, 43, 44, 5,
- 5, 5, 5, 10, 6, 11, 20, 46,
- 49, 47, 48, 5, 5, 5, 5, 10,
- 6, 11, 20, 50, 51, 52, 5, 5,
- 5, 5, 10, 6, 11, 20, 5, 5,
- 5, 5, 10, 6, 11, 20, 55, 56,
- 57, 59, 58, 5, 5, 5, 5, 10,
- 6, 11, 20, 60, 5, 5, 5, 5,
- 10, 6, 11, 20, 62, 66, 63, 64,
- 65, 5, 5, 5, 5, 10, 6, 11,
- 20, 67, 68, 69, 5, 5, 5, 5,
- 10, 6, 11, 20, 71, 74, 72, 72,
- 72, 72, 173, 72, 72, 72, 4, 17,
- 40, 54, 61, 73, 81, 85, 93, 99,
- 115, 125, 128, 135, 154, 164, 167, 72,
- 173, 75, 76, 77, 78, 79, 80, 5,
- 5, 5, 5, 10, 6, 11, 20, 82,
- 84, 83, 5, 5, 5, 5, 10, 6,
- 11, 20, 5, 5, 5, 5, 10, 6,
- 11, 20, 86, 88, 90, 92, 87, 5,
- 5, 5, 5, 10, 6, 11, 20, 89,
- 5, 5, 5, 5, 10, 6, 11, 20,
- 91, 5, 5, 5, 5, 10, 6, 11,
+ 54, 61, 181, 81, 85, 93, 99, 115,
+ 125, 128, 135, 154, 164, 167, 173, 1444,
+ 189, 1449, 311, 0, 3, 3, 3, 2,
+ 204, 204, 204, 204, 204, 3, 207, 0,
+ 3, 3, 3, 4, 17, 40, 54, 61,
+ 70, 81, 85, 93, 99, 115, 125, 128,
+ 135, 154, 164, 167, 173, 3, 207, 0,
+ 5, 5, 5, 274, 277, 281, 5, 10,
+ 6, 11, 20, 6, 5, 0, 5, 5,
+ 9, 5, 10, 11, 20, 0, 7, 7,
+ 7, 1444, 8, 0, 7, 7, 7, 1444,
+ 8, 8, 1444, 6, 6, 10, 5, 12,
+ 12, 12, 13, 1450, 214, 288, 12, 12,
+ 12, 13, 1450, 214, 288, 13, 1445, 14,
+ 0, 14, 14, 15, 210, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227,
+ 228, 229, 230, 231, 232, 233, 1452, 283,
+ 1450, 284, 1453, 286, 0, 16, 16, 16,
+ 1446, 314, 0, 16, 16, 16, 1446, 314,
+ 18, 22, 29, 32, 36, 19, 5, 5,
+ 5, 5, 10, 6, 11, 20, 21, 21,
+ 21, 13, 21, 21, 21, 13, 23, 28,
+ 24, 25, 26, 27, 5, 5, 5, 5,
+ 10, 6, 11, 20, 5, 5, 5, 5,
+ 10, 6, 11, 20, 30, 31, 5, 5,
+ 5, 5, 10, 6, 11, 20, 33, 34,
+ 35, 5, 5, 5, 5, 10, 6, 11,
+ 20, 37, 38, 39, 5, 5, 5, 5,
+ 10, 6, 11, 20, 41, 45, 53, 42,
+ 43, 44, 5, 5, 5, 5, 10, 6,
+ 11, 20, 46, 49, 47, 48, 5, 5,
+ 5, 5, 10, 6, 11, 20, 50, 51,
+ 52, 5, 5, 5, 5, 10, 6, 11,
20, 5, 5, 5, 5, 10, 6, 11,
- 20, 94, 98, 95, 96, 97, 5, 5,
+ 20, 55, 56, 57, 59, 58, 5, 5,
+ 5, 5, 10, 6, 11, 20, 60, 5,
+ 5, 5, 5, 10, 6, 11, 20, 62,
+ 66, 63, 64, 65, 5, 5, 5, 5,
+ 10, 6, 11, 20, 67, 68, 69, 5,
+ 5, 5, 5, 10, 6, 11, 20, 71,
+ 74, 72, 72, 72, 72, 179, 72, 72,
+ 72, 4, 17, 40, 54, 61, 73, 81,
+ 85, 93, 99, 115, 125, 128, 135, 154,
+ 164, 167, 173, 72, 179, 75, 76, 77,
+ 78, 79, 80, 5, 5, 5, 5, 10,
+ 6, 11, 20, 82, 84, 83, 5, 5,
5, 5, 10, 6, 11, 20, 5, 5,
- 5, 5, 10, 6, 11, 20, 100, 104,
- 106, 101, 102, 103, 5, 5, 5, 5,
- 10, 6, 11, 20, 105, 5, 5, 5,
+ 5, 5, 10, 6, 11, 20, 86, 88,
+ 90, 92, 87, 5, 5, 5, 5, 10,
+ 6, 11, 20, 89, 5, 5, 5, 5,
+ 10, 6, 11, 20, 91, 5, 5, 5,
5, 10, 6, 11, 20, 5, 5, 5,
- 107, 5, 10, 6, 11, 20, 108, 5,
- 5, 5, 109, 5, 10, 6, 11, 20,
- 5, 5, 5, 110, 5, 10, 6, 11,
- 20, 111, 112, 113, 114, 5, 5, 5,
- 5, 10, 6, 11, 20, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 5, 5,
- 5, 5, 10, 6, 11, 20, 126, 127,
- 5, 5, 5, 5, 10, 6, 11, 20,
- 129, 130, 134, 5, 5, 5, 5, 10,
- 6, 11, 20, 131, 132, 133, 5, 5,
- 5, 5, 10, 6, 11, 20, 5, 5,
- 5, 5, 10, 6, 11, 20, 136, 141,
- 143, 145, 147, 151, 137, 138, 139, 140,
- 5, 5, 5, 5, 10, 6, 11, 20,
- 142, 5, 5, 5, 5, 10, 6, 11,
- 20, 144, 5, 5, 5, 5, 10, 6,
- 11, 20, 146, 5, 5, 5, 5, 10,
- 6, 11, 20, 148, 149, 150, 5, 5,
- 5, 5, 10, 6, 11, 20, 152, 153,
- 5, 5, 5, 5, 10, 6, 11, 20,
- 155, 158, 160, 156, 157, 5, 5, 5,
- 5, 10, 6, 11, 20, 159, 5, 5,
- 5, 5, 10, 6, 11, 20, 161, 162,
- 0, 163, 0, 5, 5, 5, 163, 5,
- 10, 6, 11, 20, 165, 166, 5, 5,
- 5, 5, 10, 6, 11, 20, 168, 169,
- 170, 171, 172, 5, 5, 5, 5, 10,
- 6, 11, 20, 173, 72, 174, 174, 174,
- 1399, 303, 176, 177, 177, 177, 177, 182,
- 177, 177, 177, 178, 4, 17, 40, 54,
- 61, 73, 81, 85, 93, 99, 115, 125,
- 128, 135, 154, 164, 167, 177, 182, 72,
- 72, 72, 178, 179, 179, 179, 179, 179,
- 72, 173, 180, 180, 181, 181, 181, 181,
- 181, 72, 72, 72, 180, 72, 173, 182,
- 177, 183, 1396, 0, 185, 229, 235, 186,
- 187, 188, 189, 190, 191, 1400, 0, 193,
- 193, 193, 193, 194, 193, 193, 193, 193,
- 194, 194, 0, 193, 0, 196, 196, 196,
- 196, 197, 196, 196, 196, 196, 197, 197,
- 196, 199, 199, 200, 200, 200, 200, 200,
- 3, 3, 3, 199, 3, 201, 201, 3,
- 0, 203, 203, 203, 203, 282, 283, 284,
- 203, 203, 203, 203, 282, 283, 284, 0,
- 205, 205, 205, 1397, 13, 1402, 208, 1403,
- 280, 205, 205, 205, 1397, 1403, 206, 206,
- 206, 1401, 207, 207, 1401, 209, 209, 209,
- 1396, 8, 209, 209, 209, 8, 210, 210,
- 210, 227, 264, 227, 1404, 0, 230, 231,
- 232, 233, 234, 1400, 236, 237, 1400, 0,
- 206, 206, 206, 1401, 207, 0, 240, 240,
- 240, 1399, 241, 240, 240, 240, 1399, 241,
- 241, 1399, 0, 243, 243, 243, 1404, 227,
- 1405, 264, 243, 243, 243, 1404, 1405, 261,
- 0, 261, 261, 261, 262, 206, 206, 206,
- 1401, 207, 263, 1401, 263, 263, 207, 263,
- 263, 263, 207, 265, 265, 265, 227, 265,
- 265, 265, 227, 267, 268, 5, 5, 5,
- 5, 10, 6, 11, 20, 270, 271, 272,
+ 5, 10, 6, 11, 20, 94, 98, 95,
+ 96, 97, 5, 5, 5, 5, 10, 6,
+ 11, 20, 5, 5, 5, 5, 10, 6,
+ 11, 20, 100, 104, 106, 101, 102, 103,
5, 5, 5, 5, 10, 6, 11, 20,
- 274, 5, 5, 5, 5, 10, 6, 11,
- 20, 275, 1404, 277, 277, 277, 1396, 277,
- 277, 277, 1396, 279, 279, 279, 279, 279,
- 279, 281, 281, 281, 281, 281, 281, 282,
- 203, 210, 210, 210, 227, 264, 285, 285,
- 285, 285, 285, 285, 0, 302, 1401, 303,
- 1399, 305, 1398, 306, 1406, 306, 306, 308,
- 1407, 308, 1407, 0, 310, 316, 317, 312,
- 1408, 310, 311, 312, 1408, 310, 312, 313,
- 0, 314, 315, 1408, 310, 311, 312, 1408,
- 0, 319, 324, 320, 1409, 319, 1410, 320,
- 0, 321, 322, 323, 1409, 319, 1410, 320,
- 324, 325, 326, 327, 324, 325, 326, 327,
- 0, 1409, 328, 329, 330, 324, 325, 326,
- 327, 0, 332, 332, 332, 332, 339, 0,
- 333, 0, 334, 334, 334, 333, 336, 336,
- 336, 336, 336, 1411, 335, 0, 334, 334,
- 334, 1411, 335, 335, 1411, 337, 0, 337,
- 338, 338, 338, 338, 338, 334, 334, 334,
- 337, 1411, 335, 339, 332, 0, 341, 341,
- 341, 341, 351, 342, 350, 346, 342, 343,
- 346, 0, 344, 344, 344, 342, 346, 1412,
- 345, 344, 344, 344, 1412, 345, 345, 1412,
- 347, 0, 348, 349, 342, 343, 346, 351,
- 341, 353, 353, 353, 353, 368, 354, 0,
- 0, 355, 355, 355, 1413, 359, 365, 0,
- 355, 355, 355, 356, 364, 360, 1413, 359,
- 365, 0, 356, 357, 360, 358, 358, 358,
- 356, 360, 1413, 359, 358, 358, 358, 359,
- 1413, 361, 0, 362, 363, 356, 357, 360,
- 365, 1414, 366, 366, 366, 366, 367, 367,
- 366, 368, 353, 0, 370, 371, 372, 375,
- 373, 373, 373, 373, 373, 374, 1415, 1416,
- 1417, 374, 373, 0, 377, 377, 377, 377,
- 382, 1418, 1419, 1420, 377, 377, 377, 378,
- 383, 404, 418, 425, 434, 442, 446, 454,
- 460, 476, 486, 489, 496, 515, 525, 528,
- 377, 382, 1418, 1419, 1420, 377, 377, 377,
- 379, 534, 538, 377, 382, 1418, 1419, 1420,
- 380, 381, 377, 377, 377, 377, 382, 1418,
- 1419, 1420, 382, 377, 384, 386, 393, 396,
- 400, 385, 377, 377, 377, 377, 382, 1418,
- 1419, 1420, 387, 392, 388, 389, 390, 391,
- 377, 377, 377, 377, 382, 1418, 1419, 1420,
- 377, 377, 377, 377, 382, 1418, 1419, 1420,
- 394, 395, 377, 377, 377, 377, 382, 1418,
- 1419, 1420, 397, 398, 399, 377, 377, 377,
- 377, 382, 1418, 1419, 1420, 401, 402, 403,
- 377, 377, 377, 377, 382, 1418, 1419, 1420,
- 405, 409, 417, 406, 407, 408, 377, 377,
- 377, 377, 382, 1418, 1419, 1420, 410, 413,
- 411, 412, 377, 377, 377, 377, 382, 1418,
- 1419, 1420, 414, 415, 416, 377, 377, 377,
- 377, 382, 1418, 1419, 1420, 377, 377, 377,
- 377, 382, 1418, 1419, 1420, 419, 420, 421,
- 423, 422, 377, 377, 377, 377, 382, 1418,
- 1419, 1420, 424, 377, 377, 377, 377, 382,
- 1418, 1419, 1420, 426, 430, 427, 428, 429,
- 377, 377, 377, 377, 382, 1418, 1419, 1420,
- 431, 432, 433, 377, 377, 377, 377, 382,
- 1418, 1419, 1420, 435, 436, 437, 438, 439,
- 440, 441, 377, 377, 377, 377, 382, 1418,
- 1419, 1420, 443, 445, 444, 377, 377, 377,
- 377, 382, 1418, 1419, 1420, 377, 377, 377,
- 377, 382, 1418, 1419, 1420, 447, 449, 451,
- 453, 448, 377, 377, 377, 377, 382, 1418,
- 1419, 1420, 450, 377, 377, 377, 377, 382,
- 1418, 1419, 1420, 452, 377, 377, 377, 377,
- 382, 1418, 1419, 1420, 377, 377, 377, 377,
- 382, 1418, 1419, 1420, 455, 459, 456, 457,
- 458, 377, 377, 377, 377, 382, 1418, 1419,
- 1420, 377, 377, 377, 377, 382, 1418, 1419,
- 1420, 461, 465, 467, 462, 463, 464, 377,
- 377, 377, 377, 382, 1418, 1419, 1420, 466,
- 377, 377, 377, 377, 382, 1418, 1419, 1420,
- 377, 377, 377, 468, 377, 382, 1418, 1419,
- 1420, 469, 377, 377, 377, 470, 377, 382,
- 1418, 1419, 1420, 377, 377, 377, 471, 377,
- 382, 1418, 1419, 1420, 472, 473, 474, 475,
- 377, 377, 377, 377, 382, 1418, 1419, 1420,
- 477, 478, 479, 480, 481, 482, 483, 484,
- 485, 377, 377, 377, 377, 382, 1418, 1419,
- 1420, 487, 488, 377, 377, 377, 377, 382,
- 1418, 1419, 1420, 490, 491, 495, 377, 377,
- 377, 377, 382, 1418, 1419, 1420, 492, 493,
- 494, 377, 377, 377, 377, 382, 1418, 1419,
- 1420, 377, 377, 377, 377, 382, 1418, 1419,
- 1420, 497, 502, 504, 506, 508, 512, 498,
- 499, 500, 501, 377, 377, 377, 377, 382,
- 1418, 1419, 1420, 503, 377, 377, 377, 377,
- 382, 1418, 1419, 1420, 505, 377, 377, 377,
- 377, 382, 1418, 1419, 1420, 507, 377, 377,
- 377, 377, 382, 1418, 1419, 1420, 509, 510,
- 511, 377, 377, 377, 377, 382, 1418, 1419,
- 1420, 513, 514, 377, 377, 377, 377, 382,
- 1418, 1419, 1420, 516, 519, 521, 517, 518,
- 377, 377, 377, 377, 382, 1418, 1419, 1420,
- 520, 377, 377, 377, 377, 382, 1418, 1419,
- 1420, 522, 523, 524, 377, 377, 377, 524,
- 377, 382, 1418, 1419, 1420, 526, 527, 377,
- 377, 377, 377, 382, 1418, 1419, 1420, 529,
- 530, 531, 532, 533, 377, 377, 377, 377,
- 382, 1418, 1419, 1420, 535, 536, 537, 377,
- 377, 377, 377, 382, 1418, 1419, 1420, 539,
- 377, 377, 377, 377, 382, 1418, 1419, 1420,
- 0, 541, 541, 541, 541, 548, 0, 542,
- 543, 543, 543, 542, 543, 547, 0, 543,
- 543, 543, 544, 543, 547, 545, 545, 545,
- 545, 545, 546, 1421, 1422, 1423, 546, 545,
- 547, 543, 548, 541, 550, 550, 550, 550,
- 558, 551, 557, 1424, 1424, 1424, 557, 1425,
- 1424, 1428, 552, 552, 552, 553, 552, 556,
- 554, 554, 554, 554, 554, 555, 1425, 1426,
- 1427, 555, 554, 556, 552, 552, 552, 552,
- 552, 556, 558, 550, 0, 560, 564, 567,
- 580, 584, 599, 561, 562, 563, 1429, 565,
- 566, 1429, 568, 569, 570, 575, 571, 572,
- 573, 574, 1429, 576, 577, 578, 579, 1429,
- 581, 582, 0, 583, 1429, 583, 585, 586,
- 587, 588, 589, 590, 591, 592, 593, 594,
- 595, 596, 597, 598, 1429, 600, 601, 602,
- 1429, 0, 604, 604, 604, 604, 611, 1430,
- 1431, 1432, 604, 604, 604, 605, 612, 628,
- 653, 659, 674, 689, 604, 611, 1430, 1431,
- 1432, 606, 607, 608, 609, 610, 697, 604,
- 604, 604, 604, 611, 1430, 1431, 1432, 611,
- 604, 613, 614, 615, 616, 623, 617, 618,
- 619, 622, 620, 620, 621, 617, 604, 604,
- 604, 604, 611, 1430, 1431, 1432, 624, 625,
- 627, 626, 626, 604, 604, 604, 623, 604,
- 611, 1430, 1431, 1432, 629, 630, 631, 642,
- 632, 633, 634, 635, 636, 0, 637, 640,
- 638, 621, 639, 638, 638, 604, 604, 604,
- 641, 640, 604, 611, 1430, 1431, 1432, 640,
- 643, 644, 645, 646, 647, 648, 651, 649,
- 621, 650, 649, 649, 604, 604, 604, 652,
- 651, 604, 611, 1430, 1431, 1432, 651, 654,
- 655, 0, 656, 604, 604, 604, 656, 657,
- 604, 611, 1430, 1431, 1432, 658, 660, 661,
- 662, 663, 664, 665, 666, 667, 668, 669,
- 672, 670, 621, 671, 670, 604, 604, 604,
- 673, 604, 611, 1430, 1431, 1432, 672, 675,
- 676, 677, 678, 679, 680, 681, 682, 683,
- 684, 685, 686, 687, 688, 604, 604, 604,
- 604, 611, 1430, 1431, 1432, 690, 691, 692,
- 693, 694, 696, 695, 621, 695, 604, 604,
- 604, 696, 604, 611, 1430, 1431, 1432, 698,
- 621, 0, 700, 701, 716, 755, 763, 776,
- 1433, 700, 702, 703, 1433, 704, 1433, 705,
- 706, 707, 708, 709, 710, 711, 712, 713,
- 714, 715, 1433, 717, 746, 718, 724, 719,
- 720, 721, 722, 723, 1433, 725, 726, 727,
- 728, 737, 729, 730, 731, 732, 733, 734,
- 735, 736, 1433, 738, 739, 740, 741, 742,
- 743, 744, 745, 1433, 747, 752, 748, 749,
- 750, 751, 1433, 753, 754, 1433, 756, 757,
- 758, 759, 760, 761, 762, 1433, 764, 765,
- 766, 767, 768, 769, 770, 773, 771, 772,
- 1433, 774, 775, 1433, 777, 778, 779, 782,
- 780, 781, 1433, 783, 784, 785, 797, 800,
- 1433, 786, 787, 788, 789, 790, 791, 792,
- 793, 794, 795, 796, 1433, 798, 799, 1433,
- 801, 802, 1433, 0, 804, 805, 811, 828,
- 831, 837, 841, 1434, 804, 806, 807, 808,
- 809, 810, 1434, 812, 818, 824, 813, 814,
- 815, 816, 817, 1434, 819, 821, 820, 1434,
- 822, 823, 1434, 825, 826, 827, 1434, 829,
- 830, 1434, 832, 834, 833, 1434, 835, 836,
- 1434, 838, 839, 840, 1434, 842, 843, 1434,
- 0, 845, 1435, 845, 847, 1436, 849, 850,
- 850, 850, 850, 879, 850, 850, 850, 851,
- 850, 879, 852, 852, 852, 852, 878, 0,
- 852, 852, 852, 853, 852, 878, 854, 854,
- 854, 853, 854, 877, 854, 854, 854, 855,
- 854, 877, 0, 856, 856, 856, 855, 874,
- 874, 874, 874, 874, 856, 873, 856, 856,
- 856, 857, 856, 873, 858, 858, 858, 857,
- 870, 870, 870, 870, 870, 858, 869, 858,
- 858, 858, 859, 858, 869, 860, 860, 860,
- 859, 866, 866, 866, 866, 866, 860, 865,
- 860, 860, 860, 861, 860, 865, 1437, 861,
- 862, 862, 862, 862, 862, 863, 863, 864,
- 864, 864, 864, 864, 1437, 863, 865, 860,
- 867, 867, 868, 868, 868, 868, 868, 860,
- 860, 860, 867, 860, 865, 869, 858, 871,
- 871, 872, 872, 872, 872, 872, 858, 858,
- 858, 871, 858, 869, 873, 856, 875, 875,
- 876, 876, 876, 876, 876, 856, 856, 856,
- 875, 856, 873, 877, 854, 878, 852, 879,
- 850, 881, 882, 882, 882, 882, 884, 883,
- 882, 882, 882, 882, 884, 1438, 884, 882,
- 886, 887, 887, 887, 887, 889, 887, 887,
- 887, 888, 887, 889, 1439, 889, 887, 891,
- 892, 892, 892, 891, 892, 894, 892, 892,
- 892, 893, 892, 894, 1440, 894, 892, 896,
- 0, 897, 897, 897, 897, 898, 1441, 1442,
- 1443, 896, 897, 897, 897, 897, 898, 1441,
- 1442, 1443, 898, 897, 900, 1444, 900, 0,
- 902, 903, 903, 903, 902, 903, 955, 903,
- 903, 903, 904, 908, 950, 903, 955, 905,
- 905, 905, 904, 905, 954, 905, 905, 905,
- 906, 905, 954, 907, 907, 907, 952, 906,
- 907, 951, 907, 907, 907, 907, 951, 909,
- 909, 909, 909, 949, 910, 911, 911, 911,
- 910, 911, 948, 911, 911, 911, 912, 916,
- 943, 911, 948, 913, 913, 913, 912, 913,
- 947, 913, 913, 913, 914, 913, 947, 915,
- 915, 915, 945, 914, 915, 944, 915, 915,
- 915, 915, 944, 917, 917, 917, 917, 942,
- 918, 919, 919, 920, 920, 920, 939, 919,
- 941, 920, 938, 1445, 1452, 1453, 920, 920,
- 920, 921, 920, 938, 1445, 1452, 1453, 922,
- 922, 922, 935, 921, 937, 922, 934, 1445,
- 1450, 1451, 922, 922, 922, 923, 922, 934,
- 1450, 1451, 924, 924, 924, 931, 923, 933,
- 924, 930, 1445, 1448, 1449, 924, 924, 924,
- 925, 924, 930, 1448, 1449, 926, 926, 926,
- 928, 925, 926, 927, 1445, 1446, 1447, 926,
- 926, 926, 926, 927, 1446, 1447, 927, 926,
- 926, 926, 926, 929, 926, 927, 1445, 1446,
- 1447, 929, 930, 924, 924, 924, 924, 932,
- 933, 924, 930, 1445, 1448, 1449, 932, 934,
- 922, 922, 922, 922, 936, 937, 922, 934,
- 1445, 1450, 1451, 936, 938, 920, 920, 920,
- 920, 940, 941, 920, 938, 1445, 1452, 1453,
- 940, 942, 917, 917, 917, 917, 917, 942,
- 944, 915, 915, 915, 915, 946, 915, 944,
- 946, 947, 913, 948, 911, 949, 909, 909,
- 909, 909, 909, 949, 951, 907, 907, 907,
- 907, 953, 907, 951, 953, 954, 905, 955,
- 903, 957, 958, 958, 958, 957, 958, 966,
- 958, 958, 958, 959, 958, 966, 960, 960,
- 960, 959, 960, 965, 960, 960, 960, 961,
- 960, 965, 962, 962, 962, 961, 962, 964,
- 962, 962, 962, 963, 962, 964, 1454, 964,
- 962, 965, 960, 966, 958, 968, 969, 969,
- 969, 968, 969, 983, 969, 969, 969, 970,
- 969, 983, 971, 971, 971, 970, 971, 982,
- 972, 971, 971, 971, 971, 982, 973, 973,
- 973, 973, 981, 974, 973, 973, 973, 973,
- 981, 975, 975, 975, 975, 980, 976, 975,
- 975, 975, 975, 980, 977, 977, 977, 977,
- 979, 977, 977, 977, 978, 977, 979, 1455,
- 979, 977, 980, 975, 981, 973, 982, 971,
- 983, 969, 985, 986, 986, 986, 986, 994,
- 987, 988, 988, 988, 987, 988, 993, 988,
- 988, 988, 989, 988, 993, 990, 990, 990,
- 990, 992, 991, 1456, 992, 990, 993, 988,
- 994, 986, 0, 995, 996, 995, 995, 997,
- 1003, 995, 1002, 1457, 1458, 1459, 997, 1003,
- 998, 0, 999, 999, 1000, 1001, 995, 995,
- 995, 1001, 995, 1002, 1457, 1458, 1459, 1002,
- 995, 1004, 1005, 1005, 1000, 1007, 1008, 1008,
- 1008, 1007, 1008, 1018, 1008, 1008, 1008, 1009,
- 1008, 1018, 1010, 1010, 1010, 1010, 1017, 1011,
- 1012, 1012, 1012, 1011, 1012, 1016, 0, 1012,
- 1012, 1012, 1013, 1012, 1016, 1014, 1014, 1014,
- 1014, 1014, 1015, 1460, 1461, 1462, 1015, 1014,
- 1016, 1012, 1017, 1010, 1018, 1008, 1020, 1021,
- 1021, 1021, 1020, 1021, 1028, 1021, 1021, 1021,
- 1022, 1021, 1028, 1023, 1023, 1023, 1022, 1023,
- 1027, 1023, 1023, 1023, 1024, 1023, 1027, 1025,
- 1025, 1025, 1025, 1025, 1026, 1463, 1464, 1465,
- 1026, 1025, 1027, 1023, 1028, 1021, 1030, 1031,
- 1031, 1031, 1030, 1031, 1067, 0, 1031, 1031,
- 1031, 1032, 1046, 1053, 1060, 1031, 1067, 1033,
- 1033, 1033, 1033, 1045, 0, 1034, 1035, 1035,
- 1035, 1034, 1035, 1044, 1035, 1035, 1035, 1036,
- 1035, 1044, 0, 1037, 1037, 1037, 1040, 1040,
- 1040, 1042, 1042, 1042, 1466, 1037, 1039, 1469,
- 1470, 1040, 1041, 1467, 1468, 1042, 1043, 1471,
- 1472, 0, 1038, 1039, 1037, 1041, 1040, 1043,
- 1042, 1044, 1035, 1045, 1033, 1047, 1047, 1047,
- 1047, 1052, 1048, 1049, 1049, 1049, 1048, 1049,
- 1051, 0, 1049, 1049, 1049, 1050, 1049, 1051,
- 0, 1050, 1037, 1037, 1037, 1040, 1040, 1040,
- 1042, 1042, 1042, 1466, 1037, 1039, 1469, 1470,
- 1040, 1041, 1467, 1468, 1042, 1043, 1471, 1472,
- 1051, 1049, 1052, 1047, 1054, 1054, 1054, 1054,
- 1059, 1055, 1056, 1056, 1056, 1055, 1056, 1058,
- 1056, 1056, 1056, 1057, 1056, 1058, 1057, 1037,
- 1037, 1037, 1040, 1040, 1040, 1042, 1042, 1042,
- 1466, 1037, 1039, 1469, 1470, 1040, 1041, 1467,
- 1468, 1042, 1043, 1471, 1472, 1058, 1056, 1059,
- 1054, 1061, 1061, 1061, 1061, 1066, 1062, 1063,
- 1063, 1063, 1062, 1063, 1065, 1063, 1063, 1063,
- 1064, 1063, 1065, 1037, 1037, 1037, 1040, 1040,
- 1040, 1042, 1042, 1042, 1466, 1037, 1039, 1469,
- 1470, 1040, 1041, 1467, 1468, 1042, 1043, 1471,
- 1472, 1065, 1063, 1066, 1061, 1067, 1031, 0,
- 1069, 1103, 1124, 1138, 1145, 1154, 1162, 1166,
- 1174, 1180, 1196, 1206, 1209, 1216, 1235, 1245,
- 1248, 1070, 1070, 1070, 1094, 1097, 1101, 1070,
- 1093, 1070, 1070, 1070, 1071, 1070, 1093, 1072,
- 1072, 1072, 1072, 1092, 1073, 1074, 1074, 1074,
- 1073, 1074, 1091, 1074, 1074, 1074, 1075, 1074,
- 1091, 1076, 1076, 1076, 1075, 1076, 1090, 0,
- 1076, 1076, 1076, 1077, 1076, 1090, 1078, 1078,
- 1078, 1077, 1078, 1089, 1078, 1078, 1078, 1079,
- 1078, 1089, 1080, 1080, 1080, 1079, 1080, 1088,
- 1080, 1080, 1080, 1081, 1080, 1088, 1082, 1082,
- 1082, 1081, 1082, 1087, 1082, 1082, 1082, 1083,
- 1082, 1087, 1084, 1084, 1084, 1084, 1086, 1084,
- 1084, 1084, 1085, 1084, 1086, 1473, 1086, 1084,
- 1087, 1082, 1088, 1080, 1089, 1078, 1090, 1076,
- 1091, 1074, 1092, 1072, 1093, 1070, 1095, 1096,
- 1070, 1070, 1070, 1070, 1093, 1098, 1099, 1100,
- 1070, 1070, 1070, 1070, 1093, 1102, 1070, 1070,
- 1070, 1070, 1093, 1104, 1106, 1113, 1116, 1120,
- 1105, 1070, 1070, 1070, 1070, 1093, 1107, 1112,
- 1108, 1109, 1110, 1111, 1070, 1070, 1070, 1070,
- 1093, 1070, 1070, 1070, 1070, 1093, 1114, 1115,
- 1070, 1070, 1070, 1070, 1093, 1117, 1118, 1119,
- 1070, 1070, 1070, 1070, 1093, 1121, 1122, 1123,
- 1070, 1070, 1070, 1070, 1093, 1125, 1129, 1137,
- 1126, 1127, 1128, 1070, 1070, 1070, 1070, 1093,
- 1130, 1133, 1131, 1132, 1070, 1070, 1070, 1070,
- 1093, 1134, 1135, 1136, 1070, 1070, 1070, 1070,
- 1093, 1070, 1070, 1070, 1070, 1093, 1139, 1140,
- 1141, 1143, 1142, 1070, 1070, 1070, 1070, 1093,
- 1144, 1070, 1070, 1070, 1070, 1093, 1146, 1150,
- 1147, 1148, 1149, 1070, 1070, 1070, 1070, 1093,
- 1151, 1152, 1153, 1070, 1070, 1070, 1070, 1093,
- 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1070,
- 1070, 1070, 1070, 1093, 1163, 1165, 1164, 1070,
- 1070, 1070, 1070, 1093, 1070, 1070, 1070, 1070,
- 1093, 1167, 1169, 1171, 1173, 1168, 1070, 1070,
- 1070, 1070, 1093, 1170, 1070, 1070, 1070, 1070,
- 1093, 1172, 1070, 1070, 1070, 1070, 1093, 1070,
- 1070, 1070, 1070, 1093, 1175, 1179, 1176, 1177,
- 1178, 1070, 1070, 1070, 1070, 1093, 1070, 1070,
- 1070, 1070, 1093, 1181, 1185, 1187, 1182, 1183,
- 1184, 1070, 1070, 1070, 1070, 1093, 1186, 1070,
- 1070, 1070, 1070, 1093, 1070, 1070, 1070, 1188,
- 1070, 1093, 1189, 1070, 1070, 1070, 1190, 1070,
- 1093, 1070, 1070, 1070, 1191, 1070, 1093, 1192,
- 1193, 1194, 1195, 1070, 1070, 1070, 1070, 1093,
- 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204,
- 1205, 1070, 1070, 1070, 1070, 1093, 1207, 1208,
- 1070, 1070, 1070, 1070, 1093, 1210, 1211, 1215,
- 1070, 1070, 1070, 1070, 1093, 1212, 1213, 1214,
- 1070, 1070, 1070, 1070, 1093, 1070, 1070, 1070,
- 1070, 1093, 1217, 1222, 1224, 1226, 1228, 1232,
- 1218, 1219, 1220, 1221, 1070, 1070, 1070, 1070,
- 1093, 1223, 1070, 1070, 1070, 1070, 1093, 1225,
- 1070, 1070, 1070, 1070, 1093, 1227, 1070, 1070,
- 1070, 1070, 1093, 1229, 1230, 1231, 1070, 1070,
- 1070, 1070, 1093, 1233, 1234, 1070, 1070, 1070,
- 1070, 1093, 1236, 1239, 1241, 1237, 1238, 1070,
- 1070, 1070, 1070, 1093, 1240, 1070, 1070, 1070,
- 1070, 1093, 1242, 1243, 0, 1244, 1070, 1070,
- 1070, 1244, 1070, 1093, 1246, 1247, 1070, 1070,
- 1070, 1070, 1093, 1249, 1250, 1251, 1252, 1253,
- 1070, 1070, 1070, 1070, 1093, 1255, 1256, 1474,
- 1258, 1259, 1259, 1259, 1258, 1259, 1267, 1259,
- 1259, 1259, 1260, 1259, 1267, 1261, 1261, 1261,
- 1260, 1261, 1266, 1261, 1261, 1261, 1262, 1261,
- 1266, 1263, 1263, 1263, 1263, 1265, 1264, 1475,
- 1265, 1263, 1266, 1261, 1267, 1259, 1269, 1476,
- 1271, 1272, 1272, 1272, 1271, 1272, 1298, 1272,
- 1272, 1272, 1273, 1272, 1298, 1274, 1274, 1274,
- 1273, 1274, 1297, 1274, 1274, 1274, 1275, 1274,
- 1297, 1276, 1276, 1276, 1275, 1276, 1296, 1276,
- 1276, 1276, 1277, 1294, 1276, 1296, 1278, 1278,
- 1278, 1278, 1293, 0, 1278, 1278, 1278, 1279,
- 1278, 1293, 1280, 1281, 1291, 1282, 1283, 1290,
- 1284, 1288, 1285, 1286, 1286, 1287, 1279, 1477,
- 1289, 1292, 1293, 1278, 1295, 1294, 1296, 1276,
- 1297, 1274, 1298, 1272, 1300, 1301, 1301, 1301,
- 1300, 1301, 1311, 1301, 1301, 1301, 1302, 1301,
- 1311, 1303, 1303, 1303, 1302, 1303, 1310, 1303,
- 1303, 1303, 1304, 1303, 1310, 1305, 1305, 1305,
- 1304, 1305, 1309, 1305, 1305, 1305, 1306, 1307,
- 1305, 1309, 1478, 1308, 1307, 1309, 1305, 1310,
- 1303, 1311, 1301, 1313, 1314, 1314, 1314, 1313,
- 1314, 1324, 1314, 1314, 1314, 1315, 1314, 1324,
- 1316, 1316, 1316, 1315, 1316, 1323, 1316, 1316,
- 1316, 1317, 1316, 1323, 1318, 1318, 1318, 1317,
- 1318, 1322, 1318, 1318, 1318, 1319, 1318, 1322,
- 1320, 1320, 1320, 1320, 1320, 1321, 1479, 1480,
- 1481, 1321, 1320, 1322, 1318, 1323, 1316, 1324,
- 1314, 1326, 1327, 1327, 1327, 1326, 1327, 1330,
- 1327, 1327, 1327, 1328, 1327, 1330, 1329, 1328,
- 1482, 1330, 1327, 1332, 1333, 1333, 1333, 1332,
- 1333, 1343, 1333, 1333, 1333, 1334, 1333, 1343,
- 1335, 1335, 1335, 1334, 1335, 1342, 1335, 1335,
- 1335, 1336, 1335, 1342, 1337, 1337, 1337, 1336,
- 1337, 1341, 1337, 1337, 1337, 1338, 1337, 1341,
- 1339, 1339, 1339, 1339, 1339, 1340, 1483, 1484,
- 1485, 1340, 1339, 1341, 1337, 1342, 1335, 1343,
- 1333, 1345, 1346, 1346, 1346, 1345, 1346, 1348,
- 1346, 1346, 1346, 1347, 1346, 1348, 1486, 1347,
- 1348, 1346, 1350, 1351, 1351, 1351, 1350, 1351,
- 1361, 1351, 1351, 1351, 1352, 1351, 1361, 1353,
- 1354, 1355, 0, 1356, 1357, 1358, 1359, 1360,
- 0, 1487, 1361, 1351, 1363, 1364, 0, 1365,
- 1366, 1367, 1488, 1369, 1370, 1371, 1372, 1373,
- 1489, 1375, 1376, 1376, 1376, 1375, 1376, 1381,
- 1376, 1376, 1376, 1377, 1376, 1381, 1378, 1378,
- 1378, 1377, 1378, 1380, 1379, 1378, 1378, 1378,
- 1378, 1380, 1490, 1380, 1378, 1381, 1376, 1383,
- 1384, 1384, 1384, 1383, 1384, 1389, 1385, 1384,
- 1384, 1384, 1384, 1389, 1386, 1386, 1386, 1386,
- 1388, 1387, 1386, 1386, 1386, 1386, 1388, 1491,
- 1388, 1386, 1389, 1384, 1391, 1392, 1392, 1392,
- 1391, 1392, 1395, 1392, 1392, 1392, 1393, 1392,
- 1395, 1394, 1492, 1395, 1392, 0, 1, 184,
- 1, 1, 192, 1396, 183, 1401, 302, 14,
- 228, 14, 14, 238, 260, 1404, 275, 1402,
- 276, 1405, 278, 0, 174, 174, 174, 202,
- 286, 287, 288, 289, 304, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, 301,
- 1399, 303, 0, 195, 202, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296,
- 297, 298, 299, 300, 301, 0, 1, 184,
- 1, 1, 192, 1396, 183, 1401, 302, 1,
- 1, 1401, 302, 206, 206, 206, 1401, 207,
- 210, 210, 210, 227, 264, 0, 239, 242,
- 244, 245, 246, 247, 248, 249, 250, 251,
- 252, 253, 254, 255, 256, 257, 258, 259,
- 1401
+ 105, 5, 5, 5, 5, 10, 6, 11,
+ 20, 5, 5, 5, 107, 5, 10, 6,
+ 11, 20, 108, 5, 5, 5, 109, 5,
+ 10, 6, 11, 20, 5, 5, 5, 110,
+ 5, 10, 6, 11, 20, 111, 112, 113,
+ 114, 5, 5, 5, 5, 10, 6, 11,
+ 20, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 5, 5, 5, 5, 10, 6,
+ 11, 20, 126, 127, 5, 5, 5, 5,
+ 10, 6, 11, 20, 129, 130, 134, 5,
+ 5, 5, 5, 10, 6, 11, 20, 131,
+ 132, 133, 5, 5, 5, 5, 10, 6,
+ 11, 20, 5, 5, 5, 5, 10, 6,
+ 11, 20, 136, 141, 143, 145, 147, 151,
+ 137, 138, 139, 140, 5, 5, 5, 5,
+ 10, 6, 11, 20, 142, 5, 5, 5,
+ 5, 10, 6, 11, 20, 144, 5, 5,
+ 5, 5, 10, 6, 11, 20, 146, 5,
+ 5, 5, 5, 10, 6, 11, 20, 148,
+ 149, 150, 5, 5, 5, 5, 10, 6,
+ 11, 20, 152, 153, 5, 5, 5, 5,
+ 10, 6, 11, 20, 155, 158, 160, 156,
+ 157, 5, 5, 5, 5, 10, 6, 11,
+ 20, 159, 5, 5, 5, 5, 10, 6,
+ 11, 20, 161, 162, 0, 163, 0, 5,
+ 5, 5, 163, 5, 10, 6, 11, 20,
+ 165, 166, 5, 5, 5, 5, 10, 6,
+ 11, 20, 168, 169, 170, 171, 172, 5,
+ 5, 5, 5, 10, 6, 11, 20, 174,
+ 175, 176, 177, 178, 5, 5, 5, 5,
+ 10, 6, 11, 20, 179, 72, 180, 180,
+ 180, 1447, 312, 182, 183, 183, 183, 183,
+ 188, 183, 183, 183, 184, 4, 17, 40,
+ 54, 61, 73, 81, 85, 93, 99, 115,
+ 125, 128, 135, 154, 164, 167, 173, 183,
+ 188, 72, 72, 72, 184, 185, 185, 185,
+ 185, 185, 72, 179, 186, 186, 187, 187,
+ 187, 187, 187, 72, 72, 72, 186, 72,
+ 179, 188, 183, 189, 1444, 0, 191, 236,
+ 242, 192, 193, 194, 195, 196, 197, 1448,
+ 0, 199, 199, 199, 199, 200, 199, 199,
+ 199, 199, 200, 200, 0, 199, 0, 202,
+ 202, 202, 202, 203, 202, 202, 202, 202,
+ 203, 203, 202, 205, 205, 206, 206, 206,
+ 206, 206, 3, 3, 3, 205, 3, 207,
+ 207, 3, 0, 209, 209, 209, 209, 290,
+ 291, 292, 209, 209, 209, 209, 290, 291,
+ 292, 0, 211, 211, 211, 1445, 13, 1450,
+ 214, 1451, 288, 211, 211, 211, 1445, 1451,
+ 212, 212, 212, 1449, 213, 213, 1449, 215,
+ 215, 215, 1444, 8, 215, 215, 215, 8,
+ 216, 216, 216, 234, 272, 234, 1452, 0,
+ 237, 238, 239, 240, 241, 1448, 243, 244,
+ 1448, 0, 212, 212, 212, 1449, 213, 0,
+ 247, 247, 247, 1447, 248, 247, 247, 247,
+ 1447, 248, 248, 1447, 0, 250, 250, 250,
+ 1452, 234, 1453, 272, 250, 250, 250, 1452,
+ 1453, 269, 0, 269, 269, 269, 270, 212,
+ 212, 212, 1449, 213, 271, 1449, 271, 271,
+ 213, 271, 271, 271, 213, 273, 273, 273,
+ 234, 273, 273, 273, 234, 275, 276, 5,
+ 5, 5, 5, 10, 6, 11, 20, 278,
+ 279, 280, 5, 5, 5, 5, 10, 6,
+ 11, 20, 282, 5, 5, 5, 5, 10,
+ 6, 11, 20, 283, 1452, 285, 285, 285,
+ 1444, 285, 285, 285, 1444, 287, 287, 287,
+ 287, 287, 287, 289, 289, 289, 289, 289,
+ 289, 290, 209, 216, 216, 216, 234, 272,
+ 293, 293, 293, 293, 293, 293, 0, 311,
+ 1449, 312, 1447, 314, 1446, 315, 1454, 315,
+ 315, 317, 1455, 317, 1455, 0, 319, 325,
+ 326, 321, 1456, 319, 320, 321, 1456, 319,
+ 321, 322, 0, 323, 324, 1456, 319, 320,
+ 321, 1456, 0, 328, 333, 329, 1457, 328,
+ 1458, 329, 0, 330, 331, 332, 1457, 328,
+ 1458, 329, 333, 334, 335, 336, 333, 334,
+ 335, 336, 0, 1457, 337, 338, 339, 333,
+ 334, 335, 336, 0, 341, 341, 341, 341,
+ 348, 0, 342, 0, 343, 343, 343, 342,
+ 345, 345, 345, 345, 345, 1459, 344, 0,
+ 343, 343, 343, 1459, 344, 344, 1459, 346,
+ 0, 346, 347, 347, 347, 347, 347, 343,
+ 343, 343, 346, 1459, 344, 348, 341, 0,
+ 350, 350, 350, 350, 360, 351, 359, 355,
+ 351, 352, 355, 0, 353, 353, 353, 351,
+ 355, 1460, 354, 353, 353, 353, 1460, 354,
+ 354, 1460, 356, 0, 357, 358, 351, 352,
+ 355, 360, 350, 362, 362, 362, 362, 377,
+ 363, 0, 0, 364, 364, 364, 1461, 368,
+ 374, 0, 364, 364, 364, 365, 373, 369,
+ 1461, 368, 374, 0, 365, 366, 369, 367,
+ 367, 367, 365, 369, 1461, 368, 367, 367,
+ 367, 368, 1461, 370, 0, 371, 372, 365,
+ 366, 369, 374, 1462, 375, 375, 375, 375,
+ 376, 376, 375, 377, 362, 0, 379, 380,
+ 381, 384, 382, 382, 382, 382, 382, 383,
+ 1463, 1464, 1465, 383, 382, 0, 386, 386,
+ 386, 386, 391, 1466, 1467, 1468, 386, 386,
+ 386, 387, 392, 413, 427, 434, 443, 451,
+ 455, 463, 469, 485, 495, 498, 505, 524,
+ 534, 537, 543, 386, 391, 1466, 1467, 1468,
+ 386, 386, 386, 388, 549, 553, 386, 391,
+ 1466, 1467, 1468, 389, 390, 386, 386, 386,
+ 386, 391, 1466, 1467, 1468, 391, 386, 393,
+ 395, 402, 405, 409, 394, 386, 386, 386,
+ 386, 391, 1466, 1467, 1468, 396, 401, 397,
+ 398, 399, 400, 386, 386, 386, 386, 391,
+ 1466, 1467, 1468, 386, 386, 386, 386, 391,
+ 1466, 1467, 1468, 403, 404, 386, 386, 386,
+ 386, 391, 1466, 1467, 1468, 406, 407, 408,
+ 386, 386, 386, 386, 391, 1466, 1467, 1468,
+ 410, 411, 412, 386, 386, 386, 386, 391,
+ 1466, 1467, 1468, 414, 418, 426, 415, 416,
+ 417, 386, 386, 386, 386, 391, 1466, 1467,
+ 1468, 419, 422, 420, 421, 386, 386, 386,
+ 386, 391, 1466, 1467, 1468, 423, 424, 425,
+ 386, 386, 386, 386, 391, 1466, 1467, 1468,
+ 386, 386, 386, 386, 391, 1466, 1467, 1468,
+ 428, 429, 430, 432, 431, 386, 386, 386,
+ 386, 391, 1466, 1467, 1468, 433, 386, 386,
+ 386, 386, 391, 1466, 1467, 1468, 435, 439,
+ 436, 437, 438, 386, 386, 386, 386, 391,
+ 1466, 1467, 1468, 440, 441, 442, 386, 386,
+ 386, 386, 391, 1466, 1467, 1468, 444, 445,
+ 446, 447, 448, 449, 450, 386, 386, 386,
+ 386, 391, 1466, 1467, 1468, 452, 454, 453,
+ 386, 386, 386, 386, 391, 1466, 1467, 1468,
+ 386, 386, 386, 386, 391, 1466, 1467, 1468,
+ 456, 458, 460, 462, 457, 386, 386, 386,
+ 386, 391, 1466, 1467, 1468, 459, 386, 386,
+ 386, 386, 391, 1466, 1467, 1468, 461, 386,
+ 386, 386, 386, 391, 1466, 1467, 1468, 386,
+ 386, 386, 386, 391, 1466, 1467, 1468, 464,
+ 468, 465, 466, 467, 386, 386, 386, 386,
+ 391, 1466, 1467, 1468, 386, 386, 386, 386,
+ 391, 1466, 1467, 1468, 470, 474, 476, 471,
+ 472, 473, 386, 386, 386, 386, 391, 1466,
+ 1467, 1468, 475, 386, 386, 386, 386, 391,
+ 1466, 1467, 1468, 386, 386, 386, 477, 386,
+ 391, 1466, 1467, 1468, 478, 386, 386, 386,
+ 479, 386, 391, 1466, 1467, 1468, 386, 386,
+ 386, 480, 386, 391, 1466, 1467, 1468, 481,
+ 482, 483, 484, 386, 386, 386, 386, 391,
+ 1466, 1467, 1468, 486, 487, 488, 489, 490,
+ 491, 492, 493, 494, 386, 386, 386, 386,
+ 391, 1466, 1467, 1468, 496, 497, 386, 386,
+ 386, 386, 391, 1466, 1467, 1468, 499, 500,
+ 504, 386, 386, 386, 386, 391, 1466, 1467,
+ 1468, 501, 502, 503, 386, 386, 386, 386,
+ 391, 1466, 1467, 1468, 386, 386, 386, 386,
+ 391, 1466, 1467, 1468, 506, 511, 513, 515,
+ 517, 521, 507, 508, 509, 510, 386, 386,
+ 386, 386, 391, 1466, 1467, 1468, 512, 386,
+ 386, 386, 386, 391, 1466, 1467, 1468, 514,
+ 386, 386, 386, 386, 391, 1466, 1467, 1468,
+ 516, 386, 386, 386, 386, 391, 1466, 1467,
+ 1468, 518, 519, 520, 386, 386, 386, 386,
+ 391, 1466, 1467, 1468, 522, 523, 386, 386,
+ 386, 386, 391, 1466, 1467, 1468, 525, 528,
+ 530, 526, 527, 386, 386, 386, 386, 391,
+ 1466, 1467, 1468, 529, 386, 386, 386, 386,
+ 391, 1466, 1467, 1468, 531, 532, 533, 386,
+ 386, 386, 533, 386, 391, 1466, 1467, 1468,
+ 535, 536, 386, 386, 386, 386, 391, 1466,
+ 1467, 1468, 538, 539, 540, 541, 542, 386,
+ 386, 386, 386, 391, 1466, 1467, 1468, 544,
+ 545, 546, 547, 548, 386, 386, 386, 386,
+ 391, 1466, 1467, 1468, 550, 551, 552, 386,
+ 386, 386, 386, 391, 1466, 1467, 1468, 554,
+ 386, 386, 386, 386, 391, 1466, 1467, 1468,
+ 0, 556, 556, 556, 556, 563, 0, 557,
+ 558, 558, 558, 557, 558, 562, 0, 558,
+ 558, 558, 559, 558, 562, 560, 560, 560,
+ 560, 560, 561, 1469, 1470, 1471, 561, 560,
+ 562, 558, 563, 556, 565, 565, 565, 565,
+ 573, 566, 572, 1472, 1472, 1472, 572, 1473,
+ 1472, 1476, 567, 567, 567, 568, 567, 571,
+ 569, 569, 569, 569, 569, 570, 1473, 1474,
+ 1475, 570, 569, 571, 567, 567, 567, 567,
+ 567, 571, 573, 565, 0, 575, 579, 586,
+ 589, 602, 606, 621, 626, 576, 577, 578,
+ 1477, 580, 581, 582, 583, 584, 585, 1477,
+ 587, 588, 1477, 590, 591, 592, 597, 593,
+ 594, 595, 596, 1477, 598, 599, 600, 601,
+ 1477, 603, 604, 0, 605, 1477, 605, 607,
+ 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 618, 619, 620, 1477, 622, 623,
+ 624, 625, 1477, 627, 628, 629, 1477, 0,
+ 631, 631, 631, 631, 638, 1478, 1479, 1480,
+ 631, 631, 631, 632, 639, 651, 666, 691,
+ 696, 711, 726, 731, 631, 638, 1478, 1479,
+ 1480, 633, 634, 635, 636, 637, 739, 631,
+ 631, 631, 631, 638, 1478, 1479, 1480, 638,
+ 631, 640, 641, 642, 643, 644, 645, 646,
+ 647, 648, 631, 631, 631, 631, 638, 1478,
+ 1479, 1480, 649, 650, 631, 631, 631, 631,
+ 638, 1478, 1479, 1480, 652, 653, 654, 655,
+ 661, 656, 657, 658, 660, 659, 659, 656,
+ 662, 663, 665, 664, 664, 661, 667, 668,
+ 669, 680, 670, 671, 672, 673, 674, 0,
+ 675, 678, 676, 650, 677, 676, 676, 631,
+ 631, 631, 679, 678, 631, 638, 1478, 1479,
+ 1480, 678, 681, 682, 683, 684, 685, 686,
+ 689, 687, 650, 688, 687, 687, 631, 631,
+ 631, 690, 689, 631, 638, 1478, 1479, 1480,
+ 689, 692, 693, 0, 694, 631, 631, 631,
+ 694, 695, 631, 638, 1478, 1479, 1480, 697,
+ 698, 699, 700, 701, 702, 703, 704, 705,
+ 706, 709, 707, 650, 708, 707, 631, 631,
+ 631, 710, 631, 638, 1478, 1479, 1480, 709,
+ 712, 713, 714, 715, 716, 717, 718, 719,
+ 720, 721, 722, 723, 724, 725, 631, 631,
+ 631, 631, 638, 1478, 1479, 1480, 727, 728,
+ 729, 730, 631, 631, 631, 631, 638, 1478,
+ 1479, 1480, 732, 733, 734, 735, 736, 738,
+ 737, 650, 737, 631, 631, 631, 738, 631,
+ 638, 1478, 1479, 1480, 740, 650, 0, 742,
+ 743, 758, 797, 805, 818, 1481, 742, 744,
+ 745, 1481, 746, 1481, 747, 748, 749, 750,
+ 751, 752, 753, 754, 755, 756, 757, 1481,
+ 759, 788, 760, 766, 761, 762, 763, 764,
+ 765, 1481, 767, 768, 769, 770, 779, 771,
+ 772, 773, 774, 775, 776, 777, 778, 1481,
+ 780, 781, 782, 783, 784, 785, 786, 787,
+ 1481, 789, 794, 790, 791, 792, 793, 1481,
+ 795, 796, 1481, 798, 799, 800, 801, 802,
+ 803, 804, 1481, 806, 807, 808, 809, 810,
+ 811, 812, 815, 813, 814, 1481, 816, 817,
+ 1481, 819, 820, 821, 824, 822, 823, 1481,
+ 825, 826, 827, 839, 842, 1481, 828, 829,
+ 830, 831, 832, 833, 834, 835, 836, 837,
+ 838, 1481, 840, 841, 1481, 843, 844, 1481,
+ 0, 846, 847, 853, 870, 873, 879, 883,
+ 1482, 846, 848, 849, 850, 851, 852, 1482,
+ 854, 860, 866, 855, 856, 857, 858, 859,
+ 1482, 861, 863, 862, 1482, 864, 865, 1482,
+ 867, 868, 869, 1482, 871, 872, 1482, 874,
+ 876, 875, 1482, 877, 878, 1482, 880, 881,
+ 882, 1482, 884, 885, 1482, 0, 887, 1483,
+ 887, 889, 1484, 891, 892, 892, 892, 892,
+ 921, 892, 892, 892, 893, 892, 921, 894,
+ 894, 894, 894, 920, 0, 894, 894, 894,
+ 895, 894, 920, 896, 896, 896, 895, 896,
+ 919, 896, 896, 896, 897, 896, 919, 0,
+ 898, 898, 898, 897, 916, 916, 916, 916,
+ 916, 898, 915, 898, 898, 898, 899, 898,
+ 915, 900, 900, 900, 899, 912, 912, 912,
+ 912, 912, 900, 911, 900, 900, 900, 901,
+ 900, 911, 902, 902, 902, 901, 908, 908,
+ 908, 908, 908, 902, 907, 902, 902, 902,
+ 903, 902, 907, 1485, 903, 904, 904, 904,
+ 904, 904, 905, 905, 906, 906, 906, 906,
+ 906, 1485, 905, 907, 902, 909, 909, 910,
+ 910, 910, 910, 910, 902, 902, 902, 909,
+ 902, 907, 911, 900, 913, 913, 914, 914,
+ 914, 914, 914, 900, 900, 900, 913, 900,
+ 911, 915, 898, 917, 917, 918, 918, 918,
+ 918, 918, 898, 898, 898, 917, 898, 915,
+ 919, 896, 920, 894, 921, 892, 923, 924,
+ 924, 924, 924, 926, 925, 924, 924, 924,
+ 924, 926, 1486, 926, 924, 928, 929, 929,
+ 929, 929, 931, 929, 929, 929, 930, 929,
+ 931, 1487, 931, 929, 933, 934, 934, 934,
+ 933, 934, 936, 934, 934, 934, 935, 934,
+ 936, 1488, 936, 934, 938, 0, 939, 939,
+ 939, 939, 940, 1489, 1490, 1491, 938, 939,
+ 939, 939, 939, 940, 1489, 1490, 1491, 940,
+ 939, 942, 1492, 942, 0, 944, 945, 945,
+ 945, 944, 945, 997, 945, 945, 945, 946,
+ 950, 992, 945, 997, 947, 947, 947, 946,
+ 947, 996, 947, 947, 947, 948, 947, 996,
+ 949, 949, 949, 994, 948, 949, 993, 949,
+ 949, 949, 949, 993, 951, 951, 951, 951,
+ 991, 952, 953, 953, 953, 952, 953, 990,
+ 953, 953, 953, 954, 958, 985, 953, 990,
+ 955, 955, 955, 954, 955, 989, 955, 955,
+ 955, 956, 955, 989, 957, 957, 957, 987,
+ 956, 957, 986, 957, 957, 957, 957, 986,
+ 959, 959, 959, 959, 984, 960, 961, 961,
+ 962, 962, 962, 981, 961, 983, 962, 980,
+ 1493, 1500, 1501, 962, 962, 962, 963, 962,
+ 980, 1493, 1500, 1501, 964, 964, 964, 977,
+ 963, 979, 964, 976, 1493, 1498, 1499, 964,
+ 964, 964, 965, 964, 976, 1498, 1499, 966,
+ 966, 966, 973, 965, 975, 966, 972, 1493,
+ 1496, 1497, 966, 966, 966, 967, 966, 972,
+ 1496, 1497, 968, 968, 968, 970, 967, 968,
+ 969, 1493, 1494, 1495, 968, 968, 968, 968,
+ 969, 1494, 1495, 969, 968, 968, 968, 968,
+ 971, 968, 969, 1493, 1494, 1495, 971, 972,
+ 966, 966, 966, 966, 974, 975, 966, 972,
+ 1493, 1496, 1497, 974, 976, 964, 964, 964,
+ 964, 978, 979, 964, 976, 1493, 1498, 1499,
+ 978, 980, 962, 962, 962, 962, 982, 983,
+ 962, 980, 1493, 1500, 1501, 982, 984, 959,
+ 959, 959, 959, 959, 984, 986, 957, 957,
+ 957, 957, 988, 957, 986, 988, 989, 955,
+ 990, 953, 991, 951, 951, 951, 951, 951,
+ 991, 993, 949, 949, 949, 949, 995, 949,
+ 993, 995, 996, 947, 997, 945, 999, 1000,
+ 1000, 1000, 999, 1000, 1008, 1000, 1000, 1000,
+ 1001, 1000, 1008, 1002, 1002, 1002, 1001, 1002,
+ 1007, 1002, 1002, 1002, 1003, 1002, 1007, 1004,
+ 1004, 1004, 1003, 1004, 1006, 1004, 1004, 1004,
+ 1005, 1004, 1006, 1502, 1006, 1004, 1007, 1002,
+ 1008, 1000, 1010, 1011, 1011, 1011, 1010, 1011,
+ 1025, 1011, 1011, 1011, 1012, 1011, 1025, 1013,
+ 1013, 1013, 1012, 1013, 1024, 1014, 1013, 1013,
+ 1013, 1013, 1024, 1015, 1015, 1015, 1015, 1023,
+ 1016, 1015, 1015, 1015, 1015, 1023, 1017, 1017,
+ 1017, 1017, 1022, 1018, 1017, 1017, 1017, 1017,
+ 1022, 1019, 1019, 1019, 1019, 1021, 1019, 1019,
+ 1019, 1020, 1019, 1021, 1503, 1021, 1019, 1022,
+ 1017, 1023, 1015, 1024, 1013, 1025, 1011, 1027,
+ 1028, 1028, 1028, 1028, 1036, 1029, 1030, 1030,
+ 1030, 1029, 1030, 1035, 1030, 1030, 1030, 1031,
+ 1030, 1035, 1032, 1032, 1032, 1032, 1034, 1033,
+ 1504, 1034, 1032, 1035, 1030, 1036, 1028, 0,
+ 1037, 1038, 1037, 1037, 1039, 1045, 1037, 1044,
+ 1505, 1506, 1507, 1039, 1045, 1040, 0, 1041,
+ 1041, 1042, 1043, 1037, 1037, 1037, 1043, 1037,
+ 1044, 1505, 1506, 1507, 1044, 1037, 1046, 1047,
+ 1047, 1042, 1049, 1050, 1050, 1050, 1049, 1050,
+ 1060, 1050, 1050, 1050, 1051, 1050, 1060, 1052,
+ 1052, 1052, 1052, 1059, 1053, 1054, 1054, 1054,
+ 1053, 1054, 1058, 0, 1054, 1054, 1054, 1055,
+ 1054, 1058, 1056, 1056, 1056, 1056, 1056, 1057,
+ 1508, 1509, 1510, 1057, 1056, 1058, 1054, 1059,
+ 1052, 1060, 1050, 1062, 1063, 1063, 1063, 1062,
+ 1063, 1070, 1063, 1063, 1063, 1064, 1063, 1070,
+ 1065, 1065, 1065, 1064, 1065, 1069, 1065, 1065,
+ 1065, 1066, 1065, 1069, 1067, 1067, 1067, 1067,
+ 1067, 1068, 1511, 1512, 1513, 1068, 1067, 1069,
+ 1065, 1070, 1063, 1072, 1073, 1073, 1073, 1072,
+ 1073, 1109, 0, 1073, 1073, 1073, 1074, 1088,
+ 1095, 1102, 1073, 1109, 1075, 1075, 1075, 1075,
+ 1087, 0, 1076, 1077, 1077, 1077, 1076, 1077,
+ 1086, 1077, 1077, 1077, 1078, 1077, 1086, 0,
+ 1079, 1079, 1079, 1082, 1082, 1082, 1084, 1084,
+ 1084, 1514, 1079, 1081, 1517, 1518, 1082, 1083,
+ 1515, 1516, 1084, 1085, 1519, 1520, 0, 1080,
+ 1081, 1079, 1083, 1082, 1085, 1084, 1086, 1077,
+ 1087, 1075, 1089, 1089, 1089, 1089, 1094, 1090,
+ 1091, 1091, 1091, 1090, 1091, 1093, 0, 1091,
+ 1091, 1091, 1092, 1091, 1093, 0, 1092, 1079,
+ 1079, 1079, 1082, 1082, 1082, 1084, 1084, 1084,
+ 1514, 1079, 1081, 1517, 1518, 1082, 1083, 1515,
+ 1516, 1084, 1085, 1519, 1520, 1093, 1091, 1094,
+ 1089, 1096, 1096, 1096, 1096, 1101, 1097, 1098,
+ 1098, 1098, 1097, 1098, 1100, 1098, 1098, 1098,
+ 1099, 1098, 1100, 1099, 1079, 1079, 1079, 1082,
+ 1082, 1082, 1084, 1084, 1084, 1514, 1079, 1081,
+ 1517, 1518, 1082, 1083, 1515, 1516, 1084, 1085,
+ 1519, 1520, 1100, 1098, 1101, 1096, 1103, 1103,
+ 1103, 1103, 1108, 1104, 1105, 1105, 1105, 1104,
+ 1105, 1107, 1105, 1105, 1105, 1106, 1105, 1107,
+ 1079, 1079, 1079, 1082, 1082, 1082, 1084, 1084,
+ 1084, 1514, 1079, 1081, 1517, 1518, 1082, 1083,
+ 1515, 1516, 1084, 1085, 1519, 1520, 1107, 1105,
+ 1108, 1103, 1109, 1073, 0, 1111, 1145, 1166,
+ 1180, 1187, 1196, 1204, 1208, 1216, 1222, 1238,
+ 1248, 1251, 1258, 1277, 1287, 1290, 1296, 1112,
+ 1112, 1112, 1136, 1139, 1143, 1112, 1135, 1112,
+ 1112, 1112, 1113, 1112, 1135, 1114, 1114, 1114,
+ 1114, 1134, 1115, 1116, 1116, 1116, 1115, 1116,
+ 1133, 1116, 1116, 1116, 1117, 1116, 1133, 1118,
+ 1118, 1118, 1117, 1118, 1132, 0, 1118, 1118,
+ 1118, 1119, 1118, 1132, 1120, 1120, 1120, 1119,
+ 1120, 1131, 1120, 1120, 1120, 1121, 1120, 1131,
+ 1122, 1122, 1122, 1121, 1122, 1130, 1122, 1122,
+ 1122, 1123, 1122, 1130, 1124, 1124, 1124, 1123,
+ 1124, 1129, 1124, 1124, 1124, 1125, 1124, 1129,
+ 1126, 1126, 1126, 1126, 1128, 1126, 1126, 1126,
+ 1127, 1126, 1128, 1521, 1128, 1126, 1129, 1124,
+ 1130, 1122, 1131, 1120, 1132, 1118, 1133, 1116,
+ 1134, 1114, 1135, 1112, 1137, 1138, 1112, 1112,
+ 1112, 1112, 1135, 1140, 1141, 1142, 1112, 1112,
+ 1112, 1112, 1135, 1144, 1112, 1112, 1112, 1112,
+ 1135, 1146, 1148, 1155, 1158, 1162, 1147, 1112,
+ 1112, 1112, 1112, 1135, 1149, 1154, 1150, 1151,
+ 1152, 1153, 1112, 1112, 1112, 1112, 1135, 1112,
+ 1112, 1112, 1112, 1135, 1156, 1157, 1112, 1112,
+ 1112, 1112, 1135, 1159, 1160, 1161, 1112, 1112,
+ 1112, 1112, 1135, 1163, 1164, 1165, 1112, 1112,
+ 1112, 1112, 1135, 1167, 1171, 1179, 1168, 1169,
+ 1170, 1112, 1112, 1112, 1112, 1135, 1172, 1175,
+ 1173, 1174, 1112, 1112, 1112, 1112, 1135, 1176,
+ 1177, 1178, 1112, 1112, 1112, 1112, 1135, 1112,
+ 1112, 1112, 1112, 1135, 1181, 1182, 1183, 1185,
+ 1184, 1112, 1112, 1112, 1112, 1135, 1186, 1112,
+ 1112, 1112, 1112, 1135, 1188, 1192, 1189, 1190,
+ 1191, 1112, 1112, 1112, 1112, 1135, 1193, 1194,
+ 1195, 1112, 1112, 1112, 1112, 1135, 1197, 1198,
+ 1199, 1200, 1201, 1202, 1203, 1112, 1112, 1112,
+ 1112, 1135, 1205, 1207, 1206, 1112, 1112, 1112,
+ 1112, 1135, 1112, 1112, 1112, 1112, 1135, 1209,
+ 1211, 1213, 1215, 1210, 1112, 1112, 1112, 1112,
+ 1135, 1212, 1112, 1112, 1112, 1112, 1135, 1214,
+ 1112, 1112, 1112, 1112, 1135, 1112, 1112, 1112,
+ 1112, 1135, 1217, 1221, 1218, 1219, 1220, 1112,
+ 1112, 1112, 1112, 1135, 1112, 1112, 1112, 1112,
+ 1135, 1223, 1227, 1229, 1224, 1225, 1226, 1112,
+ 1112, 1112, 1112, 1135, 1228, 1112, 1112, 1112,
+ 1112, 1135, 1112, 1112, 1112, 1230, 1112, 1135,
+ 1231, 1112, 1112, 1112, 1232, 1112, 1135, 1112,
+ 1112, 1112, 1233, 1112, 1135, 1234, 1235, 1236,
+ 1237, 1112, 1112, 1112, 1112, 1135, 1239, 1240,
+ 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1112,
+ 1112, 1112, 1112, 1135, 1249, 1250, 1112, 1112,
+ 1112, 1112, 1135, 1252, 1253, 1257, 1112, 1112,
+ 1112, 1112, 1135, 1254, 1255, 1256, 1112, 1112,
+ 1112, 1112, 1135, 1112, 1112, 1112, 1112, 1135,
+ 1259, 1264, 1266, 1268, 1270, 1274, 1260, 1261,
+ 1262, 1263, 1112, 1112, 1112, 1112, 1135, 1265,
+ 1112, 1112, 1112, 1112, 1135, 1267, 1112, 1112,
+ 1112, 1112, 1135, 1269, 1112, 1112, 1112, 1112,
+ 1135, 1271, 1272, 1273, 1112, 1112, 1112, 1112,
+ 1135, 1275, 1276, 1112, 1112, 1112, 1112, 1135,
+ 1278, 1281, 1283, 1279, 1280, 1112, 1112, 1112,
+ 1112, 1135, 1282, 1112, 1112, 1112, 1112, 1135,
+ 1284, 1285, 0, 1286, 1112, 1112, 1112, 1286,
+ 1112, 1135, 1288, 1289, 1112, 1112, 1112, 1112,
+ 1135, 1291, 1292, 1293, 1294, 1295, 1112, 1112,
+ 1112, 1112, 1135, 1297, 1298, 1299, 1300, 1301,
+ 1112, 1112, 1112, 1112, 1135, 1303, 1304, 1522,
+ 1306, 1307, 1307, 1307, 1306, 1307, 1315, 1307,
+ 1307, 1307, 1308, 1307, 1315, 1309, 1309, 1309,
+ 1308, 1309, 1314, 1309, 1309, 1309, 1310, 1309,
+ 1314, 1311, 1311, 1311, 1311, 1313, 1312, 1523,
+ 1313, 1311, 1314, 1309, 1315, 1307, 1317, 1524,
+ 1319, 1320, 1320, 1320, 1319, 1320, 1346, 1320,
+ 1320, 1320, 1321, 1320, 1346, 1322, 1322, 1322,
+ 1321, 1322, 1345, 1322, 1322, 1322, 1323, 1322,
+ 1345, 1324, 1324, 1324, 1323, 1324, 1344, 1324,
+ 1324, 1324, 1325, 1342, 1324, 1344, 1326, 1326,
+ 1326, 1326, 1341, 0, 1326, 1326, 1326, 1327,
+ 1326, 1341, 1328, 1329, 1339, 1330, 1331, 1338,
+ 1332, 1336, 1333, 1334, 1334, 1335, 1327, 1525,
+ 1337, 1340, 1341, 1326, 1343, 1342, 1344, 1324,
+ 1345, 1322, 1346, 1320, 1348, 1349, 1349, 1349,
+ 1348, 1349, 1359, 1349, 1349, 1349, 1350, 1349,
+ 1359, 1351, 1351, 1351, 1350, 1351, 1358, 1351,
+ 1351, 1351, 1352, 1351, 1358, 1353, 1353, 1353,
+ 1352, 1353, 1357, 1353, 1353, 1353, 1354, 1355,
+ 1353, 1357, 1526, 1356, 1355, 1357, 1353, 1358,
+ 1351, 1359, 1349, 1361, 1362, 1362, 1362, 1361,
+ 1362, 1372, 1362, 1362, 1362, 1363, 1362, 1372,
+ 1364, 1364, 1364, 1363, 1364, 1371, 1364, 1364,
+ 1364, 1365, 1364, 1371, 1366, 1366, 1366, 1365,
+ 1366, 1370, 1366, 1366, 1366, 1367, 1366, 1370,
+ 1368, 1368, 1368, 1368, 1368, 1369, 1527, 1528,
+ 1529, 1369, 1368, 1370, 1366, 1371, 1364, 1372,
+ 1362, 1374, 1375, 1375, 1375, 1374, 1375, 1378,
+ 1375, 1375, 1375, 1376, 1375, 1378, 1377, 1376,
+ 1530, 1378, 1375, 1380, 1381, 1381, 1381, 1380,
+ 1381, 1391, 1381, 1381, 1381, 1382, 1381, 1391,
+ 1383, 1383, 1383, 1382, 1383, 1390, 1383, 1383,
+ 1383, 1384, 1383, 1390, 1385, 1385, 1385, 1384,
+ 1385, 1389, 1385, 1385, 1385, 1386, 1385, 1389,
+ 1387, 1387, 1387, 1387, 1387, 1388, 1531, 1532,
+ 1533, 1388, 1387, 1389, 1385, 1390, 1383, 1391,
+ 1381, 1393, 1394, 1394, 1394, 1393, 1394, 1396,
+ 1394, 1394, 1394, 1395, 1394, 1396, 1534, 1395,
+ 1396, 1394, 1398, 1399, 1399, 1399, 1398, 1399,
+ 1409, 1399, 1399, 1399, 1400, 1399, 1409, 1401,
+ 1402, 1403, 0, 1404, 1405, 1406, 1407, 1408,
+ 0, 1535, 1409, 1399, 1411, 1412, 0, 1413,
+ 1414, 1415, 1536, 1417, 1418, 1419, 1420, 1421,
+ 1537, 1423, 1424, 1424, 1424, 1423, 1424, 1429,
+ 1424, 1424, 1424, 1425, 1424, 1429, 1426, 1426,
+ 1426, 1425, 1426, 1428, 1427, 1426, 1426, 1426,
+ 1426, 1428, 1538, 1428, 1426, 1429, 1424, 1431,
+ 1432, 1432, 1432, 1431, 1432, 1437, 1433, 1432,
+ 1432, 1432, 1432, 1437, 1434, 1434, 1434, 1434,
+ 1436, 1435, 1434, 1434, 1434, 1434, 1436, 1539,
+ 1436, 1434, 1437, 1432, 1439, 1440, 1440, 1440,
+ 1439, 1440, 1443, 1440, 1440, 1440, 1441, 1440,
+ 1443, 1442, 1540, 1443, 1440, 0, 1, 190,
+ 1, 1, 198, 1444, 189, 1449, 311, 14,
+ 235, 14, 14, 245, 268, 1452, 283, 1450,
+ 284, 1453, 286, 0, 180, 180, 180, 208,
+ 294, 295, 296, 297, 313, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309,
+ 310, 1447, 312, 0, 201, 208, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 310, 0,
+ 1, 190, 1, 1, 198, 1444, 189, 1449,
+ 311, 1, 1, 1449, 311, 212, 212, 212,
+ 1449, 213, 216, 216, 216, 234, 272, 0,
+ 246, 249, 251, 252, 253, 254, 255, 256,
+ 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 1449
};
static const short _zone_scanner_trans_actions[] = {
- 2709, 0, 5, 7, 631, 802, 802, 802,
- 802, 802, 802, 802, 802, 802, 802, 802,
- 802, 802, 802, 802, 802, 802, 3, 9,
- 3, 9, 2885, 103, 820, 823, 45, 59,
- 57, 55, 0, 61, 817, 826, 413, 0,
- 5, 7, 97, 97, 97, 97, 97, 97,
+ 2742, 0, 5, 7, 637, 808, 808, 808,
+ 808, 808, 808, 808, 808, 808, 808, 808,
+ 808, 808, 808, 808, 808, 808, 808, 3,
+ 9, 3, 9, 2918, 103, 826, 829, 45,
+ 59, 57, 55, 0, 61, 823, 832, 419,
+ 0, 5, 7, 97, 97, 97, 97, 97,
97, 97, 97, 97, 97, 97, 97, 97,
- 97, 97, 97, 3, 9, 2263, 2266, 3393,
- 3397, 0, 0, 0, 3389, 3401, 3409, 5417,
- 5437, 407, 0, 405, 5, 7, 411, 3,
- 9, 421, 448, 2248, 13, 469, 472, 2553,
- 475, 15, 0, 5, 7, 2410, 9, 11,
- 2525, 2257, 409, 11, 463, 13, 430, 436,
- 445, 5412, 3369, 2505, 0, 5, 7, 9,
- 3377, 2254, 448, 11, 2521, 0, 4567, 5,
- 7, 2697, 3017, 3017, 3017, 3017, 3017, 3017,
- 3017, 3017, 3017, 3017, 3017, 3017, 3017, 3017,
- 3017, 3017, 3017, 3, 9, 2251, 2254, 421,
- 448, 6098, 829, 3021, 3025, 4812, 3029, 2260,
- 0, 5, 7, 424, 9, 0, 0, 0,
- 0, 0, 0, 2401, 4297, 4301, 4293, 4305,
- 4309, 5882, 5887, 460, 2509, 2513, 2517, 11,
- 451, 454, 457, 0, 0, 0, 0, 0,
- 0, 2365, 4057, 4061, 4053, 4065, 4069, 5762,
- 5767, 2362, 4037, 4041, 4033, 4045, 4049, 5752,
- 5757, 0, 0, 2320, 3757, 3761, 3753, 3765,
- 3769, 5612, 5617, 0, 0, 0, 2272, 3437,
- 3441, 3433, 3445, 3449, 5452, 5457, 0, 0,
- 0, 2371, 4097, 4101, 4093, 4105, 4109, 5782,
- 5787, 0, 0, 0, 0, 0, 0, 2347,
- 3937, 3941, 3933, 3945, 3949, 5702, 5707, 0,
- 0, 0, 0, 2323, 3777, 3781, 3773, 3785,
- 3789, 5622, 5627, 0, 0, 0, 2344, 3917,
- 3921, 3913, 3925, 3929, 5692, 5697, 2329, 3817,
- 3821, 3813, 3825, 3829, 5642, 5647, 0, 0,
- 0, 0, 0, 2392, 4237, 4241, 4233, 4245,
- 4249, 5852, 5857, 0, 2395, 4257, 4261, 4253,
- 4265, 4269, 5862, 5867, 0, 0, 0, 0,
- 0, 2281, 3497, 3501, 3493, 3505, 3509, 5482,
- 5487, 0, 0, 0, 2407, 4337, 4341, 4333,
- 4345, 4349, 5902, 5907, 0, 0, 101, 808,
- 811, 805, 814, 0, 5, 7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3,
- 9, 0, 0, 0, 0, 0, 0, 2335,
- 3857, 3861, 3853, 3865, 3869, 5662, 5667, 0,
- 0, 0, 2302, 3637, 3641, 3633, 3645, 3649,
- 5552, 5557, 2317, 3737, 3741, 3733, 3745, 3749,
- 5602, 5607, 0, 0, 0, 0, 0, 2383,
- 4177, 4181, 4173, 4185, 4189, 5822, 5827, 0,
- 2386, 4197, 4201, 4193, 4205, 4209, 5832, 5837,
- 0, 2308, 3677, 3681, 3673, 3685, 3689, 5572,
- 5577, 2389, 4217, 4221, 4213, 4225, 4229, 5842,
- 5847, 0, 0, 0, 0, 0, 2284, 3517,
- 3521, 3513, 3525, 3529, 5492, 5497, 2287, 3537,
- 3541, 3533, 3545, 3549, 5502, 5507, 0, 0,
- 0, 0, 0, 0, 2314, 3717, 3721, 3713,
- 3725, 3729, 5592, 5597, 0, 2380, 4157, 4161,
- 4153, 4165, 4169, 5812, 5817, 2269, 3417, 3421,
- 0, 3413, 3425, 3429, 5442, 5447, 0, 2341,
- 3897, 3901, 0, 3893, 3905, 3909, 5682, 5687,
- 2350, 3957, 3961, 0, 3953, 3965, 3969, 5712,
- 5717, 0, 0, 0, 0, 2353, 3977, 3981,
- 3973, 3985, 3989, 5722, 5727, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2368, 4077,
- 4081, 4073, 4085, 4089, 5772, 5777, 0, 0,
- 2278, 3477, 3481, 3473, 3485, 3489, 5472, 5477,
- 0, 0, 0, 2293, 3577, 3581, 3573, 3585,
- 3589, 5522, 5527, 0, 0, 0, 2338, 3877,
- 3881, 3873, 3885, 3889, 5672, 5677, 2299, 3617,
- 3621, 3613, 3625, 3629, 5542, 5547, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 2359, 4017, 4021, 4013, 4025, 4029, 5742, 5747,
- 0, 2275, 3457, 3461, 3453, 3465, 3469, 5462,
- 5467, 0, 2377, 4137, 4141, 4133, 4145, 4149,
- 5802, 5807, 0, 2311, 3697, 3701, 3693, 3705,
- 3709, 5582, 5587, 0, 0, 0, 2332, 3837,
- 3841, 3833, 3845, 3849, 5652, 5657, 0, 0,
- 2404, 4317, 4321, 4313, 4325, 4329, 5892, 5897,
- 0, 0, 0, 0, 0, 2356, 3997, 4001,
- 3993, 4005, 4009, 5732, 5737, 0, 2290, 3557,
- 3561, 3553, 3565, 3569, 5512, 5517, 0, 0,
- 649, 631, 2713, 721, 2861, 2865, 45, 2857,
- 2869, 2873, 4752, 4757, 0, 0, 2398, 4277,
- 4281, 4273, 4285, 4289, 5872, 5877, 0, 0,
- 0, 0, 0, 2374, 4117, 4121, 4113, 4125,
- 4129, 5792, 5797, 11, 463, 0, 5, 7,
- 3, 9, 0, 101, 808, 811, 805, 814,
- 0, 5, 7, 631, 99, 99, 99, 99,
+ 97, 97, 97, 97, 97, 3, 9, 2293,
+ 2296, 3434, 3438, 0, 0, 0, 3430, 3442,
+ 3450, 5508, 5528, 413, 0, 411, 5, 7,
+ 417, 3, 9, 427, 454, 2278, 13, 475,
+ 478, 2586, 481, 15, 0, 5, 7, 2443,
+ 9, 11, 2558, 2287, 415, 11, 469, 13,
+ 436, 442, 451, 5503, 3410, 2538, 0, 5,
+ 7, 9, 3418, 2284, 454, 11, 2554, 0,
+ 4628, 5, 7, 2730, 3050, 3050, 3050, 3050,
+ 3050, 3050, 3050, 3050, 3050, 3050, 3050, 3050,
+ 3050, 3050, 3050, 3050, 3050, 3050, 3, 9,
+ 2281, 2284, 427, 454, 6199, 835, 3054, 3058,
+ 4873, 3062, 2290, 0, 5, 7, 430, 9,
+ 0, 0, 0, 0, 0, 0, 2431, 4338,
+ 4342, 4334, 4346, 4350, 5973, 5978, 466, 2542,
+ 2546, 2550, 11, 457, 460, 463, 0, 0,
+ 0, 0, 0, 0, 2395, 4098, 4102, 4094,
+ 4106, 4110, 5853, 5858, 2392, 4078, 4082, 4074,
+ 4086, 4090, 5843, 5848, 0, 0, 2350, 3798,
+ 3802, 3794, 3806, 3810, 5703, 5708, 0, 0,
+ 0, 2302, 3478, 3482, 3474, 3486, 3490, 5543,
+ 5548, 0, 0, 0, 2401, 4138, 4142, 4134,
+ 4146, 4150, 5873, 5878, 0, 0, 0, 0,
+ 0, 0, 2377, 3978, 3982, 3974, 3986, 3990,
+ 5793, 5798, 0, 0, 0, 0, 2353, 3818,
+ 3822, 3814, 3826, 3830, 5713, 5718, 0, 0,
+ 0, 2374, 3958, 3962, 3954, 3966, 3970, 5783,
+ 5788, 2359, 3858, 3862, 3854, 3866, 3870, 5733,
+ 5738, 0, 0, 0, 0, 0, 2422, 4278,
+ 4282, 4274, 4286, 4290, 5943, 5948, 0, 2425,
+ 4298, 4302, 4294, 4306, 4310, 5953, 5958, 0,
+ 0, 0, 0, 0, 2311, 3538, 3542, 3534,
+ 3546, 3550, 5573, 5578, 0, 0, 0, 2437,
+ 4378, 4382, 4374, 4386, 4390, 5993, 5998, 0,
+ 0, 101, 814, 817, 811, 820, 0, 5,
+ 7, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3, 9, 0, 0, 0,
+ 0, 0, 0, 2365, 3898, 3902, 3894, 3906,
+ 3910, 5753, 5758, 0, 0, 0, 2332, 3678,
+ 3682, 3674, 3686, 3690, 5643, 5648, 2347, 3778,
+ 3782, 3774, 3786, 3790, 5693, 5698, 0, 0,
+ 0, 0, 0, 2413, 4218, 4222, 4214, 4226,
+ 4230, 5913, 5918, 0, 2416, 4238, 4242, 4234,
+ 4246, 4250, 5923, 5928, 0, 2338, 3718, 3722,
+ 3714, 3726, 3730, 5663, 5668, 2419, 4258, 4262,
+ 4254, 4266, 4270, 5933, 5938, 0, 0, 0,
+ 0, 0, 2314, 3558, 3562, 3554, 3566, 3570,
+ 5583, 5588, 2317, 3578, 3582, 3574, 3586, 3590,
+ 5593, 5598, 0, 0, 0, 0, 0, 0,
+ 2344, 3758, 3762, 3754, 3766, 3770, 5683, 5688,
+ 0, 2410, 4198, 4202, 4194, 4206, 4210, 5903,
+ 5908, 2299, 3458, 3462, 0, 3454, 3466, 3470,
+ 5533, 5538, 0, 2371, 3938, 3942, 0, 3934,
+ 3946, 3950, 5773, 5778, 2380, 3998, 4002, 0,
+ 3994, 4006, 4010, 5803, 5808, 0, 0, 0,
+ 0, 2383, 4018, 4022, 4014, 4026, 4030, 5813,
+ 5818, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2398, 4118, 4122, 4114, 4126, 4130,
+ 5863, 5868, 0, 0, 2308, 3518, 3522, 3514,
+ 3526, 3530, 5563, 5568, 0, 0, 0, 2323,
+ 3618, 3622, 3614, 3626, 3630, 5613, 5618, 0,
+ 0, 0, 2368, 3918, 3922, 3914, 3926, 3930,
+ 5763, 5768, 2329, 3658, 3662, 3654, 3666, 3670,
+ 5633, 5638, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2389, 4058, 4062, 4054,
+ 4066, 4070, 5833, 5838, 0, 2305, 3498, 3502,
+ 3494, 3506, 3510, 5553, 5558, 0, 2407, 4178,
+ 4182, 4174, 4186, 4190, 5893, 5898, 0, 2341,
+ 3738, 3742, 3734, 3746, 3750, 5673, 5678, 0,
+ 0, 0, 2362, 3878, 3882, 3874, 3886, 3890,
+ 5743, 5748, 0, 0, 2434, 4358, 4362, 4354,
+ 4366, 4370, 5983, 5988, 0, 0, 0, 0,
+ 0, 2386, 4038, 4042, 4034, 4046, 4050, 5823,
+ 5828, 0, 2320, 3598, 3602, 3594, 3606, 3610,
+ 5603, 5608, 0, 0, 655, 637, 2746, 727,
+ 2894, 2898, 45, 2890, 2902, 2906, 4813, 4818,
+ 0, 0, 2428, 4318, 4322, 4314, 4326, 4330,
+ 5963, 5968, 0, 0, 0, 0, 0, 2440,
+ 4398, 4402, 4394, 4406, 4410, 6003, 6008, 0,
+ 0, 0, 0, 0, 2404, 4158, 4162, 4154,
+ 4166, 4170, 5883, 5888, 11, 469, 0, 5,
+ 7, 3, 9, 0, 101, 814, 817, 811,
+ 820, 0, 5, 7, 637, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 99, 3, 9, 103,
- 820, 823, 45, 59, 57, 55, 0, 61,
- 817, 826, 2889, 45, 59, 57, 55, 0,
- 61, 742, 2929, 2933, 4767, 2925, 2937, 11,
- 463, 11, 463, 95, 91, 91, 91, 0,
- 0, 0, 0, 0, 0, 89, 41, 39,
- 577, 580, 574, 583, 0, 5, 7, 3,
- 9, 11, 0, 463, 4552, 589, 2625, 2633,
- 2617, 2641, 0, 5, 7, 3, 9, 11,
- 463, 2889, 45, 59, 57, 55, 0, 61,
- 742, 2929, 2933, 4767, 2925, 2937, 11, 463,
- 2685, 2653, 4507, 4522, 4492, 4537, 5966, 5990,
- 0, 5, 7, 3, 9, 421, 448, 3385,
- 3405, 5422, 5427, 6182, 5432, 6354, 6194, 6347,
- 6188, 0, 5, 7, 424, 2457, 0, 5,
- 7, 424, 9, 11, 2521, 478, 2529, 2537,
- 4402, 2545, 11, 427, 433, 442, 0, 5,
- 7, 9, 448, 11, 2521, 3361, 0, 0,
- 0, 0, 0, 83, 0, 0, 79, 2677,
- 586, 2621, 2629, 4482, 2637, 6242, 2645, 4497,
- 4512, 5960, 4527, 0, 5, 7, 424, 9,
- 11, 2521, 4557, 4542, 5972, 5978, 6228, 5984,
- 6377, 6235, 0, 5, 7, 424, 2457, 2649,
- 598, 4502, 4517, 4487, 4532, 13, 430, 436,
- 2429, 445, 460, 4377, 2509, 2513, 2517, 11,
- 451, 454, 457, 460, 2509, 2513, 2517, 11,
- 451, 454, 457, 0, 0, 2305, 3657, 3661,
- 3653, 3665, 3669, 5562, 5567, 0, 0, 0,
- 2296, 3597, 3601, 3593, 3605, 3609, 5532, 5537,
- 0, 2326, 3797, 3801, 3793, 3805, 3809, 5632,
- 5637, 11, 463, 478, 2529, 2537, 4412, 11,
- 427, 433, 4353, 460, 2509, 2513, 11, 451,
- 454, 460, 2509, 2513, 11, 451, 454, 11,
- 463, 13, 430, 436, 445, 2505, 460, 2509,
- 2513, 11, 451, 454, 601, 11, 463, 11,
- 463, 11, 2521, 0, 496, 3, 7, 490,
- 2557, 17, 493, 31, 2581, 29, 0, 529,
- 2561, 21, 23, 0, 520, 499, 19, 502,
- 511, 25, 25, 4422, 505, 508, 27, 526,
- 763, 67, 0, 0, 772, 775, 2953, 73,
- 2949, 766, 71, 71, 2941, 2945, 4772, 769,
- 67, 67, 0, 0, 775, 775, 73, 73,
- 69, 1, 766, 71, 71, 2945, 2945, 769,
- 769, 77, 0, 5, 7, 3, 9, 634,
- 631, 4762, 13, 469, 472, 45, 59, 57,
- 55, 0, 61, 4407, 475, 484, 0, 5,
- 7, 2961, 9, 11, 4387, 2889, 2877, 45,
- 59, 57, 55, 0, 61, 736, 2893, 2897,
- 4767, 6104, 2901, 11, 463, 81, 0, 5,
- 7, 3, 9, 4777, 784, 2965, 21, 23,
- 0, 487, 523, 2565, 2569, 499, 19, 5912,
- 2573, 0, 5, 7, 2969, 9, 11, 4392,
- 502, 514, 25, 25, 505, 508, 27, 11,
- 463, 0, 5, 7, 3, 9, 787, 85,
- 793, 790, 2973, 2977, 6110, 2985, 2981, 799,
- 0, 5, 7, 4782, 796, 2989, 2993, 9,
- 9, 87, 21, 23, 0, 2577, 4427, 4432,
- 499, 19, 6200, 4437, 0, 5, 7, 11,
- 4397, 502, 517, 25, 25, 505, 508, 27,
- 11, 4382, 0, 5, 7, 3, 9, 11,
- 463, 11, 463, 127, 119, 121, 123, 0,
- 125, 0, 5, 7, 3, 9, 1, 418,
- 439, 11, 463, 363, 361, 2125, 2128, 2122,
- 2131, 3321, 5377, 5382, 0, 5, 7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 9, 2134, 2445, 2493, 265, 1549, 1552,
- 0, 0, 0, 1546, 1555, 3129, 4897, 4902,
- 0, 0, 291, 1705, 1708, 1702, 1711, 3181,
- 5027, 5032, 11, 463, 0, 0, 0, 0,
- 0, 0, 355, 2089, 2092, 2086, 2095, 3309,
- 5347, 5352, 0, 0, 0, 0, 0, 0,
- 331, 1945, 1948, 1942, 1951, 3261, 5227, 5232,
- 329, 1933, 1936, 1930, 1939, 3257, 5217, 5222,
- 0, 0, 301, 1765, 1768, 1762, 1771, 3201,
- 5077, 5082, 0, 0, 0, 269, 1573, 1576,
- 1570, 1579, 3137, 4917, 4922, 0, 0, 0,
- 335, 1969, 1972, 1966, 1975, 3269, 5247, 5252,
- 0, 0, 0, 0, 0, 0, 319, 1873,
- 1876, 1870, 1879, 3237, 5167, 5172, 0, 0,
- 0, 0, 303, 1777, 1780, 1774, 1783, 3205,
- 5087, 5092, 0, 0, 0, 317, 1861, 1864,
- 1858, 1867, 3233, 5157, 5162, 307, 1801, 1804,
- 1798, 1807, 3213, 5107, 5112, 0, 0, 0,
- 0, 0, 349, 2053, 2056, 2050, 2059, 3297,
- 5317, 5322, 0, 351, 2065, 2068, 2062, 2071,
- 3301, 5327, 5332, 0, 0, 0, 0, 0,
- 275, 1609, 1612, 1606, 1615, 3149, 4947, 4952,
- 0, 0, 0, 359, 2113, 2116, 2110, 2119,
- 3317, 5367, 5372, 0, 0, 0, 0, 0,
- 0, 0, 311, 1825, 1828, 1822, 1831, 3221,
- 5127, 5132, 0, 0, 0, 289, 1693, 1696,
- 1690, 1699, 3177, 5017, 5022, 299, 1753, 1756,
- 1750, 1759, 3197, 5067, 5072, 0, 0, 0,
- 0, 0, 343, 2017, 2020, 2014, 2023, 3285,
- 5287, 5292, 0, 345, 2029, 2032, 2026, 2035,
- 3289, 5297, 5302, 0, 293, 1717, 1720, 1714,
- 1723, 3185, 5037, 5042, 347, 2041, 2044, 2038,
- 2047, 3293, 5307, 5312, 0, 0, 0, 0,
- 0, 277, 1621, 1624, 1618, 1627, 3153, 4957,
- 4962, 279, 1633, 1636, 1630, 1639, 3157, 4967,
- 4972, 0, 0, 0, 0, 0, 0, 297,
- 1741, 1744, 1738, 1747, 3193, 5057, 5062, 0,
- 341, 2005, 2008, 2002, 2011, 3281, 5277, 5282,
- 267, 1561, 1564, 0, 1558, 1567, 3133, 4907,
- 4912, 0, 315, 1849, 1852, 0, 1846, 1855,
- 3229, 5147, 5152, 321, 1885, 1888, 0, 1882,
- 1891, 3241, 5177, 5182, 0, 0, 0, 0,
- 323, 1897, 1900, 1894, 1903, 3245, 5187, 5192,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 333, 1957, 1960, 1954, 1963, 3265, 5237,
- 5242, 0, 0, 273, 1597, 1600, 1594, 1603,
- 3145, 4937, 4942, 0, 0, 0, 283, 1657,
- 1660, 1654, 1663, 3165, 4987, 4992, 0, 0,
- 0, 313, 1837, 1840, 1834, 1843, 3225, 5137,
- 5142, 287, 1681, 1684, 1678, 1687, 3173, 5007,
- 5012, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 327, 1921, 1924, 1918, 1927,
- 3253, 5207, 5212, 0, 271, 1585, 1588, 1582,
- 1591, 3141, 4927, 4932, 0, 339, 1993, 1996,
- 1990, 1999, 3277, 5267, 5272, 0, 295, 1729,
- 1732, 1726, 1735, 3189, 5047, 5052, 0, 0,
- 0, 309, 1813, 1816, 1810, 1819, 3217, 5117,
- 5122, 0, 0, 357, 2101, 2104, 2098, 2107,
- 3313, 5357, 5362, 0, 0, 0, 0, 0,
- 325, 1909, 1912, 1906, 1915, 3249, 5197, 5202,
- 0, 281, 1645, 1648, 1642, 1651, 3161, 4977,
- 4982, 0, 0, 631, 263, 1537, 1540, 45,
- 1534, 1543, 3125, 4887, 4892, 0, 0, 353,
- 2077, 2080, 2074, 2083, 3305, 5337, 5342, 0,
- 0, 0, 0, 0, 337, 1981, 1984, 1978,
- 1987, 3273, 5257, 5262, 0, 0, 0, 285,
- 1669, 1672, 1666, 1675, 3169, 4997, 5002, 0,
- 305, 1789, 1792, 1786, 1795, 3209, 5097, 5102,
- 377, 0, 5, 7, 3, 9, 637, 631,
- 53, 727, 730, 45, 724, 733, 3109, 0,
+ 99, 99, 99, 99, 99, 99, 99, 3,
+ 9, 103, 826, 829, 45, 59, 57, 55,
+ 0, 61, 823, 832, 2922, 45, 59, 57,
+ 55, 0, 61, 748, 2962, 2966, 4828, 2958,
+ 2970, 11, 469, 11, 469, 95, 91, 91,
+ 91, 0, 0, 0, 0, 0, 0, 89,
+ 41, 39, 583, 586, 580, 589, 0, 5,
+ 7, 3, 9, 11, 0, 469, 4613, 595,
+ 2658, 2666, 2650, 2674, 0, 5, 7, 3,
+ 9, 11, 469, 2922, 45, 59, 57, 55,
+ 0, 61, 748, 2962, 2966, 4828, 2958, 2970,
+ 11, 469, 2718, 2686, 4568, 4583, 4553, 4598,
+ 6067, 6091, 0, 5, 7, 3, 9, 427,
+ 454, 3426, 3446, 5513, 5518, 6289, 5523, 6475,
+ 6301, 6468, 6295, 0, 5, 7, 430, 2490,
+ 0, 5, 7, 430, 9, 11, 2554, 484,
+ 2562, 2570, 4463, 2578, 11, 433, 439, 448,
+ 0, 5, 7, 9, 454, 11, 2554, 3402,
+ 0, 0, 0, 0, 0, 83, 0, 0,
+ 79, 2710, 592, 2654, 2662, 4543, 2670, 6349,
+ 2678, 4558, 4573, 6061, 4588, 0, 5, 7,
+ 430, 9, 11, 2554, 4618, 4603, 6073, 6079,
+ 6335, 6085, 6498, 6342, 0, 5, 7, 430,
+ 2490, 2682, 604, 4563, 4578, 4548, 4593, 13,
+ 436, 442, 2462, 451, 466, 4438, 2542, 2546,
+ 2550, 11, 457, 460, 463, 466, 2542, 2546,
+ 2550, 11, 457, 460, 463, 0, 0, 2335,
+ 3698, 3702, 3694, 3706, 3710, 5653, 5658, 0,
+ 0, 0, 2326, 3638, 3642, 3634, 3646, 3650,
+ 5623, 5628, 0, 2356, 3838, 3842, 3834, 3846,
+ 3850, 5723, 5728, 11, 469, 484, 2562, 2570,
+ 4473, 11, 433, 439, 4414, 466, 2542, 2546,
+ 11, 457, 460, 466, 2542, 2546, 11, 457,
+ 460, 11, 469, 13, 436, 442, 451, 2538,
+ 466, 2542, 2546, 11, 457, 460, 607, 11,
+ 469, 11, 469, 11, 2554, 0, 502, 3,
+ 7, 496, 2590, 17, 499, 31, 2614, 29,
+ 0, 535, 2594, 21, 23, 0, 526, 505,
+ 19, 508, 517, 25, 25, 4483, 511, 514,
+ 27, 532, 769, 67, 0, 0, 778, 781,
+ 2986, 73, 2982, 772, 71, 71, 2974, 2978,
+ 4833, 775, 67, 67, 0, 0, 781, 781,
+ 73, 73, 69, 1, 772, 71, 71, 2978,
+ 2978, 775, 775, 77, 0, 5, 7, 3,
+ 9, 640, 637, 4823, 13, 475, 478, 45,
+ 59, 57, 55, 0, 61, 4468, 481, 490,
+ 0, 5, 7, 2994, 9, 11, 4448, 2922,
+ 2910, 45, 59, 57, 55, 0, 61, 742,
+ 2926, 2930, 4828, 6205, 2934, 11, 469, 81,
+ 0, 5, 7, 3, 9, 4838, 790, 2998,
+ 21, 23, 0, 493, 529, 2598, 2602, 505,
+ 19, 6013, 2606, 0, 5, 7, 3002, 9,
+ 11, 4453, 508, 520, 25, 25, 511, 514,
+ 27, 11, 469, 0, 5, 7, 3, 9,
+ 793, 85, 799, 796, 3006, 3010, 6211, 3018,
+ 3014, 805, 0, 5, 7, 4843, 802, 3022,
+ 3026, 9, 9, 87, 21, 23, 0, 2610,
+ 4488, 4493, 505, 19, 6307, 4498, 0, 5,
+ 7, 11, 4458, 508, 523, 25, 25, 511,
+ 514, 27, 11, 4443, 0, 5, 7, 3,
+ 9, 11, 469, 11, 469, 127, 119, 121,
+ 123, 0, 125, 0, 5, 7, 3, 9,
+ 1, 424, 445, 11, 469, 369, 367, 2155,
+ 2158, 2152, 2161, 3362, 5468, 5473, 0, 5,
+ 7, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3, 9, 2164, 2478, 2526,
+ 269, 1567, 1570, 0, 0, 0, 1564, 1573,
+ 3166, 4978, 4983, 0, 0, 295, 1723, 1726,
+ 1720, 1729, 3218, 5108, 5113, 11, 469, 0,
+ 0, 0, 0, 0, 0, 359, 2107, 2110,
+ 2104, 2113, 3346, 5428, 5433, 0, 0, 0,
+ 0, 0, 0, 335, 1963, 1966, 1960, 1969,
+ 3298, 5308, 5313, 333, 1951, 1954, 1948, 1957,
+ 3294, 5298, 5303, 0, 0, 305, 1783, 1786,
+ 1780, 1789, 3238, 5158, 5163, 0, 0, 0,
+ 273, 1591, 1594, 1588, 1597, 3174, 4998, 5003,
+ 0, 0, 0, 339, 1987, 1990, 1984, 1993,
+ 3306, 5328, 5333, 0, 0, 0, 0, 0,
+ 0, 323, 1891, 1894, 1888, 1897, 3274, 5248,
+ 5253, 0, 0, 0, 0, 307, 1795, 1798,
+ 1792, 1801, 3242, 5168, 5173, 0, 0, 0,
+ 321, 1879, 1882, 1876, 1885, 3270, 5238, 5243,
+ 311, 1819, 1822, 1816, 1825, 3250, 5188, 5193,
+ 0, 0, 0, 0, 0, 353, 2071, 2074,
+ 2068, 2077, 3334, 5398, 5403, 0, 355, 2083,
+ 2086, 2080, 2089, 3338, 5408, 5413, 0, 0,
+ 0, 0, 0, 279, 1627, 1630, 1624, 1633,
+ 3186, 5028, 5033, 0, 0, 0, 363, 2131,
+ 2134, 2128, 2137, 3354, 5448, 5453, 0, 0,
+ 0, 0, 0, 0, 0, 315, 1843, 1846,
+ 1840, 1849, 3258, 5208, 5213, 0, 0, 0,
+ 293, 1711, 1714, 1708, 1717, 3214, 5098, 5103,
+ 303, 1771, 1774, 1768, 1777, 3234, 5148, 5153,
+ 0, 0, 0, 0, 0, 347, 2035, 2038,
+ 2032, 2041, 3322, 5368, 5373, 0, 349, 2047,
+ 2050, 2044, 2053, 3326, 5378, 5383, 0, 297,
+ 1735, 1738, 1732, 1741, 3222, 5118, 5123, 351,
+ 2059, 2062, 2056, 2065, 3330, 5388, 5393, 0,
+ 0, 0, 0, 0, 281, 1639, 1642, 1636,
+ 1645, 3190, 5038, 5043, 283, 1651, 1654, 1648,
+ 1657, 3194, 5048, 5053, 0, 0, 0, 0,
+ 0, 0, 301, 1759, 1762, 1756, 1765, 3230,
+ 5138, 5143, 0, 345, 2023, 2026, 2020, 2029,
+ 3318, 5358, 5363, 271, 1579, 1582, 0, 1576,
+ 1585, 3170, 4988, 4993, 0, 319, 1867, 1870,
+ 0, 1864, 1873, 3266, 5228, 5233, 325, 1903,
+ 1906, 0, 1900, 1909, 3278, 5258, 5263, 0,
+ 0, 0, 0, 327, 1915, 1918, 1912, 1921,
+ 3282, 5268, 5273, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 337, 1975, 1978, 1972,
+ 1981, 3302, 5318, 5323, 0, 0, 277, 1615,
+ 1618, 1612, 1621, 3182, 5018, 5023, 0, 0,
+ 0, 287, 1675, 1678, 1672, 1681, 3202, 5068,
+ 5073, 0, 0, 0, 317, 1855, 1858, 1852,
+ 1861, 3262, 5218, 5223, 291, 1699, 1702, 1696,
+ 1705, 3210, 5088, 5093, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 331, 1939,
+ 1942, 1936, 1945, 3290, 5288, 5293, 0, 275,
+ 1603, 1606, 1600, 1609, 3178, 5008, 5013, 0,
+ 343, 2011, 2014, 2008, 2017, 3314, 5348, 5353,
+ 0, 299, 1747, 1750, 1744, 1753, 3226, 5128,
+ 5133, 0, 0, 0, 313, 1831, 1834, 1828,
+ 1837, 3254, 5198, 5203, 0, 0, 361, 2119,
+ 2122, 2116, 2125, 3350, 5438, 5443, 0, 0,
+ 0, 0, 0, 329, 1927, 1930, 1924, 1933,
+ 3286, 5278, 5283, 0, 285, 1663, 1666, 1660,
+ 1669, 3198, 5058, 5063, 0, 0, 637, 267,
+ 1555, 1558, 45, 1552, 1561, 3162, 4968, 4973,
+ 0, 0, 357, 2095, 2098, 2092, 2101, 3342,
+ 5418, 5423, 0, 0, 0, 0, 0, 365,
+ 2143, 2146, 2140, 2149, 3358, 5458, 5463, 0,
+ 0, 0, 0, 0, 341, 1999, 2002, 1996,
+ 2005, 3310, 5338, 5343, 0, 0, 0, 289,
+ 1687, 1690, 1684, 1693, 3206, 5078, 5083, 0,
+ 309, 1807, 1810, 1804, 1813, 3246, 5178, 5183,
+ 383, 0, 5, 7, 3, 9, 643, 637,
+ 53, 733, 736, 45, 730, 739, 3142, 0,
5, 7, 115, 3, 9, 117, 0, 5,
- 7, 3, 9, 865, 2441, 2489, 11, 463,
- 11, 463, 11, 463, 0, 5, 7, 3,
- 9, 631, 631, 415, 2417, 2421, 45, 1,
- 2413, 2425, 0, 5, 7, 115, 3, 9,
- 117, 0, 5, 7, 3, 9, 865, 2441,
- 2489, 11, 463, 11, 463, 53, 727, 730,
- 724, 733, 11, 463, 387, 393, 393, 393,
- 393, 393, 393, 0, 0, 0, 919, 0,
- 0, 931, 0, 0, 0, 0, 0, 0,
- 0, 0, 928, 0, 0, 0, 0, 934,
- 0, 0, 643, 631, 685, 45, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 922, 0, 0, 0,
- 925, 385, 383, 2224, 2227, 2221, 2230, 3349,
- 5387, 5392, 0, 5, 7, 389, 389, 389,
- 389, 389, 389, 389, 3, 9, 2233, 2453,
- 2501, 0, 0, 0, 157, 5407, 5407, 4452,
- 5924, 5930, 5918, 5936, 6207, 6361, 6369, 11,
- 463, 0, 0, 163, 0, 562, 562, 121,
- 123, 0, 125, 0, 37, 119, 391, 2239,
- 2242, 2236, 2245, 3353, 5397, 5402, 121, 123,
- 0, 125, 0, 565, 2601, 2605, 119, 2597,
- 2609, 4457, 5942, 5948, 0, 0, 0, 0,
- 0, 0, 0, 0, 161, 835, 0, 2593,
- 2593, 3061, 841, 105, 832, 4832, 6128, 6134,
- 841, 105, 6122, 6140, 6319, 6385, 6393, 832,
- 0, 0, 0, 0, 165, 0, 2593, 2593,
- 3085, 844, 105, 832, 4847, 6152, 6158, 844,
- 105, 6146, 6164, 6326, 6401, 6409, 832, 0,
- 0, 640, 631, 2837, 4732, 4737, 45, 49,
- 4727, 4742, 6080, 6305, 6312, 559, 0, 0,
- 0, 0, 0, 0, 0, 0, 155, 0,
- 3357, 3357, 568, 0, 395, 2613, 4467, 4472,
- 0, 4462, 4477, 5954, 6214, 6221, 395, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 3117, 4867, 4872,
- 4862, 4877, 6170, 6333, 6340, 0, 0, 0,
- 159, 0, 4882, 4882, 49, 45, 703, 2845,
- 2849, 45, 2841, 2853, 4747, 6086, 6092, 5407,
- 2589, 397, 631, 0, 0, 0, 0, 0,
- 670, 45, 0, 0, 874, 0, 877, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 883, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 895, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 898, 0, 0, 0, 0, 0,
- 0, 0, 0, 901, 0, 0, 0, 0,
- 0, 0, 904, 0, 0, 907, 0, 0,
- 0, 0, 0, 0, 0, 910, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 913, 0, 0, 916, 0, 0, 0, 0,
- 0, 0, 871, 0, 0, 0, 0, 0,
- 880, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 886, 0, 0, 889,
- 0, 0, 892, 399, 631, 0, 0, 0,
- 0, 0, 0, 685, 45, 0, 0, 0,
+ 7, 3, 9, 871, 2474, 2522, 11, 469,
+ 11, 469, 11, 469, 0, 5, 7, 3,
+ 9, 637, 637, 421, 2450, 2454, 45, 1,
+ 2446, 2458, 0, 5, 7, 115, 3, 9,
+ 117, 0, 5, 7, 3, 9, 871, 2474,
+ 2522, 11, 469, 11, 469, 53, 733, 736,
+ 730, 739, 11, 469, 393, 399, 399, 399,
+ 399, 399, 399, 399, 399, 0, 0, 0,
+ 925, 0, 0, 0, 0, 0, 0, 943,
0, 0, 937, 0, 0, 0, 0, 0,
- 0, 0, 0, 940, 0, 0, 0, 934,
- 0, 0, 928, 0, 0, 0, 931, 0,
- 0, 946, 0, 0, 0, 925, 0, 0,
- 919, 0, 0, 0, 922, 0, 0, 943,
- 838, 832, 3041, 105, 604, 607, 604, 43,
- 613, 616, 610, 619, 0, 5, 7, 604,
- 3, 9, 43, 613, 616, 610, 619, 646,
- 0, 5, 7, 631, 3, 9, 51, 712,
- 715, 45, 709, 718, 0, 5, 7, 631,
- 3, 9, 2881, 51, 712, 715, 45, 59,
- 57, 55, 0, 61, 709, 718, 0, 5,
- 7, 631, 3, 9, 51, 712, 715, 45,
- 59, 57, 55, 0, 61, 709, 718, 0,
- 5, 7, 631, 3, 9, 51, 712, 715,
- 45, 59, 57, 55, 0, 61, 709, 718,
- 0, 5, 7, 631, 3, 9, 706, 45,
- 59, 57, 55, 0, 61, 2889, 45, 59,
- 57, 55, 0, 61, 2905, 4767, 11, 463,
- 2889, 45, 59, 57, 55, 0, 61, 739,
- 2913, 2917, 4767, 2909, 2921, 11, 463, 2889,
- 45, 59, 57, 55, 0, 61, 739, 2913,
- 2917, 4767, 2909, 2921, 11, 463, 2889, 45,
- 59, 57, 55, 0, 61, 739, 2913, 2917,
- 4767, 2909, 2921, 11, 463, 11, 463, 11,
- 463, 532, 35, 547, 550, 544, 553, 532,
- 0, 5, 7, 3, 9, 541, 11, 463,
- 604, 43, 613, 616, 610, 619, 0, 5,
- 7, 604, 3, 9, 607, 11, 463, 631,
- 49, 691, 694, 45, 688, 697, 0, 5,
- 7, 604, 3, 9, 607, 11, 463, 2957,
- 781, 35, 547, 550, 544, 553, 2585, 4442,
- 4447, 532, 0, 5, 7, 3, 9, 778,
- 2437, 2485, 11, 463, 832, 3065, 105, 2212,
- 3325, 365, 2140, 2143, 45, 2137, 2146, 0,
- 5, 7, 631, 0, 0, 3, 9, 369,
- 2164, 2167, 45, 2161, 2170, 0, 5, 7,
- 4722, 3, 9, 652, 2745, 2749, 0, 45,
- 2741, 2753, 0, 5, 7, 3, 9, 0,
- 5, 7, 3, 9, 631, 367, 2152, 2155,
- 45, 2149, 2158, 0, 5, 7, 631, 0,
- 0, 3, 9, 371, 2176, 2179, 45, 2173,
- 2182, 0, 5, 7, 4722, 3, 9, 655,
- 2761, 2765, 0, 45, 2757, 2769, 0, 5,
- 7, 3, 9, 0, 5, 7, 3, 9,
- 0, 4717, 6176, 658, 2777, 2781, 0, 45,
- 658, 2773, 2785, 4697, 6032, 6038, 0, 5,
- 7, 4717, 3, 9, 2209, 2449, 2497, 661,
- 2793, 2797, 0, 45, 661, 2789, 2801, 4702,
- 6044, 6050, 0, 5, 7, 4717, 3, 9,
- 2449, 2497, 664, 2809, 2813, 0, 45, 664,
- 2805, 2817, 4707, 6056, 6062, 0, 5, 7,
- 4717, 3, 9, 2449, 2497, 667, 2825, 2829,
- 0, 45, 2821, 2833, 4712, 6068, 6074, 0,
- 5, 7, 3, 9, 2449, 2497, 11, 463,
- 2737, 4682, 4687, 4572, 4677, 4692, 6026, 6291,
- 6298, 628, 11, 463, 2733, 4662, 4667, 4572,
- 2733, 4657, 4672, 6020, 6277, 6284, 628, 11,
- 463, 2729, 4642, 4647, 4572, 2729, 4637, 4652,
- 6014, 6263, 6270, 628, 11, 463, 2725, 4622,
- 4627, 4572, 2725, 4617, 4632, 6008, 6249, 6256,
- 628, 11, 463, 375, 2200, 2203, 2197, 2206,
- 11, 463, 2721, 4602, 4607, 4572, 4597, 4612,
- 628, 11, 463, 11, 463, 11, 463, 373,
- 2188, 2191, 2185, 2194, 11, 463, 2717, 4582,
- 4587, 4572, 4577, 4592, 628, 11, 463, 11,
- 463, 631, 49, 691, 694, 45, 688, 697,
- 0, 5, 7, 631, 3, 9, 49, 691,
- 694, 45, 688, 697, 0, 5, 7, 631,
- 3, 9, 49, 691, 694, 45, 688, 697,
- 0, 5, 7, 604, 3, 9, 607, 11,
- 463, 11, 463, 11, 463, 631, 49, 691,
- 694, 45, 688, 697, 0, 5, 7, 631,
- 3, 9, 49, 691, 694, 45, 688, 697,
- 532, 0, 5, 7, 3, 9, 35, 547,
- 550, 544, 553, 532, 0, 5, 7, 3,
- 9, 35, 547, 550, 544, 553, 532, 0,
- 5, 7, 3, 9, 35, 547, 550, 544,
- 553, 0, 5, 7, 604, 3, 9, 607,
- 11, 463, 11, 463, 11, 463, 11, 463,
- 11, 463, 403, 0, 5, 7, 3, 9,
- 631, 49, 691, 694, 45, 688, 697, 0,
- 5, 7, 401, 3, 9, 0, 5, 7,
- 3, 9, 129, 1, 11, 463, 11, 463,
- 11, 463, 859, 0, 847, 5, 7, 850,
- 853, 3, 9, 1, 418, 439, 111, 113,
- 0, 3033, 832, 105, 107, 631, 856, 3097,
- 3101, 45, 3093, 3105, 3089, 4852, 4857, 11,
- 463, 0, 832, 105, 109, 631, 49, 691,
- 694, 45, 688, 697, 0, 5, 7, 401,
- 3, 9, 0, 5, 7, 3, 9, 631,
- 47, 676, 679, 45, 673, 682, 862, 0,
- 5, 7, 115, 3, 9, 117, 0, 5,
- 7, 3, 9, 1, 418, 439, 11, 463,
- 11, 463, 11, 463, 11, 463, 631, 47,
- 676, 679, 45, 673, 682, 0, 5, 7,
- 631, 3, 9, 47, 676, 679, 45, 673,
- 682, 0, 5, 7, 115, 3, 9, 117,
- 0, 5, 7, 3, 9, 1, 418, 439,
- 11, 463, 11, 463, 11, 463, 631, 47,
- 676, 679, 45, 673, 682, 949, 0, 5,
- 7, 147, 149, 151, 153, 3, 9, 0,
- 5, 7, 3, 9, 2701, 631, 47, 676,
- 679, 45, 673, 682, 0, 5, 7, 0,
- 3, 9, 3121, 0, 5, 7, 0, 5,
- 7, 0, 5, 7, 1, 3, 9, 418,
- 439, 3, 9, 418, 439, 3, 9, 418,
- 439, 952, 129, 11, 463, 11, 463, 11,
- 463, 11, 463, 11, 463, 0, 5, 7,
- 3, 9, 631, 47, 676, 679, 45, 673,
- 682, 3037, 0, 5, 7, 832, 3, 9,
- 4817, 105, 841, 3049, 3053, 841, 3049, 3053,
- 841, 3049, 3053, 3041, 3045, 3057, 4822, 4827,
- 3045, 3057, 4822, 4827, 3045, 3057, 4822, 4827,
- 11, 463, 11, 463, 0, 5, 7, 3,
- 9, 631, 47, 676, 679, 45, 673, 682,
- 0, 5, 7, 832, 3, 9, 105, 844,
- 3073, 3077, 844, 3073, 3077, 844, 3073, 3077,
- 3065, 3069, 3081, 4837, 4842, 3069, 3081, 4837,
- 4842, 3069, 3081, 4837, 4842, 11, 463, 11,
- 463, 0, 5, 7, 3, 9, 631, 47,
- 676, 679, 45, 673, 682, 0, 5, 7,
- 604, 3, 9, 43, 613, 616, 43, 613,
- 616, 43, 613, 616, 607, 610, 619, 2689,
- 2693, 610, 619, 2689, 2693, 610, 619, 2689,
- 2693, 11, 463, 11, 463, 11, 463, 955,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 167, 961, 964, 0, 0, 0, 958,
- 967, 0, 5, 7, 401, 3, 9, 0,
- 5, 7, 3, 9, 631, 47, 676, 679,
- 45, 673, 682, 0, 5, 7, 631, 3,
- 9, 51, 712, 715, 45, 709, 718, 760,
- 0, 5, 7, 745, 3, 9, 65, 751,
- 754, 63, 748, 757, 0, 5, 7, 745,
- 3, 9, 65, 751, 754, 63, 748, 757,
- 0, 5, 7, 631, 3, 9, 49, 691,
- 694, 45, 688, 697, 0, 5, 7, 604,
- 3, 9, 43, 613, 616, 610, 619, 0,
- 5, 7, 129, 3, 9, 1, 11, 463,
- 11, 463, 11, 463, 11, 463, 11, 463,
- 11, 463, 11, 463, 11, 463, 0, 0,
- 193, 1117, 1120, 1114, 1123, 0, 0, 0,
- 187, 1081, 1084, 1078, 1087, 0, 207, 1201,
- 1204, 1198, 1207, 0, 0, 0, 0, 0,
- 0, 257, 1501, 1504, 1498, 1507, 0, 0,
- 0, 0, 0, 0, 233, 1357, 1360, 1354,
- 1363, 231, 1345, 1348, 1342, 1351, 0, 0,
- 203, 1177, 1180, 1174, 1183, 0, 0, 0,
- 171, 985, 988, 982, 991, 0, 0, 0,
- 237, 1381, 1384, 1378, 1387, 0, 0, 0,
- 0, 0, 0, 221, 1285, 1288, 1282, 1291,
- 0, 0, 0, 0, 205, 1189, 1192, 1186,
- 1195, 0, 0, 0, 219, 1273, 1276, 1270,
- 1279, 209, 1213, 1216, 1210, 1219, 0, 0,
- 0, 0, 0, 251, 1465, 1468, 1462, 1471,
- 0, 253, 1477, 1480, 1474, 1483, 0, 0,
- 0, 0, 0, 177, 1021, 1024, 1018, 1027,
- 0, 0, 0, 261, 1525, 1528, 1522, 1531,
- 0, 0, 0, 0, 0, 0, 0, 213,
- 1237, 1240, 1234, 1243, 0, 0, 0, 191,
- 1105, 1108, 1102, 1111, 201, 1165, 1168, 1162,
- 1171, 0, 0, 0, 0, 0, 245, 1429,
- 1432, 1426, 1435, 0, 247, 1441, 1444, 1438,
- 1447, 0, 195, 1129, 1132, 1126, 1135, 249,
- 1453, 1456, 1450, 1459, 0, 0, 0, 0,
- 0, 179, 1033, 1036, 1030, 1039, 181, 1045,
- 1048, 1042, 1051, 0, 0, 0, 0, 0,
- 0, 199, 1153, 1156, 1150, 1159, 0, 243,
- 1417, 1420, 1414, 1423, 169, 973, 976, 0,
- 970, 979, 0, 217, 1261, 1264, 0, 1258,
- 1267, 223, 1297, 1300, 0, 1294, 1303, 0,
- 0, 0, 0, 225, 1309, 1312, 1306, 1315,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 235, 1369, 1372, 1366, 1375, 0, 0,
- 175, 1009, 1012, 1006, 1015, 0, 0, 0,
- 185, 1069, 1072, 1066, 1075, 0, 0, 0,
- 215, 1249, 1252, 1246, 1255, 189, 1093, 1096,
- 1090, 1099, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 229, 1333, 1336, 1330,
- 1339, 0, 173, 997, 1000, 994, 1003, 0,
- 241, 1405, 1408, 1402, 1411, 0, 197, 1141,
- 1144, 1138, 1147, 0, 0, 0, 211, 1225,
- 1228, 1222, 1231, 0, 0, 259, 1513, 1516,
- 1510, 1519, 0, 0, 0, 0, 0, 227,
- 1321, 1324, 1318, 1327, 0, 183, 1057, 1060,
- 1054, 1063, 0, 0, 2705, 631, 49, 691,
- 694, 45, 688, 697, 0, 0, 255, 1489,
- 1492, 1486, 1495, 0, 0, 0, 0, 0,
- 239, 1393, 1396, 1390, 1399, 604, 622, 1,
- 631, 49, 691, 694, 45, 688, 697, 0,
- 5, 7, 631, 3, 9, 47, 676, 679,
- 45, 673, 682, 0, 5, 7, 401, 3,
+ 0, 0, 0, 934, 0, 0, 0, 0,
+ 940, 0, 0, 649, 637, 691, 45, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 928, 0, 0,
+ 0, 0, 946, 0, 0, 0, 931, 391,
+ 389, 2254, 2257, 2251, 2260, 3390, 5478, 5483,
+ 0, 5, 7, 395, 395, 395, 395, 395,
+ 395, 395, 395, 395, 3, 9, 2263, 2486,
+ 2534, 0, 0, 0, 157, 5498, 5498, 4513,
+ 6025, 6031, 6019, 6037, 6314, 6482, 6490, 11,
+ 469, 0, 0, 0, 0, 0, 0, 167,
+ 565, 565, 571, 2634, 2638, 2630, 2642, 4518,
+ 6043, 6049, 565, 37, 397, 2269, 2272, 2266,
+ 2275, 3394, 5488, 5493, 0, 0, 163, 0,
+ 568, 568, 121, 123, 0, 125, 0, 119,
+ 121, 123, 0, 125, 0, 119, 0, 0,
+ 0, 0, 0, 0, 0, 0, 161, 841,
+ 0, 2626, 2626, 3094, 847, 105, 838, 4893,
+ 6229, 6235, 847, 105, 6223, 6241, 6426, 6506,
+ 6514, 838, 0, 0, 0, 0, 165, 0,
+ 2626, 2626, 3118, 850, 105, 838, 4908, 6253,
+ 6259, 850, 105, 6247, 6265, 6433, 6522, 6530,
+ 838, 0, 0, 646, 637, 2870, 4793, 4798,
+ 45, 49, 4788, 4803, 6181, 6412, 6419, 0,
+ 0, 0, 0, 0, 0, 0, 0, 155,
+ 0, 3398, 3398, 574, 0, 401, 2646, 4528,
+ 4533, 0, 4523, 4538, 6055, 6321, 6328, 401,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3150, 4928,
+ 4933, 4923, 4938, 6271, 6440, 6447, 0, 0,
+ 0, 0, 3154, 4953, 4958, 4948, 4963, 6277,
+ 6454, 6461, 0, 0, 0, 159, 0, 4943,
+ 4943, 49, 45, 709, 2878, 2882, 45, 2874,
+ 2886, 4808, 6187, 6193, 5498, 2622, 403, 637,
+ 0, 0, 0, 0, 0, 676, 45, 0,
+ 0, 880, 0, 883, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 889,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 901, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 904,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 907, 0, 0, 0, 0, 0, 0, 910,
+ 0, 0, 913, 0, 0, 0, 0, 0,
+ 0, 0, 916, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 919, 0, 0,
+ 922, 0, 0, 0, 0, 0, 0, 877,
+ 0, 0, 0, 0, 0, 886, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 892, 0, 0, 895, 0, 0, 898,
+ 405, 637, 0, 0, 0, 0, 0, 0,
+ 691, 45, 0, 0, 0, 0, 0, 943,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 946, 0, 0, 0, 940, 0, 0, 934,
+ 0, 0, 0, 937, 0, 0, 952, 0,
+ 0, 0, 931, 0, 0, 925, 0, 0,
+ 0, 928, 0, 0, 949, 844, 838, 3074,
+ 105, 610, 613, 610, 43, 619, 622, 616,
+ 625, 0, 5, 7, 610, 3, 9, 43,
+ 619, 622, 616, 625, 652, 0, 5, 7,
+ 637, 3, 9, 51, 718, 721, 45, 715,
+ 724, 0, 5, 7, 637, 3, 9, 2914,
+ 51, 718, 721, 45, 59, 57, 55, 0,
+ 61, 715, 724, 0, 5, 7, 637, 3,
+ 9, 51, 718, 721, 45, 59, 57, 55,
+ 0, 61, 715, 724, 0, 5, 7, 637,
+ 3, 9, 51, 718, 721, 45, 59, 57,
+ 55, 0, 61, 715, 724, 0, 5, 7,
+ 637, 3, 9, 712, 45, 59, 57, 55,
+ 0, 61, 2922, 45, 59, 57, 55, 0,
+ 61, 2938, 4828, 11, 469, 2922, 45, 59,
+ 57, 55, 0, 61, 745, 2946, 2950, 4828,
+ 2942, 2954, 11, 469, 2922, 45, 59, 57,
+ 55, 0, 61, 745, 2946, 2950, 4828, 2942,
+ 2954, 11, 469, 2922, 45, 59, 57, 55,
+ 0, 61, 745, 2946, 2950, 4828, 2942, 2954,
+ 11, 469, 11, 469, 11, 469, 538, 35,
+ 553, 556, 550, 559, 538, 0, 5, 7,
+ 3, 9, 547, 11, 469, 610, 43, 619,
+ 622, 616, 625, 0, 5, 7, 610, 3,
+ 9, 613, 11, 469, 637, 49, 697, 700,
+ 45, 694, 703, 0, 5, 7, 610, 3,
+ 9, 613, 11, 469, 2990, 787, 35, 553,
+ 556, 550, 559, 2618, 4503, 4508, 538, 0,
+ 5, 7, 3, 9, 784, 2470, 2518, 11,
+ 469, 838, 3098, 105, 2242, 3366, 371, 2170,
+ 2173, 45, 2167, 2176, 0, 5, 7, 637,
+ 0, 0, 3, 9, 375, 2194, 2197, 45,
+ 2191, 2200, 0, 5, 7, 4783, 3, 9,
+ 658, 2778, 2782, 0, 45, 2774, 2786, 0,
+ 5, 7, 3, 9, 0, 5, 7, 3,
+ 9, 637, 373, 2182, 2185, 45, 2179, 2188,
+ 0, 5, 7, 637, 0, 0, 3, 9,
+ 377, 2206, 2209, 45, 2203, 2212, 0, 5,
+ 7, 4783, 3, 9, 661, 2794, 2798, 0,
+ 45, 2790, 2802, 0, 5, 7, 3, 9,
+ 0, 5, 7, 3, 9, 0, 4778, 6283,
+ 664, 2810, 2814, 0, 45, 664, 2806, 2818,
+ 4758, 6133, 6139, 0, 5, 7, 4778, 3,
+ 9, 2239, 2482, 2530, 667, 2826, 2830, 0,
+ 45, 667, 2822, 2834, 4763, 6145, 6151, 0,
+ 5, 7, 4778, 3, 9, 2482, 2530, 670,
+ 2842, 2846, 0, 45, 670, 2838, 2850, 4768,
+ 6157, 6163, 0, 5, 7, 4778, 3, 9,
+ 2482, 2530, 673, 2858, 2862, 0, 45, 2854,
+ 2866, 4773, 6169, 6175, 0, 5, 7, 3,
+ 9, 2482, 2530, 11, 469, 2770, 4743, 4748,
+ 4633, 4738, 4753, 6127, 6398, 6405, 634, 11,
+ 469, 2766, 4723, 4728, 4633, 2766, 4718, 4733,
+ 6121, 6384, 6391, 634, 11, 469, 2762, 4703,
+ 4708, 4633, 2762, 4698, 4713, 6115, 6370, 6377,
+ 634, 11, 469, 2758, 4683, 4688, 4633, 2758,
+ 4678, 4693, 6109, 6356, 6363, 634, 11, 469,
+ 381, 2230, 2233, 2227, 2236, 11, 469, 2754,
+ 4663, 4668, 4633, 4658, 4673, 634, 11, 469,
+ 11, 469, 11, 469, 379, 2218, 2221, 2215,
+ 2224, 11, 469, 2750, 4643, 4648, 4633, 4638,
+ 4653, 634, 11, 469, 11, 469, 637, 49,
+ 697, 700, 45, 694, 703, 0, 5, 7,
+ 637, 3, 9, 49, 697, 700, 45, 694,
+ 703, 0, 5, 7, 637, 3, 9, 49,
+ 697, 700, 45, 694, 703, 0, 5, 7,
+ 610, 3, 9, 613, 11, 469, 11, 469,
+ 11, 469, 637, 49, 697, 700, 45, 694,
+ 703, 0, 5, 7, 637, 3, 9, 49,
+ 697, 700, 45, 694, 703, 538, 0, 5,
+ 7, 3, 9, 35, 553, 556, 550, 559,
+ 538, 0, 5, 7, 3, 9, 35, 553,
+ 556, 550, 559, 538, 0, 5, 7, 3,
+ 9, 35, 553, 556, 550, 559, 0, 5,
+ 7, 610, 3, 9, 613, 11, 469, 11,
+ 469, 11, 469, 11, 469, 11, 469, 409,
+ 0, 5, 7, 3, 9, 637, 49, 697,
+ 700, 45, 694, 703, 0, 5, 7, 407,
+ 3, 9, 0, 5, 7, 3, 9, 129,
+ 1, 11, 469, 11, 469, 11, 469, 865,
+ 0, 853, 5, 7, 856, 859, 3, 9,
+ 1, 424, 445, 111, 113, 0, 3066, 838,
+ 105, 107, 637, 862, 3130, 3134, 45, 3126,
+ 3138, 3122, 4913, 4918, 11, 469, 0, 838,
+ 105, 109, 637, 49, 697, 700, 45, 694,
+ 703, 0, 5, 7, 407, 3, 9, 0,
+ 5, 7, 3, 9, 637, 47, 682, 685,
+ 45, 679, 688, 868, 0, 5, 7, 115,
+ 3, 9, 117, 0, 5, 7, 3, 9,
+ 1, 424, 445, 11, 469, 11, 469, 11,
+ 469, 11, 469, 637, 47, 682, 685, 45,
+ 679, 688, 0, 5, 7, 637, 3, 9,
+ 47, 682, 685, 45, 679, 688, 0, 5,
+ 7, 115, 3, 9, 117, 0, 5, 7,
+ 3, 9, 1, 424, 445, 11, 469, 11,
+ 469, 11, 469, 637, 47, 682, 685, 45,
+ 679, 688, 955, 0, 5, 7, 147, 149,
+ 151, 153, 3, 9, 0, 5, 7, 3,
+ 9, 2734, 637, 47, 682, 685, 45, 679,
+ 688, 0, 5, 7, 0, 3, 9, 3158,
+ 0, 5, 7, 0, 5, 7, 0, 5,
+ 7, 1, 3, 9, 424, 445, 3, 9,
+ 424, 445, 3, 9, 424, 445, 958, 129,
+ 11, 469, 11, 469, 11, 469, 11, 469,
+ 11, 469, 0, 5, 7, 3, 9, 637,
+ 47, 682, 685, 45, 679, 688, 3070, 0,
+ 5, 7, 838, 3, 9, 4878, 105, 847,
+ 3082, 3086, 847, 3082, 3086, 847, 3082, 3086,
+ 3074, 3078, 3090, 4883, 4888, 3078, 3090, 4883,
+ 4888, 3078, 3090, 4883, 4888, 11, 469, 11,
+ 469, 0, 5, 7, 3, 9, 637, 47,
+ 682, 685, 45, 679, 688, 0, 5, 7,
+ 838, 3, 9, 105, 850, 3106, 3110, 850,
+ 3106, 3110, 850, 3106, 3110, 3098, 3102, 3114,
+ 4898, 4903, 3102, 3114, 4898, 4903, 3102, 3114,
+ 4898, 4903, 11, 469, 11, 469, 0, 5,
+ 7, 3, 9, 637, 47, 682, 685, 45,
+ 679, 688, 0, 5, 7, 610, 3, 9,
+ 43, 619, 622, 43, 619, 622, 43, 619,
+ 622, 613, 616, 625, 2722, 2726, 616, 625,
+ 2722, 2726, 616, 625, 2722, 2726, 11, 469,
+ 11, 469, 11, 469, 961, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 169,
+ 967, 970, 0, 0, 0, 964, 973, 0,
+ 5, 7, 407, 3, 9, 0, 5, 7,
+ 3, 9, 637, 47, 682, 685, 45, 679,
+ 688, 0, 5, 7, 637, 3, 9, 51,
+ 718, 721, 45, 715, 724, 766, 0, 5,
+ 7, 751, 3, 9, 65, 757, 760, 63,
+ 754, 763, 0, 5, 7, 751, 3, 9,
+ 65, 757, 760, 63, 754, 763, 0, 5,
+ 7, 637, 3, 9, 49, 697, 700, 45,
+ 694, 703, 0, 5, 7, 610, 3, 9,
+ 43, 619, 622, 616, 625, 0, 5, 7,
+ 129, 3, 9, 1, 11, 469, 11, 469,
+ 11, 469, 11, 469, 11, 469, 11, 469,
+ 11, 469, 11, 469, 0, 0, 195, 1123,
+ 1126, 1120, 1129, 0, 0, 0, 189, 1087,
+ 1090, 1084, 1093, 0, 209, 1207, 1210, 1204,
+ 1213, 0, 0, 0, 0, 0, 0, 259,
+ 1507, 1510, 1504, 1513, 0, 0, 0, 0,
+ 0, 0, 235, 1363, 1366, 1360, 1369, 233,
+ 1351, 1354, 1348, 1357, 0, 0, 205, 1183,
+ 1186, 1180, 1189, 0, 0, 0, 173, 991,
+ 994, 988, 997, 0, 0, 0, 239, 1387,
+ 1390, 1384, 1393, 0, 0, 0, 0, 0,
+ 0, 223, 1291, 1294, 1288, 1297, 0, 0,
+ 0, 0, 207, 1195, 1198, 1192, 1201, 0,
+ 0, 0, 221, 1279, 1282, 1276, 1285, 211,
+ 1219, 1222, 1216, 1225, 0, 0, 0, 0,
+ 0, 253, 1471, 1474, 1468, 1477, 0, 255,
+ 1483, 1486, 1480, 1489, 0, 0, 0, 0,
+ 0, 179, 1027, 1030, 1024, 1033, 0, 0,
+ 0, 263, 1531, 1534, 1528, 1537, 0, 0,
+ 0, 0, 0, 0, 0, 215, 1243, 1246,
+ 1240, 1249, 0, 0, 0, 193, 1111, 1114,
+ 1108, 1117, 203, 1171, 1174, 1168, 1177, 0,
+ 0, 0, 0, 0, 247, 1435, 1438, 1432,
+ 1441, 0, 249, 1447, 1450, 1444, 1453, 0,
+ 197, 1135, 1138, 1132, 1141, 251, 1459, 1462,
+ 1456, 1465, 0, 0, 0, 0, 0, 181,
+ 1039, 1042, 1036, 1045, 183, 1051, 1054, 1048,
+ 1057, 0, 0, 0, 0, 0, 0, 201,
+ 1159, 1162, 1156, 1165, 0, 245, 1423, 1426,
+ 1420, 1429, 171, 979, 982, 0, 976, 985,
+ 0, 219, 1267, 1270, 0, 1264, 1273, 225,
+ 1303, 1306, 0, 1300, 1309, 0, 0, 0,
+ 0, 227, 1315, 1318, 1312, 1321, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 237,
+ 1375, 1378, 1372, 1381, 0, 0, 177, 1015,
+ 1018, 1012, 1021, 0, 0, 0, 187, 1075,
+ 1078, 1072, 1081, 0, 0, 0, 217, 1255,
+ 1258, 1252, 1261, 191, 1099, 1102, 1096, 1105,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 231, 1339, 1342, 1336, 1345, 0,
+ 175, 1003, 1006, 1000, 1009, 0, 243, 1411,
+ 1414, 1408, 1417, 0, 199, 1147, 1150, 1144,
+ 1153, 0, 0, 0, 213, 1231, 1234, 1228,
+ 1237, 0, 0, 261, 1519, 1522, 1516, 1525,
+ 0, 0, 0, 0, 0, 229, 1327, 1330,
+ 1324, 1333, 0, 185, 1063, 1066, 1060, 1069,
+ 0, 0, 2738, 637, 49, 697, 700, 45,
+ 694, 703, 0, 0, 257, 1495, 1498, 1492,
+ 1501, 0, 0, 0, 0, 0, 265, 1543,
+ 1546, 1540, 1549, 0, 0, 0, 0, 0,
+ 241, 1399, 1402, 1396, 1405, 610, 628, 1,
+ 637, 49, 697, 700, 45, 694, 703, 0,
+ 5, 7, 637, 3, 9, 47, 682, 685,
+ 45, 679, 688, 0, 5, 7, 407, 3,
9, 0, 5, 7, 3, 9, 129, 1,
- 11, 463, 11, 463, 11, 463, 129, 1,
- 631, 47, 676, 679, 45, 673, 682, 0,
- 5, 7, 631, 3, 9, 47, 676, 679,
- 45, 673, 682, 0, 5, 7, 631, 3,
- 9, 49, 691, 694, 45, 688, 697, 0,
- 5, 7, 33, 535, 3, 9, 35, 547,
- 550, 544, 553, 868, 0, 5, 7, 538,
+ 11, 469, 11, 469, 11, 469, 129, 1,
+ 637, 47, 682, 685, 45, 679, 688, 0,
+ 5, 7, 637, 3, 9, 47, 682, 685,
+ 45, 679, 688, 0, 5, 7, 637, 3,
+ 9, 49, 697, 700, 45, 694, 703, 0,
+ 5, 7, 33, 541, 3, 9, 35, 553,
+ 556, 550, 559, 874, 0, 5, 7, 544,
3, 9, 133, 135, 0, 137, 139, 0,
- 141, 0, 143, 145, 0, 556, 131, 1,
- 0, 0, 11, 463, 117, 115, 11, 463,
- 11, 463, 11, 463, 631, 47, 676, 679,
- 45, 673, 682, 0, 5, 7, 631, 3,
- 9, 47, 676, 679, 45, 673, 682, 0,
- 5, 7, 631, 3, 9, 49, 691, 694,
- 45, 688, 697, 0, 5, 7, 33, 535,
- 3, 9, 541, 117, 115, 11, 463, 11,
- 463, 11, 463, 631, 47, 676, 679, 45,
- 673, 682, 0, 5, 7, 631, 3, 9,
- 47, 676, 679, 45, 673, 682, 0, 5,
- 7, 631, 3, 9, 47, 676, 679, 45,
- 673, 682, 0, 5, 7, 115, 3, 9,
- 117, 0, 5, 7, 3, 9, 1, 418,
- 439, 11, 463, 11, 463, 11, 463, 11,
- 463, 631, 51, 712, 715, 45, 709, 718,
- 0, 5, 7, 631, 3, 9, 700, 45,
- 1, 11, 463, 631, 51, 712, 715, 45,
- 709, 718, 0, 5, 7, 631, 3, 9,
- 47, 676, 679, 45, 673, 682, 0, 5,
- 7, 631, 3, 9, 47, 676, 679, 45,
- 673, 682, 0, 5, 7, 115, 3, 9,
- 117, 0, 5, 7, 3, 9, 1, 418,
- 439, 11, 463, 11, 463, 11, 463, 11,
- 463, 631, 49, 691, 694, 45, 688, 697,
- 0, 5, 7, 832, 3, 9, 3041, 105,
- 11, 463, 631, 49, 691, 694, 45, 688,
- 697, 0, 5, 7, 2218, 3, 9, 117,
- 115, 117, 3113, 381, 115, 117, 115, 117,
- 3345, 3341, 11, 463, 2215, 117, 3337, 379,
- 115, 117, 3329, 2215, 117, 379, 115, 117,
- 3333, 631, 49, 691, 694, 45, 688, 697,
- 0, 5, 7, 631, 3, 9, 49, 691,
- 694, 45, 688, 697, 75, 0, 5, 7,
- 3, 9, 1, 11, 463, 11, 463, 631,
- 47, 676, 679, 45, 673, 682, 532, 0,
- 5, 7, 3, 9, 35, 547, 550, 544,
- 553, 75, 0, 5, 7, 3, 9, 1,
- 11, 463, 11, 463, 631, 49, 691, 694,
- 45, 688, 697, 0, 5, 7, 604, 3,
- 9, 625, 1, 11, 463, 595, 592, 0,
- 2661, 2665, 571, 466, 475, 2657, 2669, 592,
- 407, 2465, 2473, 3373, 3381, 2433, 2481, 3365,
- 3369, 4362, 4372, 2681, 592, 2465, 2473, 3013,
- 3013, 3013, 3013, 3013, 3013, 3013, 3013, 3013,
- 3013, 3013, 3013, 3013, 3013, 3013, 3013, 3013,
- 2433, 2481, 4547, 4562, 4807, 4807, 4807, 4807,
- 4807, 4807, 4807, 4807, 4807, 4807, 4807, 4807,
- 4807, 4807, 4807, 4807, 4807, 2673, 3009, 93,
- 4792, 4797, 3005, 2997, 3001, 4787, 4802, 2465,
- 2473, 2433, 2481, 481, 2533, 2541, 4417, 2549,
- 481, 2461, 2469, 2477, 4367, 5996, 6002, 6116,
- 6116, 6116, 6116, 6116, 6116, 6116, 6116, 6116,
- 6116, 6116, 6116, 6116, 6116, 6116, 6116, 6116,
- 4357
+ 141, 0, 143, 145, 0, 562, 131, 1,
+ 0, 0, 11, 469, 117, 115, 11, 469,
+ 11, 469, 11, 469, 637, 47, 682, 685,
+ 45, 679, 688, 0, 5, 7, 637, 3,
+ 9, 47, 682, 685, 45, 679, 688, 0,
+ 5, 7, 637, 3, 9, 49, 697, 700,
+ 45, 694, 703, 0, 5, 7, 33, 541,
+ 3, 9, 547, 117, 115, 11, 469, 11,
+ 469, 11, 469, 637, 47, 682, 685, 45,
+ 679, 688, 0, 5, 7, 637, 3, 9,
+ 47, 682, 685, 45, 679, 688, 0, 5,
+ 7, 637, 3, 9, 47, 682, 685, 45,
+ 679, 688, 0, 5, 7, 115, 3, 9,
+ 117, 0, 5, 7, 3, 9, 1, 424,
+ 445, 11, 469, 11, 469, 11, 469, 11,
+ 469, 637, 51, 718, 721, 45, 715, 724,
+ 0, 5, 7, 637, 3, 9, 706, 45,
+ 1, 11, 469, 637, 51, 718, 721, 45,
+ 715, 724, 0, 5, 7, 637, 3, 9,
+ 47, 682, 685, 45, 679, 688, 0, 5,
+ 7, 637, 3, 9, 47, 682, 685, 45,
+ 679, 688, 0, 5, 7, 115, 3, 9,
+ 117, 0, 5, 7, 3, 9, 1, 424,
+ 445, 11, 469, 11, 469, 11, 469, 11,
+ 469, 637, 49, 697, 700, 45, 694, 703,
+ 0, 5, 7, 838, 3, 9, 3074, 105,
+ 11, 469, 637, 49, 697, 700, 45, 694,
+ 703, 0, 5, 7, 2248, 3, 9, 117,
+ 115, 117, 3146, 387, 115, 117, 115, 117,
+ 3386, 3382, 11, 469, 2245, 117, 3378, 385,
+ 115, 117, 3370, 2245, 117, 385, 115, 117,
+ 3374, 637, 49, 697, 700, 45, 694, 703,
+ 0, 5, 7, 637, 3, 9, 49, 697,
+ 700, 45, 694, 703, 75, 0, 5, 7,
+ 3, 9, 1, 11, 469, 11, 469, 637,
+ 47, 682, 685, 45, 679, 688, 538, 0,
+ 5, 7, 3, 9, 35, 553, 556, 550,
+ 559, 75, 0, 5, 7, 3, 9, 1,
+ 11, 469, 11, 469, 637, 49, 697, 700,
+ 45, 694, 703, 0, 5, 7, 610, 3,
+ 9, 631, 1, 11, 469, 601, 598, 0,
+ 2694, 2698, 577, 472, 481, 2690, 2702, 598,
+ 413, 2498, 2506, 3414, 3422, 2466, 2514, 3406,
+ 3410, 4423, 4433, 2714, 598, 2498, 2506, 3046,
+ 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046,
+ 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046,
+ 3046, 2466, 2514, 4608, 4623, 4868, 4868, 4868,
+ 4868, 4868, 4868, 4868, 4868, 4868, 4868, 4868,
+ 4868, 4868, 4868, 4868, 4868, 4868, 4868, 2706,
+ 3042, 93, 4853, 4858, 3038, 3030, 3034, 4848,
+ 4863, 2498, 2506, 2466, 2514, 487, 2566, 2574,
+ 4478, 2582, 487, 2494, 2502, 2510, 4428, 6097,
+ 6103, 6217, 6217, 6217, 6217, 6217, 6217, 6217,
+ 6217, 6217, 6217, 6217, 6217, 6217, 6217, 6217,
+ 6217, 6217, 6217, 4418
};
static const short _zone_scanner_eof_actions[] = {
- 0, 2709, 2885, 413, 2263, 405, 2248, 15,
- 15, 405, 405, 2248, 2248, 2248, 4567, 6098,
- 2260, 413, 413, 2263, 2248, 2248, 413, 413,
- 413, 413, 413, 2263, 2263, 413, 413, 2263,
- 413, 413, 413, 2263, 413, 413, 413, 2263,
- 413, 413, 413, 413, 2263, 413, 413, 413,
- 2263, 413, 413, 413, 2263, 2263, 413, 413,
- 413, 413, 2263, 413, 2263, 413, 413, 413,
- 413, 2263, 413, 413, 413, 2263, 413, 413,
- 413, 413, 413, 413, 413, 413, 413, 413,
- 2263, 413, 413, 2263, 2263, 413, 413, 2263,
- 413, 2263, 413, 2263, 2263, 413, 413, 413,
- 413, 2263, 2263, 413, 413, 413, 413, 2263,
- 413, 2263, 2263, 413, 2263, 2263, 413, 413,
- 413, 413, 2263, 413, 413, 413, 413, 413,
- 413, 413, 413, 413, 2263, 413, 413, 2263,
- 413, 2263, 413, 413, 413, 2263, 2263, 413,
- 413, 413, 413, 413, 2263, 413, 2263, 413,
- 2263, 413, 2263, 413, 413, 413, 2263, 413,
- 413, 2263, 413, 413, 413, 2263, 413, 2263,
- 413, 413, 649, 2713, 413, 413, 2263, 413,
- 413, 413, 413, 413, 2263, 413, 2709, 413,
- 413, 649, 2885, 2885, 2885, 2885, 413, 15,
- 95, 95, 95, 95, 95, 95, 95, 95,
- 41, 649, 0, 4552, 649, 413, 2885, 2885,
- 2885, 413, 2685, 2713, 3385, 2248, 2709, 15,
- 2248, 15, 4567, 3385, 3385, 3385, 3385, 3385,
- 3385, 3385, 3385, 3385, 3385, 3385, 3385, 3385,
- 3385, 3385, 3385, 2248, 3361, 95, 95, 95,
- 95, 95, 95, 95, 95, 95, 2677, 6242,
- 2709, 2260, 4557, 4567, 4557, 4557, 4557, 4557,
- 4557, 4557, 4557, 4557, 4557, 4557, 4557, 4557,
- 4557, 4557, 4557, 4557, 598, 4567, 2248, 15,
- 2248, 2248, 413, 413, 2263, 413, 413, 413,
- 2263, 413, 2263, 2248, 2248, 15, 2248, 2248,
- 2248, 2248, 405, 4567, 2248, 2248, 601, 601,
- 601, 601, 601, 601, 601, 601, 601, 601,
- 601, 601, 601, 601, 601, 601, 15, 2260,
- 601, 2260, 0, 0, 0, 31, 31, 31,
- 511, 511, 511, 511, 31, 31, 763, 763,
- 2949, 2949, 2949, 2949, 763, 763, 69, 2949,
- 2949, 2949, 2949, 77, 634, 4762, 484, 484,
- 4762, 2877, 4762, 77, 81, 81, 81, 487,
- 487, 487, 514, 514, 514, 514, 487, 81,
- 0, 85, 793, 799, 87, 799, 15, 15,
- 517, 517, 517, 517, 799, 15, 87, 0,
- 0, 127, 127, 127, 127, 127, 127, 127,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 377, 637, 637, 3109,
- 3109, 3109, 3109, 377, 377, 377, 637, 637,
- 3109, 3109, 3109, 3109, 377, 637, 377, 387,
- 387, 387, 387, 387, 387, 387, 387, 387,
- 387, 387, 387, 387, 387, 387, 387, 387,
- 387, 387, 387, 387, 387, 387, 643, 643,
- 387, 387, 387, 387, 387, 387, 387, 387,
- 387, 387, 387, 387, 387, 387, 387, 387,
- 387, 387, 387, 385, 385, 385, 385, 385,
- 385, 385, 385, 385, 385, 385, 385, 385,
- 385, 385, 385, 385, 385, 385, 385, 385,
- 385, 385, 385, 385, 385, 385, 385, 385,
- 385, 385, 385, 385, 835, 835, 835, 835,
- 835, 835, 385, 385, 385, 385, 385, 835,
- 835, 835, 835, 835, 835, 385, 385, 640,
- 640, 385, 385, 385, 385, 385, 385, 385,
- 385, 385, 385, 385, 385, 385, 385, 385,
- 385, 385, 385, 385, 385, 385, 385, 385,
- 385, 385, 385, 385, 385, 385, 385, 385,
- 385, 385, 385, 385, 385, 640, 640, 640,
- 640, 385, 385, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 397, 397, 397, 397,
- 397, 397, 397, 399, 399, 399, 399, 399,
- 399, 399, 399, 399, 399, 399, 399, 399,
- 399, 399, 399, 399, 399, 399, 399, 399,
- 399, 399, 399, 399, 399, 399, 399, 399,
- 399, 399, 399, 399, 399, 399, 399, 399,
- 399, 399, 399, 399, 838, 838, 405, 405,
- 405, 405, 405, 405, 646, 646, 646, 2881,
- 646, 2881, 646, 2881, 646, 2881, 2881, 2881,
- 2881, 405, 2881, 2881, 2881, 405, 2881, 2881,
- 2881, 405, 2881, 2881, 2881, 405, 405, 405,
+ 0, 2742, 2918, 419, 2293, 411, 2278, 15,
+ 15, 411, 411, 2278, 2278, 2278, 4628, 6199,
+ 2290, 419, 419, 2293, 2278, 2278, 419, 419,
+ 419, 419, 419, 2293, 2293, 419, 419, 2293,
+ 419, 419, 419, 2293, 419, 419, 419, 2293,
+ 419, 419, 419, 419, 2293, 419, 419, 419,
+ 2293, 419, 419, 419, 2293, 2293, 419, 419,
+ 419, 419, 2293, 419, 2293, 419, 419, 419,
+ 419, 2293, 419, 419, 419, 2293, 419, 419,
+ 419, 419, 419, 419, 419, 419, 419, 419,
+ 2293, 419, 419, 2293, 2293, 419, 419, 2293,
+ 419, 2293, 419, 2293, 2293, 419, 419, 419,
+ 419, 2293, 2293, 419, 419, 419, 419, 2293,
+ 419, 2293, 2293, 419, 2293, 2293, 419, 419,
+ 419, 419, 2293, 419, 419, 419, 419, 419,
+ 419, 419, 419, 419, 2293, 419, 419, 2293,
+ 419, 2293, 419, 419, 419, 2293, 2293, 419,
+ 419, 419, 419, 419, 2293, 419, 2293, 419,
+ 2293, 419, 2293, 419, 419, 419, 2293, 419,
+ 419, 2293, 419, 419, 419, 2293, 419, 2293,
+ 419, 419, 655, 2746, 419, 419, 2293, 419,
+ 419, 419, 419, 419, 2293, 419, 419, 419,
+ 419, 419, 2293, 419, 2742, 419, 419, 655,
+ 2918, 2918, 2918, 2918, 419, 15, 95, 95,
+ 95, 95, 95, 95, 95, 95, 41, 655,
+ 0, 4613, 655, 419, 2918, 2918, 2918, 419,
+ 2718, 2746, 3426, 2278, 2742, 15, 2278, 15,
+ 4628, 3426, 3426, 3426, 3426, 3426, 3426, 3426,
+ 3426, 3426, 3426, 3426, 3426, 3426, 3426, 3426,
+ 3426, 3426, 2278, 3402, 95, 95, 95, 95,
+ 95, 95, 95, 95, 95, 2710, 6349, 2742,
+ 2290, 4618, 4628, 4618, 4618, 4618, 4618, 4618,
+ 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618,
+ 4618, 4618, 4618, 4618, 604, 4628, 2278, 15,
+ 2278, 2278, 419, 419, 2293, 419, 419, 419,
+ 2293, 419, 2293, 2278, 2278, 15, 2278, 2278,
+ 2278, 2278, 411, 4628, 2278, 2278, 607, 607,
+ 607, 607, 607, 607, 607, 607, 607, 607,
+ 607, 607, 607, 607, 607, 607, 607, 15,
+ 2290, 607, 2290, 0, 0, 0, 31, 31,
+ 31, 517, 517, 517, 517, 31, 31, 769,
+ 769, 2982, 2982, 2982, 2982, 769, 769, 69,
+ 2982, 2982, 2982, 2982, 77, 640, 4823, 490,
+ 490, 4823, 2910, 4823, 77, 81, 81, 81,
+ 493, 493, 493, 520, 520, 520, 520, 493,
+ 81, 0, 85, 799, 805, 87, 805, 15,
+ 15, 523, 523, 523, 523, 805, 15, 87,
+ 0, 0, 127, 127, 127, 127, 127, 127,
+ 127, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 369, 383, 643, 643, 3142, 3142,
+ 3142, 3142, 383, 383, 383, 643, 643, 3142,
+ 3142, 3142, 3142, 383, 643, 383, 393, 393,
+ 393, 393, 393, 393, 393, 393, 393, 393,
+ 393, 393, 393, 393, 393, 393, 393, 393,
+ 393, 393, 393, 393, 393, 393, 393, 393,
+ 393, 393, 393, 393, 649, 649, 393, 393,
+ 393, 393, 393, 393, 393, 393, 393, 393,
+ 393, 393, 393, 393, 393, 393, 393, 393,
+ 393, 393, 393, 393, 393, 393, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 841, 841, 841, 841, 841, 841,
+ 391, 391, 391, 391, 391, 841, 841, 841,
+ 841, 841, 841, 391, 391, 646, 646, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 646,
+ 646, 646, 646, 391, 391, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 405, 405, 405,
+ 405, 405, 405, 405, 405, 405, 405, 405,
+ 405, 405, 405, 405, 405, 405, 405, 405,
405, 405, 405, 405, 405, 405, 405, 405,
- 405, 405, 646, 646, 405, 405, 405, 781,
- 781, 781, 781, 838, 838, 2212, 2212, 2212,
- 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
- 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
- 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
- 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
- 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
- 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
- 2212, 2212, 2212, 2212, 646, 646, 646, 646,
- 646, 646, 405, 405, 405, 405, 405, 646,
- 646, 646, 646, 405, 405, 405, 405, 405,
405, 405, 405, 405, 405, 405, 405, 405,
- 405, 405, 646, 646, 405, 405, 405, 405,
- 405, 405, 405, 859, 859, 859, 3033, 3033,
- 859, 859, 405, 859, 3033, 3033, 646, 646,
- 405, 405, 646, 646, 862, 862, 862, 862,
- 405, 405, 405, 646, 646, 646, 646, 862,
- 862, 862, 862, 405, 405, 646, 646, 949,
- 949, 2701, 2701, 949, 3121, 952, 952, 952,
- 952, 952, 952, 952, 949, 949, 949, 2701,
- 2701, 3037, 4817, 949, 949, 949, 2701, 2701,
- 3037, 4817, 949, 949, 949, 2701, 2701, 949,
- 3121, 949, 949, 405, 955, 955, 405, 405,
- 646, 646, 646, 646, 760, 760, 760, 760,
- 646, 646, 405, 405, 405, 405, 405, 405,
- 405, 405, 405, 405, 405, 405, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 955, 955,
- 955, 955, 955, 2705, 2705, 955, 955, 955,
- 955, 955, 955, 955, 955, 955, 405, 405,
- 405, 646, 646, 646, 646, 405, 405, 405,
- 405, 405, 405, 405, 405, 405, 646, 646,
- 646, 646, 646, 646, 862, 862, 868, 868,
- 868, 868, 868, 868, 868, 868, 868, 405,
- 868, 868, 868, 868, 868, 405, 862, 862,
- 405, 405, 405, 646, 646, 646, 646, 646,
- 646, 862, 862, 862, 862, 405, 405, 405,
- 646, 646, 646, 646, 646, 646, 862, 862,
- 862, 862, 405, 405, 405, 646, 646, 646,
- 646, 405, 405, 646, 646, 646, 646, 646,
- 646, 862, 862, 862, 862, 405, 405, 405,
- 646, 646, 838, 838, 405, 646, 646, 862,
- 862, 862, 862, 3113, 862, 862, 862, 862,
- 3345, 405, 862, 862, 3337, 862, 862, 3337,
- 862, 862, 3337, 862, 862, 3337, 646, 646,
- 646, 646, 405, 405, 405, 405, 646, 646,
- 405, 405, 405, 405, 405, 405, 646, 646,
- 405, 405, 405, 405, 0, 0, 0, 0,
+ 405, 405, 405, 405, 405, 405, 844, 844,
+ 411, 411, 411, 411, 411, 411, 652, 652,
+ 652, 2914, 652, 2914, 652, 2914, 652, 2914,
+ 2914, 2914, 2914, 411, 2914, 2914, 2914, 411,
+ 2914, 2914, 2914, 411, 2914, 2914, 2914, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 411, 411, 652, 652, 411, 411,
+ 411, 787, 787, 787, 787, 844, 844, 2242,
+ 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+ 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+ 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+ 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+ 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+ 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+ 2242, 2242, 2242, 2242, 2242, 2242, 652, 652,
+ 652, 652, 652, 652, 411, 411, 411, 411,
+ 411, 652, 652, 652, 652, 411, 411, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 411, 411, 652, 652, 411, 411,
+ 411, 411, 411, 411, 411, 865, 865, 865,
+ 3066, 3066, 865, 865, 411, 865, 3066, 3066,
+ 652, 652, 411, 411, 652, 652, 868, 868,
+ 868, 868, 411, 411, 411, 652, 652, 652,
+ 652, 868, 868, 868, 868, 411, 411, 652,
+ 652, 955, 955, 2734, 2734, 955, 3158, 958,
+ 958, 958, 958, 958, 958, 958, 955, 955,
+ 955, 2734, 2734, 3070, 4878, 955, 955, 955,
+ 2734, 2734, 3070, 4878, 955, 955, 955, 2734,
+ 2734, 955, 3158, 955, 955, 411, 961, 961,
+ 411, 411, 652, 652, 652, 652, 766, 766,
+ 766, 766, 652, 652, 411, 411, 411, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 2738, 2738, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 411, 411,
+ 411, 652, 652, 652, 652, 411, 411, 411,
+ 411, 411, 411, 411, 411, 411, 652, 652,
+ 652, 652, 652, 652, 868, 868, 874, 874,
+ 874, 874, 874, 874, 874, 874, 874, 411,
+ 874, 874, 874, 874, 874, 411, 868, 868,
+ 411, 411, 411, 652, 652, 652, 652, 652,
+ 652, 868, 868, 868, 868, 411, 411, 411,
+ 652, 652, 652, 652, 652, 652, 868, 868,
+ 868, 868, 411, 411, 411, 652, 652, 652,
+ 652, 411, 411, 652, 652, 652, 652, 652,
+ 652, 868, 868, 868, 868, 411, 411, 411,
+ 652, 652, 844, 844, 411, 652, 652, 868,
+ 868, 868, 868, 3146, 868, 868, 868, 868,
+ 3386, 411, 868, 868, 3378, 868, 868, 3378,
+ 868, 868, 3378, 868, 868, 3378, 652, 652,
+ 652, 652, 411, 411, 411, 411, 652, 652,
+ 411, 411, 411, 411, 411, 411, 652, 652,
+ 411, 411, 411, 411, 0, 0, 0, 0,
93, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
@@ -6364,7 +6504,7 @@ int zs_init(
memset(s, 0, sizeof(*s));
// Nonzero initial scanner state.
- s->cs = 1396;
+ s->cs = 1444;
// Reset the file descriptor.
s->file.descriptor = -1;
@@ -6900,7 +7040,7 @@ _match:
{
if (s->multiline == true) {
ERR(ZS_LEFT_PARENTHESIS);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
s->multiline = true;
}
@@ -6909,7 +7049,7 @@ _match:
{
if (s->multiline == false) {
ERR(ZS_RIGHT_PARENTHESIS);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
s->multiline = false;
}
@@ -6950,7 +7090,7 @@ _match:
case 8:
{
WARN(ZS_BAD_REST);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 9:
@@ -7003,15 +7143,15 @@ _match:
if (s->error.fatal) {
{p++; goto _out; }
}
- {cs = 306;goto _again;}
+ {cs = 315;goto _again;}
} else {
// Return if external processing.
- p--; cs = 306; {p++; goto _out; }
+ p--; cs = 315; {p++; goto _out; }
}
}
break;
case 12:
- { p--; {stack[top++] = cs; cs = 1396;goto _again;} }
+ { p--; {stack[top++] = cs; cs = 1444;goto _again;} }
break;
case 13:
{
@@ -7027,7 +7167,7 @@ _match:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7040,7 +7180,7 @@ _match:
(uint8_t)(s->item_length);
} else {
WARN(ZS_DNAME_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7051,7 +7191,7 @@ _match:
s->item_length++;
} else {
WARN(ZS_LABEL_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7069,7 +7209,7 @@ _match:
case 19:
{
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 20:
@@ -7089,7 +7229,7 @@ _match:
s->dname_tmp_length += s->zone_origin_length;
} else {
WARN(ZS_DNAME_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7112,11 +7252,11 @@ _match:
case 24:
{
WARN(ZS_BAD_DNAME_CHAR);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 25:
- { p--; {stack[top++] = cs; cs = 309;goto _again;} }
+ { p--; {stack[top++] = cs; cs = 318;goto _again;} }
break;
case 26:
{
@@ -7124,7 +7264,7 @@ _match:
s->item_length_location = rdata_tail++;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7133,13 +7273,13 @@ _match:
s->item_length = rdata_tail - s->item_length_location - 1;
if (s->comma_list && s->item_length == 0) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
if (s->item_length <= MAX_ITEM_LENGTH) {
*(s->item_length_location) = (uint8_t)(s->item_length);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7150,7 +7290,7 @@ _match:
rdata_tail += 2;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7163,7 +7303,7 @@ _match:
memcpy(s->item_length2_location, &val, 2);
} else {
WARN(ZS_ITEM_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7182,7 +7322,7 @@ _match:
{
if (s->r_owner_length == 0) {
WARN(ZS_BAD_PREVIOUS_OWNER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7190,7 +7330,7 @@ _match:
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 34:
@@ -7215,7 +7355,7 @@ _match:
s->number64 += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER64_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7227,7 +7367,7 @@ _match:
case 38:
{
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 39:
@@ -7255,7 +7395,7 @@ _match:
s->number64 += s->number64_tmp * pow(10, s->decimals);
} else {
WARN(ZS_FLOAT_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7276,7 +7416,7 @@ _match:
rdata_tail += 1;
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7288,7 +7428,7 @@ _match:
rdata_tail += 2;
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7300,7 +7440,7 @@ _match:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7310,7 +7450,7 @@ _match:
s->r_type = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7320,14 +7460,14 @@ _match:
s->r_data_length = (uint16_t)(s->number64);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
case 50:
{
WARN(ZS_BAD_TIME_UNIT);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 51:
@@ -7335,7 +7475,7 @@ _match:
s->number64 *= 60;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7344,7 +7484,7 @@ _match:
s->number64 *= 3600;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7353,7 +7493,7 @@ _match:
s->number64 *= 86400;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7362,7 +7502,7 @@ _match:
s->number64 *= 604800;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7377,7 +7517,7 @@ _match:
s->number64 += s->number64_tmp;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7392,7 +7532,7 @@ _match:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7409,7 +7549,7 @@ _match:
rdata_tail += 4;
} else {
WARN(ret);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
} else if (s->buffer_length <= 10) { // Timestamp format.
char *end;
@@ -7418,7 +7558,7 @@ _match:
if (end == (char *)(s->buffer) || *end != '\0') {
WARN(ZS_BAD_TIMESTAMP);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
if (s->number64 <= UINT32_MAX) {
@@ -7426,18 +7566,18 @@ _match:
rdata_tail += 4;
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
} else {
WARN(ZS_BAD_TIMESTAMP_LENGTH);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
case 60:
{
WARN(ZS_BAD_TIMESTAMP_CHAR);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 61:
@@ -7453,27 +7593,27 @@ _match:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
*(rdata_tail++) = (*p);
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
case 62:
{
WARN(ZS_BAD_TEXT_CHAR);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 63:
{
WARN(ZS_BAD_TEXT);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 64:
@@ -7489,7 +7629,7 @@ _match:
if (rdata_tail > rdata_stop) {
WARN(ZS_TEXT_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
@@ -7497,7 +7637,7 @@ _match:
s->item_length++;
} else {
WARN(ZS_TEXT_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7512,7 +7652,7 @@ _match:
*rdata_tail += digit_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_NUMBER8_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7524,7 +7664,7 @@ _match:
case 67:
{
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 68:
@@ -7535,7 +7675,7 @@ _match:
if (last_two[1] == ',') {
if (current_len <= 1) {
WARN(ZS_EMPTY_LIST_ITEM);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
} else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item.
*(s->item_length_location) = current_len;
s->item_length_location = rdata_tail - 1;
@@ -7553,13 +7693,13 @@ _match:
}
} else if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
}
break;
case 69:
- { p--; {stack[top++] = cs; cs = 318;goto _again;} }
+ { p--; {stack[top++] = cs; cs = 327;goto _again;} }
break;
case 70:
{
@@ -7577,18 +7717,18 @@ _match:
s->default_ttl = (uint32_t)(s->number64);
} else {
ERR(ZS_NUMBER32_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
case 73:
{
ERR(ZS_BAD_TTL);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 74:
- { p--; {stack[top++] = cs; cs = 331;goto _again;} }
+ { p--; {stack[top++] = cs; cs = 340;goto _again;} }
break;
case 75:
{
@@ -7603,11 +7743,11 @@ _match:
case 77:
{
ERR(ZS_BAD_ORIGIN);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 78:
- { p--; {stack[top++] = cs; cs = 340;goto _again;} }
+ { p--; {stack[top++] = cs; cs = 349;goto _again;} }
break;
case 79:
{
@@ -7619,7 +7759,7 @@ _match:
size_t len = rdata_tail - s->r_data;
if (len >= sizeof(s->include_filename)) {
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
// Store zero terminated include filename.
@@ -7633,7 +7773,7 @@ _match:
case 81:
{
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 82:
@@ -7649,7 +7789,7 @@ _match:
case 84:
{
ERR(ZS_BAD_INCLUDE_ORIGIN);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 85:
@@ -7660,7 +7800,7 @@ _match:
"%s/%s", s->path, s->include_filename);
if (ret <= 0 || ret >= sizeof(s->buffer)) {
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
memcpy(s->include_filename, s->buffer, ret + 1);
}
@@ -7682,7 +7822,7 @@ _match:
zs_scanner_t *ss = malloc(sizeof(zs_scanner_t));
if (ss == NULL) {
ERR(ZS_UNPROCESSED_INCLUDE);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
// Parse included zone file.
@@ -7702,18 +7842,18 @@ _match:
}
zs_deinit(ss);
free(ss);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
zs_deinit(ss);
free(ss);
} else {
s->state = ZS_STATE_INCLUDE;
- p--; cs = 1396; {p++; goto _out; }
+ p--; cs = 1444; {p++; goto _out; }
}
}
break;
case 86:
- { p--; {stack[top++] = cs; cs = 352;goto _again;} }
+ { p--; {stack[top++] = cs; cs = 361;goto _again;} }
break;
case 87:
{
@@ -7728,7 +7868,7 @@ _match:
case 89:
{
ERR(ZS_BAD_DIRECTIVE);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 90:
@@ -7752,7 +7892,7 @@ _match:
s->r_ttl = (uint32_t)(s->number64);
} else {
WARN(ZS_NUMBER32_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7767,14 +7907,14 @@ _match:
s->buffer[s->buffer_length++] = (*p);
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
case 96:
{
WARN(ZS_BAD_ADDRESS_CHAR);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 97:
@@ -7783,7 +7923,7 @@ _match:
if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV4);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7791,7 +7931,7 @@ _match:
{
if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH);
rdata_tail += ZS_INET4_ADDR_LENGTH;
@@ -7803,7 +7943,7 @@ _match:
if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) {
WARN(ZS_BAD_IPV6);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7811,7 +7951,7 @@ _match:
{
if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH);
rdata_tail += ZS_INET6_ADDR_LENGTH;
@@ -7844,7 +7984,7 @@ _match:
s->apl.prefix_length = (uint8_t)(s->number64);
} else {
WARN(ZS_BAD_APL);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7863,7 +8003,7 @@ _match:
break;
default:
WARN(ZS_BAD_APL);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
// Find prefix without trailing zeroes.
while (len > 0) {
@@ -7875,7 +8015,7 @@ _match:
// Check for rdata overflow.
if (rdata_tail + 4 + len > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
// Write address family.
uint16_t af = htons(s->apl.addr_family);
@@ -7895,7 +8035,7 @@ _match:
case 107:
{
WARN(ZS_BAD_APL);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 108:
@@ -7904,7 +8044,7 @@ _match:
*rdata_tail = first_hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7917,21 +8057,21 @@ _match:
case 110:
{
WARN(ZS_BAD_HEX_CHAR);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 111:
{
if ((rdata_tail - s->r_data) != s->r_data_length) {
WARN(ZS_BAD_RDATA_LENGTH);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
case 112:
{
WARN(ZS_BAD_HEX_RDATA);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 113:
@@ -7940,7 +8080,7 @@ _match:
*rdata_tail = first_base64_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7952,7 +8092,7 @@ _match:
*rdata_tail = second_right_base64_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7964,7 +8104,7 @@ _match:
*rdata_tail = third_right_base64_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -7976,11 +8116,11 @@ _match:
case 117:
{
WARN(ZS_BAD_BASE64_CHAR);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 118:
- { p--; {stack[top++] = cs; cs = 369;goto _again;} }
+ { p--; {stack[top++] = cs; cs = 378;goto _again;} }
break;
case 119:
{
@@ -7988,7 +8128,7 @@ _match:
*rdata_tail = first_base32hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -8000,7 +8140,7 @@ _match:
*rdata_tail = second_right_base32hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -8017,7 +8157,7 @@ _match:
*rdata_tail = fourth_right_base32hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -8029,7 +8169,7 @@ _match:
*rdata_tail = fifth_right_base32hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -8046,7 +8186,7 @@ _match:
*rdata_tail = seventh_right_base32hex_to_num[(uint8_t)(*p)];
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
@@ -8058,7 +8198,7 @@ _match:
case 127:
{
WARN(ZS_BAD_BASE32HEX_CHAR);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 128:
@@ -8226,19 +8366,19 @@ _match:
case 156:
{
WARN(ZS_BAD_GATEWAY);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 157:
{
WARN(ZS_BAD_GATEWAY_KEY);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 158:
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
case 159:
@@ -8386,166 +8526,172 @@ _match:
{ type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); }
break;
case 207:
+ { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); }
+ break;
+ case 208:
{
if (s->number64 <= UINT16_MAX) {
window_add_bit(s->number64, s);
} else {
WARN(ZS_NUMBER16_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 208:
+ case 209:
{ window_add_bit(KNOT_RRTYPE_A, s); }
break;
- case 209:
+ case 210:
{ window_add_bit(KNOT_RRTYPE_NS, s); }
break;
- case 210:
+ case 211:
{ window_add_bit(KNOT_RRTYPE_CNAME, s); }
break;
- case 211:
+ case 212:
{ window_add_bit(KNOT_RRTYPE_SOA, s); }
break;
- case 212:
+ case 213:
{ window_add_bit(KNOT_RRTYPE_PTR, s); }
break;
- case 213:
+ case 214:
{ window_add_bit(KNOT_RRTYPE_HINFO, s); }
break;
- case 214:
+ case 215:
{ window_add_bit(KNOT_RRTYPE_MINFO, s); }
break;
- case 215:
+ case 216:
{ window_add_bit(KNOT_RRTYPE_MX, s); }
break;
- case 216:
+ case 217:
{ window_add_bit(KNOT_RRTYPE_TXT, s); }
break;
- case 217:
+ case 218:
{ window_add_bit(KNOT_RRTYPE_RP, s); }
break;
- case 218:
+ case 219:
{ window_add_bit(KNOT_RRTYPE_AFSDB, s); }
break;
- case 219:
+ case 220:
{ window_add_bit(KNOT_RRTYPE_RT, s); }
break;
- case 220:
+ case 221:
{ window_add_bit(KNOT_RRTYPE_KEY, s); }
break;
- case 221:
+ case 222:
{ window_add_bit(KNOT_RRTYPE_AAAA, s); }
break;
- case 222:
+ case 223:
{ window_add_bit(KNOT_RRTYPE_LOC, s); }
break;
- case 223:
+ case 224:
{ window_add_bit(KNOT_RRTYPE_SRV, s); }
break;
- case 224:
+ case 225:
{ window_add_bit(KNOT_RRTYPE_NAPTR, s); }
break;
- case 225:
+ case 226:
{ window_add_bit(KNOT_RRTYPE_KX, s); }
break;
- case 226:
+ case 227:
{ window_add_bit(KNOT_RRTYPE_CERT, s); }
break;
- case 227:
+ case 228:
{ window_add_bit(KNOT_RRTYPE_DNAME, s); }
break;
- case 228:
+ case 229:
{ window_add_bit(KNOT_RRTYPE_APL, s); }
break;
- case 229:
+ case 230:
{ window_add_bit(KNOT_RRTYPE_DS, s); }
break;
- case 230:
+ case 231:
{ window_add_bit(KNOT_RRTYPE_SSHFP, s); }
break;
- case 231:
+ case 232:
{ window_add_bit(KNOT_RRTYPE_IPSECKEY, s); }
break;
- case 232:
+ case 233:
{ window_add_bit(KNOT_RRTYPE_RRSIG, s); }
break;
- case 233:
+ case 234:
{ window_add_bit(KNOT_RRTYPE_NSEC, s); }
break;
- case 234:
+ case 235:
{ window_add_bit(KNOT_RRTYPE_DNSKEY, s); }
break;
- case 235:
+ case 236:
{ window_add_bit(KNOT_RRTYPE_DHCID, s); }
break;
- case 236:
+ case 237:
{ window_add_bit(KNOT_RRTYPE_NSEC3, s); }
break;
- case 237:
+ case 238:
{ window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); }
break;
- case 238:
+ case 239:
{ window_add_bit(KNOT_RRTYPE_TLSA, s); }
break;
- case 239:
+ case 240:
{ window_add_bit(KNOT_RRTYPE_SMIMEA, s); }
break;
- case 240:
+ case 241:
{ window_add_bit(KNOT_RRTYPE_CDS, s); }
break;
- case 241:
+ case 242:
{ window_add_bit(KNOT_RRTYPE_CDNSKEY, s); }
break;
- case 242:
+ case 243:
{ window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); }
break;
- case 243:
+ case 244:
{ window_add_bit(KNOT_RRTYPE_CSYNC, s); }
break;
- case 244:
+ case 245:
{ window_add_bit(KNOT_RRTYPE_ZONEMD, s); }
break;
- case 245:
+ case 246:
{ window_add_bit(KNOT_RRTYPE_SPF, s); }
break;
- case 246:
+ case 247:
{ window_add_bit(KNOT_RRTYPE_NID, s); }
break;
- case 247:
+ case 248:
{ window_add_bit(KNOT_RRTYPE_L32, s); }
break;
- case 248:
+ case 249:
{ window_add_bit(KNOT_RRTYPE_L64, s); }
break;
- case 249:
+ case 250:
{ window_add_bit(KNOT_RRTYPE_LP, s); }
break;
- case 250:
+ case 251:
{ window_add_bit(KNOT_RRTYPE_EUI48, s); }
break;
- case 251:
+ case 252:
{ window_add_bit(KNOT_RRTYPE_EUI64, s); }
break;
- case 252:
+ case 253:
{ window_add_bit(KNOT_RRTYPE_URI, s); }
break;
- case 253:
+ case 254:
{ window_add_bit(KNOT_RRTYPE_CAA, s); }
break;
- case 254:
+ case 255:
{ window_add_bit(KNOT_RRTYPE_SVCB, s); }
break;
- case 255:
+ case 256:
{ window_add_bit(KNOT_RRTYPE_HTTPS, s); }
break;
- case 256:
+ case 257:
+ { window_add_bit(KNOT_RRTYPE_WALLET, s); }
+ break;
+ case 258:
{
memset(s->windows, 0, sizeof(s->windows));
s->last_window = -1;
}
break;
- case 257:
+ case 259:
{
for (uint16_t window = 0; window <= s->last_window; window++) {
if ((s->windows[window]).length > 0) {
@@ -8564,82 +8710,82 @@ _match:
rdata_tail += (s->windows[window]).length;
} else {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
}
}
break;
- case 258:
+ case 260:
{
WARN(ZS_BAD_BITMAP);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
- case 259:
- { p--; {stack[top++] = cs; cs = 376;goto _again;} }
+ case 261:
+ { p--; {stack[top++] = cs; cs = 385;goto _again;} }
break;
- case 260:
+ case 262:
{
if (s->number64 <= 90) {
s->loc.d1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 261:
+ case 263:
{
if (s->number64 <= 180) {
s->loc.d2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 262:
+ case 264:
{
if (s->number64 <= 59) {
s->loc.m1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 263:
+ case 265:
{
if (s->number64 <= 59) {
s->loc.m2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 264:
+ case 266:
{
if (s->number64 <= 59999) {
s->loc.s1 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 265:
+ case 267:
{
if (s->number64 <= 59999) {
s->loc.s2 = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 266:
+ case 268:
{
if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) ||
(s->loc.alt_sign == -1 && s->number64 <= 10000000))
@@ -8647,56 +8793,56 @@ _match:
s->loc.alt = (uint32_t)(s->number64);
} else {
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 267:
+ case 269:
{
if (s->number64 <= 9000000000ULL) {
s->loc.siz = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 268:
+ case 270:
{
if (s->number64 <= 9000000000ULL) {
s->loc.hp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 269:
+ case 271:
{
if (s->number64 <= 9000000000ULL) {
s->loc.vp = s->number64;
} else {
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 270:
+ case 272:
{
s->loc.lat_sign = -1;
}
break;
- case 271:
+ case 273:
{
s->loc.long_sign = -1;
}
break;
- case 272:
+ case 274:
{
s->loc.alt_sign = -1;
}
break;
- case 273:
+ case 275:
{
memset(&(s->loc), 0, sizeof(s->loc));
// Defaults.
@@ -8708,7 +8854,7 @@ _match:
s->loc.alt_sign = 1;
}
break;
- case 274:
+ case 276:
{
// Write version.
*(rdata_tail) = 0;
@@ -8736,278 +8882,279 @@ _match:
rdata_tail += 4;
}
break;
- case 275:
+ case 277:
{
WARN(ZS_BAD_LOC_DATA);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
- case 276:
+ case 278:
{
WARN(ZS_BAD_HEX_RDATA);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
- case 277:
+ case 279:
{
s->item_length = 0;
}
break;
- case 278:
+ case 280:
{
s->item_length++;
}
break;
- case 279:
+ case 281:
{
if (s->item_length != 6) {
WARN(ZS_BAD_EUI_LENGTH);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 280:
+ case 282:
{
if (s->item_length != 8) {
WARN(ZS_BAD_EUI_LENGTH);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 281:
+ case 283:
{
WARN(ZS_BAD_CHAR_DASH);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
- case 282:
+ case 284:
{
s->item_length = 0;
}
break;
- case 283:
+ case 285:
{
s->item_length++;
}
break;
- case 284:
+ case 286:
{
if (s->item_length != 4) {
WARN(ZS_BAD_L64_LENGTH);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 285:
+ case 287:
{
WARN(ZS_BAD_CHAR_COLON);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
- case 286:
+ case 288:
{
s->svcb.params_position = rdata_tail;
s->svcb.last_key = -1;
}
break;
- case 287:
+ case 289:
{
int ret = svcb_check(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 288:
+ case 290:
{
WARN(ZS_BAD_SVCB_PARAM);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
- case 289:
+ case 291:
{
WARN(ZS_BAD_SVCB_MANDATORY);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
- case 290:
+ case 292:
{
if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
s->svcb.param_position = rdata_tail;
}
break;
- case 291:
+ case 293:
{
int ret = svcb_sort(s, rdata_tail);
if (ret != ZS_OK) {
WARN(ret);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 292:
+ case 294:
{
s->comma_list = true;
s->pending_backslash = false;
}
break;
- case 293:
+ case 295:
{
s->comma_list = false;
if (s->pending_backslash) {
WARN(ZS_BAD_ALPN_BACKSLASH);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 294:
+ case 296:
{
s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix.
}
break;
- case 295:
+ case 297:
{
svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail);
}
break;
- case 296:
+ case 298:
{
if (rdata_tail + 2 > rdata_stop + 1) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
}
break;
- case 297:
- { p--; {stack[top++] = cs; cs = 559;goto _again;} }
+ case 299:
+ { p--; {stack[top++] = cs; cs = 574;goto _again;} }
break;
- case 298:
- { p--; {stack[top++] = cs; cs = 603;goto _again;} }
+ case 300:
+ { p--; {stack[top++] = cs; cs = 630;goto _again;} }
break;
- case 299:
+ case 301:
{
WARN(ZS_BAD_ALGORITHM);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
- case 300:
+ case 302:
{
WARN(ZS_BAD_CERT_TYPE);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
- case 301:
- { p--; {stack[top++] = cs; cs = 699;goto _again;} }
+ case 303:
+ { p--; {stack[top++] = cs; cs = 741;goto _again;} }
break;
- case 302:
- { p--; {stack[top++] = cs; cs = 803;goto _again;} }
+ case 304:
+ { p--; {stack[top++] = cs; cs = 845;goto _again;} }
break;
- case 303:
+ case 305:
{
rdata_tail = s->r_data;
}
break;
- case 304:
+ case 306:
{
WARN(ZS_BAD_RDATA);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
- case 305:
+ case 307:
{
p--;
switch (s->r_type) {
case KNOT_RRTYPE_A:
- {stack[top++] = cs; cs = 844;goto _again;}
+ {stack[top++] = cs; cs = 886;goto _again;}
case KNOT_RRTYPE_NS:
case KNOT_RRTYPE_CNAME:
case KNOT_RRTYPE_PTR:
case KNOT_RRTYPE_DNAME:
- {stack[top++] = cs; cs = 846;goto _again;}
+ {stack[top++] = cs; cs = 888;goto _again;}
case KNOT_RRTYPE_SOA:
- {stack[top++] = cs; cs = 848;goto _again;}
+ {stack[top++] = cs; cs = 890;goto _again;}
case KNOT_RRTYPE_HINFO:
- {stack[top++] = cs; cs = 880;goto _again;}
+ {stack[top++] = cs; cs = 922;goto _again;}
case KNOT_RRTYPE_MINFO:
case KNOT_RRTYPE_RP:
- {stack[top++] = cs; cs = 885;goto _again;}
+ {stack[top++] = cs; cs = 927;goto _again;}
case KNOT_RRTYPE_MX:
case KNOT_RRTYPE_AFSDB:
case KNOT_RRTYPE_RT:
case KNOT_RRTYPE_KX:
case KNOT_RRTYPE_LP:
- {stack[top++] = cs; cs = 890;goto _again;}
+ {stack[top++] = cs; cs = 932;goto _again;}
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
- {stack[top++] = cs; cs = 895;goto _again;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = cs; cs = 937;goto _again;}
case KNOT_RRTYPE_AAAA:
- {stack[top++] = cs; cs = 899;goto _again;}
+ {stack[top++] = cs; cs = 941;goto _again;}
case KNOT_RRTYPE_LOC:
- {stack[top++] = cs; cs = 901;goto _again;}
+ {stack[top++] = cs; cs = 943;goto _again;}
case KNOT_RRTYPE_SRV:
- {stack[top++] = cs; cs = 956;goto _again;}
+ {stack[top++] = cs; cs = 998;goto _again;}
case KNOT_RRTYPE_NAPTR:
- {stack[top++] = cs; cs = 967;goto _again;}
+ {stack[top++] = cs; cs = 1009;goto _again;}
case KNOT_RRTYPE_CERT:
- {stack[top++] = cs; cs = 984;goto _again;}
+ {stack[top++] = cs; cs = 1026;goto _again;}
case KNOT_RRTYPE_APL:
- {stack[top++] = cs; cs = 995;goto _again;}
+ {stack[top++] = cs; cs = 1037;goto _again;}
case KNOT_RRTYPE_DS:
case KNOT_RRTYPE_CDS:
- {stack[top++] = cs; cs = 1006;goto _again;}
+ {stack[top++] = cs; cs = 1048;goto _again;}
case KNOT_RRTYPE_SSHFP:
- {stack[top++] = cs; cs = 1019;goto _again;}
+ {stack[top++] = cs; cs = 1061;goto _again;}
case KNOT_RRTYPE_IPSECKEY:
- {stack[top++] = cs; cs = 1029;goto _again;}
+ {stack[top++] = cs; cs = 1071;goto _again;}
case KNOT_RRTYPE_RRSIG:
- {stack[top++] = cs; cs = 1068;goto _again;}
+ {stack[top++] = cs; cs = 1110;goto _again;}
case KNOT_RRTYPE_NSEC:
- {stack[top++] = cs; cs = 1254;goto _again;}
+ {stack[top++] = cs; cs = 1302;goto _again;}
case KNOT_RRTYPE_KEY:
case KNOT_RRTYPE_DNSKEY:
case KNOT_RRTYPE_CDNSKEY:
- {stack[top++] = cs; cs = 1257;goto _again;}
+ {stack[top++] = cs; cs = 1305;goto _again;}
case KNOT_RRTYPE_DHCID:
case KNOT_RRTYPE_OPENPGPKEY:
- {stack[top++] = cs; cs = 1268;goto _again;}
+ {stack[top++] = cs; cs = 1316;goto _again;}
case KNOT_RRTYPE_NSEC3:
- {stack[top++] = cs; cs = 1270;goto _again;}
+ {stack[top++] = cs; cs = 1318;goto _again;}
case KNOT_RRTYPE_NSEC3PARAM:
- {stack[top++] = cs; cs = 1299;goto _again;}
+ {stack[top++] = cs; cs = 1347;goto _again;}
case KNOT_RRTYPE_TLSA:
case KNOT_RRTYPE_SMIMEA:
- {stack[top++] = cs; cs = 1312;goto _again;}
+ {stack[top++] = cs; cs = 1360;goto _again;}
case KNOT_RRTYPE_CSYNC:
- {stack[top++] = cs; cs = 1325;goto _again;}
+ {stack[top++] = cs; cs = 1373;goto _again;}
case KNOT_RRTYPE_ZONEMD:
- {stack[top++] = cs; cs = 1331;goto _again;}
+ {stack[top++] = cs; cs = 1379;goto _again;}
case KNOT_RRTYPE_NID:
case KNOT_RRTYPE_L64:
- {stack[top++] = cs; cs = 1349;goto _again;}
+ {stack[top++] = cs; cs = 1397;goto _again;}
case KNOT_RRTYPE_L32:
- {stack[top++] = cs; cs = 1344;goto _again;}
+ {stack[top++] = cs; cs = 1392;goto _again;}
case KNOT_RRTYPE_EUI48:
- {stack[top++] = cs; cs = 1362;goto _again;}
+ {stack[top++] = cs; cs = 1410;goto _again;}
case KNOT_RRTYPE_EUI64:
- {stack[top++] = cs; cs = 1368;goto _again;}
+ {stack[top++] = cs; cs = 1416;goto _again;}
case KNOT_RRTYPE_URI:
- {stack[top++] = cs; cs = 1374;goto _again;}
+ {stack[top++] = cs; cs = 1422;goto _again;}
case KNOT_RRTYPE_CAA:
- {stack[top++] = cs; cs = 1382;goto _again;}
+ {stack[top++] = cs; cs = 1430;goto _again;}
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = cs; cs = 1390;goto _again;}
+ {stack[top++] = cs; cs = 1438;goto _again;}
default:
WARN(ZS_CANNOT_TEXT_DATA);
- {cs = 307;goto _again;}
+ {cs = 316;goto _again;}
}
}
break;
- case 306:
+ case 308:
{
switch (s->r_type) {
// Next types must not have empty rdata.
@@ -9058,183 +9205,187 @@ _match:
case KNOT_RRTYPE_CAA:
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
- {stack[top++] = cs; cs = 540;goto _again;}
+ case KNOT_RRTYPE_WALLET:
+ {stack[top++] = cs; cs = 555;goto _again;}
// Next types can have empty rdata.
case KNOT_RRTYPE_APL:
default:
- {stack[top++] = cs; cs = 549;goto _again;}
+ {stack[top++] = cs; cs = 564;goto _again;}
}
}
break;
- case 307:
+ case 309:
{
if (pe - p == 1) {
*wrap = WRAP_DETECTED;
}
}
break;
- case 308:
+ case 310:
{
if (*wrap == WRAP_NONE) {
p--;
}
}
break;
- case 309:
+ case 311:
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
break;
- case 310:
+ case 312:
{ s->r_type = KNOT_RRTYPE_A; }
break;
- case 311:
+ case 313:
{ s->r_type = KNOT_RRTYPE_NS; }
break;
- case 312:
+ case 314:
{ s->r_type = KNOT_RRTYPE_CNAME; }
break;
- case 313:
+ case 315:
{ s->r_type = KNOT_RRTYPE_SOA; }
break;
- case 314:
+ case 316:
{ s->r_type = KNOT_RRTYPE_PTR; }
break;
- case 315:
+ case 317:
{ s->r_type = KNOT_RRTYPE_HINFO; }
break;
- case 316:
+ case 318:
{ s->r_type = KNOT_RRTYPE_MINFO; }
break;
- case 317:
+ case 319:
{ s->r_type = KNOT_RRTYPE_MX; }
break;
- case 318:
+ case 320:
{ s->r_type = KNOT_RRTYPE_TXT; }
break;
- case 319:
+ case 321:
{ s->r_type = KNOT_RRTYPE_RP; }
break;
- case 320:
+ case 322:
{ s->r_type = KNOT_RRTYPE_AFSDB; }
break;
- case 321:
+ case 323:
{ s->r_type = KNOT_RRTYPE_RT; }
break;
- case 322:
+ case 324:
{ s->r_type = KNOT_RRTYPE_KEY; }
break;
- case 323:
+ case 325:
{ s->r_type = KNOT_RRTYPE_AAAA; }
break;
- case 324:
+ case 326:
{ s->r_type = KNOT_RRTYPE_LOC; }
break;
- case 325:
+ case 327:
{ s->r_type = KNOT_RRTYPE_SRV; }
break;
- case 326:
+ case 328:
{ s->r_type = KNOT_RRTYPE_NAPTR; }
break;
- case 327:
+ case 329:
{ s->r_type = KNOT_RRTYPE_KX; }
break;
- case 328:
+ case 330:
{ s->r_type = KNOT_RRTYPE_CERT; }
break;
- case 329:
+ case 331:
{ s->r_type = KNOT_RRTYPE_DNAME; }
break;
- case 330:
+ case 332:
{ s->r_type = KNOT_RRTYPE_APL; }
break;
- case 331:
+ case 333:
{ s->r_type = KNOT_RRTYPE_DS; }
break;
- case 332:
+ case 334:
{ s->r_type = KNOT_RRTYPE_SSHFP; }
break;
- case 333:
+ case 335:
{ s->r_type = KNOT_RRTYPE_IPSECKEY; }
break;
- case 334:
+ case 336:
{ s->r_type = KNOT_RRTYPE_RRSIG; }
break;
- case 335:
+ case 337:
{ s->r_type = KNOT_RRTYPE_NSEC; }
break;
- case 336:
+ case 338:
{ s->r_type = KNOT_RRTYPE_DNSKEY; }
break;
- case 337:
+ case 339:
{ s->r_type = KNOT_RRTYPE_DHCID; }
break;
- case 338:
+ case 340:
{ s->r_type = KNOT_RRTYPE_NSEC3; }
break;
- case 339:
+ case 341:
{ s->r_type = KNOT_RRTYPE_NSEC3PARAM; }
break;
- case 340:
+ case 342:
{ s->r_type = KNOT_RRTYPE_TLSA; }
break;
- case 341:
+ case 343:
{ s->r_type = KNOT_RRTYPE_SMIMEA; }
break;
- case 342:
+ case 344:
{ s->r_type = KNOT_RRTYPE_CDS; }
break;
- case 343:
+ case 345:
{ s->r_type = KNOT_RRTYPE_CDNSKEY; }
break;
- case 344:
+ case 346:
{ s->r_type = KNOT_RRTYPE_OPENPGPKEY; }
break;
- case 345:
+ case 347:
{ s->r_type = KNOT_RRTYPE_CSYNC; }
break;
- case 346:
+ case 348:
{ s->r_type = KNOT_RRTYPE_ZONEMD; }
break;
- case 347:
+ case 349:
{ s->r_type = KNOT_RRTYPE_SPF; }
break;
- case 348:
+ case 350:
{ s->r_type = KNOT_RRTYPE_NID; }
break;
- case 349:
+ case 351:
{ s->r_type = KNOT_RRTYPE_L32; }
break;
- case 350:
+ case 352:
{ s->r_type = KNOT_RRTYPE_L64; }
break;
- case 351:
+ case 353:
{ s->r_type = KNOT_RRTYPE_LP; }
break;
- case 352:
+ case 354:
{ s->r_type = KNOT_RRTYPE_EUI48; }
break;
- case 353:
+ case 355:
{ s->r_type = KNOT_RRTYPE_EUI64; }
break;
- case 354:
+ case 356:
{ s->r_type = KNOT_RRTYPE_URI; }
break;
- case 355:
+ case 357:
{ s->r_type = KNOT_RRTYPE_CAA; }
break;
- case 356:
+ case 358:
{ s->r_type = KNOT_RRTYPE_SVCB; }
break;
- case 357:
+ case 359:
{ s->r_type = KNOT_RRTYPE_HTTPS; }
break;
- case 358:
+ case 360:
+ { s->r_type = KNOT_RRTYPE_WALLET; }
+ break;
+ case 361:
{
if (rdata_tail - s->r_data > UINT16_MAX) {
WARN(ZS_RDATA_OVERFLOW);
- p--; {cs = 307;goto _again;}
+ p--; {cs = 316;goto _again;}
}
s->r_data_length = rdata_tail - s->r_data;
@@ -9274,7 +9425,7 @@ _again:
case 8:
{
WARN(ZS_BAD_REST);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9282,7 +9433,7 @@ goto _again;}
case 19:
{
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9290,7 +9441,7 @@ goto _again;}
case 24:
{
WARN(ZS_BAD_DNAME_CHAR);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9299,7 +9450,7 @@ goto _again;}
{
s->r_owner_length = 0;
WARN(ZS_BAD_OWNER);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9307,7 +9458,7 @@ goto _again;}
case 38:
{
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9315,7 +9466,7 @@ goto _again;}
case 50:
{
WARN(ZS_BAD_TIME_UNIT);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9323,7 +9474,7 @@ goto _again;}
case 60:
{
WARN(ZS_BAD_TIMESTAMP_CHAR);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9331,7 +9482,7 @@ goto _again;}
case 62:
{
WARN(ZS_BAD_TEXT_CHAR);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9339,7 +9490,7 @@ goto _again;}
case 63:
{
WARN(ZS_BAD_TEXT);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9347,7 +9498,7 @@ goto _again;}
case 67:
{
WARN(ZS_BAD_NUMBER);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9360,7 +9511,7 @@ goto _again;}
case 73:
{
ERR(ZS_BAD_TTL);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9368,7 +9519,7 @@ goto _again;}
case 77:
{
ERR(ZS_BAD_ORIGIN);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9376,7 +9527,7 @@ goto _again;}
case 81:
{
ERR(ZS_BAD_INCLUDE_FILENAME);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9384,7 +9535,7 @@ goto _again;}
case 84:
{
ERR(ZS_BAD_INCLUDE_ORIGIN);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9397,7 +9548,7 @@ goto _again;}
case 89:
{
ERR(ZS_BAD_DIRECTIVE);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9405,7 +9556,7 @@ goto _again;}
case 96:
{
WARN(ZS_BAD_ADDRESS_CHAR);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9413,7 +9564,7 @@ goto _again;}
case 107:
{
WARN(ZS_BAD_APL);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9421,7 +9572,7 @@ goto _again;}
case 110:
{
WARN(ZS_BAD_HEX_CHAR);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9429,7 +9580,7 @@ goto _again;}
case 112:
{
WARN(ZS_BAD_HEX_RDATA);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9437,7 +9588,7 @@ goto _again;}
case 117:
{
WARN(ZS_BAD_BASE64_CHAR);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9445,7 +9596,7 @@ goto _again;}
case 127:
{
WARN(ZS_BAD_BASE32HEX_CHAR);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9453,7 +9604,7 @@ goto _again;}
case 156:
{
WARN(ZS_BAD_GATEWAY);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9461,7 +9612,7 @@ goto _again;}
case 157:
{
WARN(ZS_BAD_GATEWAY_KEY);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
@@ -9469,95 +9620,95 @@ goto _again;}
case 158:
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
break;
- case 258:
+ case 260:
{
WARN(ZS_BAD_BITMAP);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
break;
- case 275:
+ case 277:
{
WARN(ZS_BAD_LOC_DATA);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
break;
- case 276:
+ case 278:
{
WARN(ZS_BAD_HEX_RDATA);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
break;
- case 281:
+ case 283:
{
WARN(ZS_BAD_CHAR_DASH);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
break;
- case 285:
+ case 287:
{
WARN(ZS_BAD_CHAR_COLON);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
break;
- case 288:
+ case 290:
{
WARN(ZS_BAD_SVCB_PARAM);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
break;
- case 289:
+ case 291:
{
WARN(ZS_BAD_SVCB_MANDATORY);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
break;
- case 299:
+ case 301:
{
WARN(ZS_BAD_ALGORITHM);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
break;
- case 300:
+ case 302:
{
WARN(ZS_BAD_CERT_TYPE);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
break;
- case 304:
+ case 306:
{
WARN(ZS_BAD_RDATA);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
break;
- case 309:
+ case 311:
{
WARN(ZS_UNSUPPORTED_TYPE);
- p--; {cs = 307; if ( p == pe )
+ p--; {cs = 316; if ( p == pe )
goto _test_eof;
goto _again;}
}
diff --git a/src/libzscanner/scanner_body.rl b/src/libzscanner/scanner_body.rl
index a1ff46c..33f87a8 100644
--- a/src/libzscanner/scanner_body.rl
+++ b/src/libzscanner/scanner_body.rl
@@ -1432,6 +1432,7 @@
| "CAA"i %{ type_num(KNOT_RRTYPE_CAA, &rdata_tail); }
| "SVCB"i %{ type_num(KNOT_RRTYPE_SVCB, &rdata_tail); }
| "HTTPS"i %{ type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); }
+ | "WALLET"i %{ type_num(KNOT_RRTYPE_WALLET, &rdata_tail); }
| "TYPE"i . num16 # TYPE0-TYPE65535.
) $!_type_error;
# END
@@ -1498,6 +1499,7 @@
| "CAA"i %{ window_add_bit(KNOT_RRTYPE_CAA, s); }
| "SVCB"i %{ window_add_bit(KNOT_RRTYPE_SVCB, s); }
| "HTTPS"i %{ window_add_bit(KNOT_RRTYPE_HTTPS, s); }
+ | "WALLET"i %{ window_add_bit(KNOT_RRTYPE_WALLET, s); }
| "TYPE"i . type_bitmap # TYPE0-TYPE65535.
);
@@ -1840,10 +1842,13 @@
svcb_key_ipv4hint = ("ipv4hint" %_write16_4);
svcb_key_ech = ("ech" %_write16_5);
svcb_key_ipv6hint = ("ipv6hint" %_write16_6);
+ svcb_key_dohpath = ("dohpath" %_write16_7);
+ svcb_key_ohttp = ("ohttp" %_write16_8);
mandat_value_ :=
(svcb_key_generic | svcb_key_alpn | svcb_key_ndalpn | svcb_key_port |
- svcb_key_ipv4hint | svcb_key_ech | svcb_key_ipv6hint
+ svcb_key_ipv4hint | svcb_key_ech | svcb_key_ipv6hint | svcb_key_dohpath |
+ svcb_key_ohttp
) >_rdata_2B_check $!_mandat_value_error %_ret . ([,\"] | all_wchar);
mandat_value = alpha ${ fhold; fcall mandat_value_; };
@@ -1857,20 +1862,24 @@
svcb_ipv4 = ((ipv4_addr_write . ("," . ipv4_addr_write)*) >_item_length2_init %_item_length2_exit);
svcb_ech = (base64_quartet+ >_item_length2_init %_item_length2_exit);
svcb_ipv6 = ((ipv6_addr_write . ("," . ipv6_addr_write)*) >_item_length2_init %_item_length2_exit);
+ svcb_dohpath = (text >_item_length2_init %_item_length2_exit);
svcb_param_generic = (svcb_key_generic . svcb_generic);
- svcb_param_mandatory = (svcb_key_mandatory . "=" . (svcb_mandat | ('\"' . svcb_mandat . '\"')));
- svcb_param_alpn = (svcb_key_alpn . "=" . (svcb_alpn | ('\"' . svcb_alpn . '\"')));
+ svcb_param_mandatory = (svcb_key_mandatory . "=" . (svcb_mandat | ('\"' . svcb_mandat . '\"')));
+ svcb_param_alpn = (svcb_key_alpn . "=" . (svcb_alpn | ('\"' . svcb_alpn . '\"')));
svcb_param_ndalpn = (svcb_key_ndalpn . svcb_empty);
- svcb_param_port = (svcb_key_port . "=" . (svcb_port | ('\"' . svcb_port . '\"')));
- svcb_param_ipv4hint = (svcb_key_ipv4hint . "=" . (svcb_ipv4 | ('\"' . svcb_ipv4 . '\"')));
- svcb_param_ech = (svcb_key_ech . "=" . (svcb_ech | ('\"' . svcb_ech . '\"')));
- svcb_param_ipv6hint = (svcb_key_ipv6hint . "=" . (svcb_ipv6 | ('\"' . svcb_ipv6 . '\"')));
+ svcb_param_port = (svcb_key_port . "=" . (svcb_port | ('\"' . svcb_port . '\"')));
+ svcb_param_ipv4hint = (svcb_key_ipv4hint . "=" . (svcb_ipv4 | ('\"' . svcb_ipv4 . '\"')));
+ svcb_param_ech = (svcb_key_ech . "=" . (svcb_ech | ('\"' . svcb_ech . '\"')));
+ svcb_param_ipv6hint = (svcb_key_ipv6hint . "=" . (svcb_ipv6 | ('\"' . svcb_ipv6 . '\"')));
+ svcb_param_dohpath = (svcb_key_dohpath . "=" . (svcb_dohpath | ('\"' . svcb_dohpath . '\"')));
+ svcb_param_ohttp = (svcb_key_ohttp . svcb_empty);
svcb_param_any =
(svcb_param_generic | svcb_param_mandatory | svcb_param_alpn |
svcb_param_ndalpn | svcb_param_port | svcb_param_ipv4hint |
- svcb_param_ech | svcb_param_ipv6hint
+ svcb_param_ech | svcb_param_ipv6hint | svcb_param_dohpath |
+ svcb_param_ohttp
) >_svcb_param_init %_svcb_param_exit;
svcb_params_ :=
((sep . svcb_param_any)* . sep?) >_svcb_params_init
@@ -2092,6 +2101,7 @@
fcall r_data_mx;
case KNOT_RRTYPE_TXT:
case KNOT_RRTYPE_SPF:
+ case KNOT_RRTYPE_WALLET:
fcall r_data_txt;
case KNOT_RRTYPE_AAAA:
fcall r_data_aaaa;
@@ -2205,6 +2215,7 @@
case KNOT_RRTYPE_CAA:
case KNOT_RRTYPE_SVCB:
case KNOT_RRTYPE_HTTPS:
+ case KNOT_RRTYPE_WALLET:
fcall nonempty_hex_r_data;
// Next types can have empty rdata.
case KNOT_RRTYPE_APL:
@@ -2289,6 +2300,7 @@
| "CAA"i %{ s->r_type = KNOT_RRTYPE_CAA; }
| "SVCB"i %{ s->r_type = KNOT_RRTYPE_SVCB; }
| "HTTPS"i %{ s->r_type = KNOT_RRTYPE_HTTPS; }
+ | "WALLET"i %{ s->r_type = KNOT_RRTYPE_WALLET; }
| "TYPE"i . type_number
) $!_r_type_error;
# END
diff --git a/src/libzscanner/version.h b/src/libzscanner/version.h
index ed64fa2..05ab471 100644
--- a/src/libzscanner/version.h
+++ b/src/libzscanner/version.h
@@ -17,8 +17,8 @@
#pragma once
#define ZSCANNER_VERSION_MAJOR 3
-#define ZSCANNER_VERSION_MINOR 3
-#define ZSCANNER_VERSION_PATCH 0x07
+#define ZSCANNER_VERSION_MINOR 4
+#define ZSCANNER_VERSION_PATCH 0x00
#define ZSCANNER_VERSION_HEX ((ZSCANNER_VERSION_MAJOR << 16) | \
(ZSCANNER_VERSION_MINOR << 8) | \
diff --git a/src/utils/Makefile.inc b/src/utils/Makefile.inc
index b39b10d..1f11282 100644
--- a/src/utils/Makefile.inc
+++ b/src/utils/Makefile.inc
@@ -103,7 +103,11 @@ kxdpgun_SOURCES = \
utils/kxdpgun/ip_route.h \
utils/kxdpgun/load_queries.c \
utils/kxdpgun/load_queries.h \
- utils/kxdpgun/main.c
+ utils/kxdpgun/main.c \
+ utils/kxdpgun/main.h \
+ utils/kxdpgun/stats.c \
+ utils/kxdpgun/stats.h
+
kxdpgun_CPPFLAGS = $(libknotus_la_CPPFLAGS) $(libmnl_CFLAGS)
kxdpgun_LDADD = libknot.la $(libcontrib_LIBS) $(libmnl_LIBS) $(pthread_LIBS)
@@ -159,6 +163,8 @@ keymgr_SOURCES = \
utils/keymgr/bind_privkey.h \
utils/keymgr/functions.c \
utils/keymgr/functions.h \
+ utils/keymgr/keystore.c \
+ utils/keymgr/keystore.h \
utils/keymgr/offline_ksk.c \
utils/keymgr/offline_ksk.h \
utils/keymgr/main.c
diff --git a/src/utils/common/msg.h b/src/utils/common/msg.h
index d2ed57e..fbd6c8e 100644
--- a/src/utils/common/msg.h
+++ b/src/utils/common/msg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,10 +23,10 @@
#define WARNING_ ";; WARNING: "
#define DEBUG_ ";; DEBUG: "
-#define ERR(msg, ...) { fprintf(stderr, ERROR_ msg "\n", ##__VA_ARGS__); fflush(stderr); }
-#define INFO(msg, ...) { fprintf(stdout, INFO_ msg "\n", ##__VA_ARGS__); fflush(stdout); }
-#define WARN(msg, ...) { fprintf(stderr, WARNING_ msg "\n", ##__VA_ARGS__); fflush(stderr); }
-#define DBG(msg, ...) { msg_debug(DEBUG_ msg "\n", ##__VA_ARGS__); fflush(stdout); }
+#define ERR(msg, ...) do { fprintf(stderr, ERROR_ msg "\n", ##__VA_ARGS__); fflush(stderr); } while (0)
+#define INFO(msg, ...) do { fprintf(stdout, INFO_ msg "\n", ##__VA_ARGS__); fflush(stdout); } while (0)
+#define WARN(msg, ...) do { fprintf(stderr, WARNING_ msg "\n", ##__VA_ARGS__); fflush(stderr); } while (0)
+#define DBG(msg, ...) do { msg_debug(DEBUG_ msg "\n", ##__VA_ARGS__); fflush(stdout); } while (0)
/*! \brief Enable/disable debugging. */
int msg_enable_debug(int val);
@@ -37,6 +37,6 @@ int msg_debug(const char *fmt, ...);
/*! \brief Debug message for null input. */
#define DBG_NULL DBG("%s: null parameter", __func__)
-#define ERR2(msg, ...) { fprintf(stderr, "error: " msg "\n", ##__VA_ARGS__); fflush(stderr); }
-#define WARN2(msg, ...) { fprintf(stderr, "warning: " msg "\n", ##__VA_ARGS__); fflush(stderr); }
-#define INFO2(msg, ...) { fprintf(stdout, msg "\n", ##__VA_ARGS__); fflush(stdout); }
+#define ERR2(msg, ...) do { fprintf(stderr, "error: " msg "\n", ##__VA_ARGS__); fflush(stderr); } while (0)
+#define WARN2(msg, ...) do { fprintf(stderr, "warning: " msg "\n", ##__VA_ARGS__); fflush(stderr); } while (0)
+#define INFO2(msg, ...) do { fprintf(stdout, msg "\n", ##__VA_ARGS__); fflush(stdout); } while (0)
diff --git a/src/utils/common/netio.c b/src/utils/common/netio.c
index eed14ee..8ea7b59 100644
--- a/src/utils/common/netio.c
+++ b/src/utils/common/netio.c
@@ -32,6 +32,7 @@
#include "utils/common/msg.h"
#include "utils/common/tls.h"
#include "libknot/libknot.h"
+#include "libknot/quic/tls_common.h"
#include "contrib/net.h"
#include "contrib/proxyv2/proxyv2.h"
#include "contrib/sockaddr.h"
@@ -521,8 +522,8 @@ int net_connect(net_t *net)
#endif //LIBNGHTTP2
{
// Establish TLS connection.
- ret = tls_ctx_setup_remote_endpoint(&net->tls, &dot_alpn, 1, NULL,
- net_get_remote(net));
+ ret = tls_ctx_setup_remote_endpoint(&net->tls, &dot_alpn, 1,
+ KNOT_TLS_PRIORITIES, net_get_remote(net));
if (ret != 0) {
net_close(net);
return ret;
@@ -546,7 +547,7 @@ int net_connect(net_t *net)
return ret;
}
ret = tls_ctx_setup_remote_endpoint(&net->tls,
- &doq_alpn, 1, QUIC_PRIORITY, net_get_remote(net));
+ &doq_alpn, 1, KNOT_TLS_PRIORITIES, net_get_remote(net));
if (ret != 0) {
net_close(net);
return ret;
diff --git a/src/utils/common/params.c b/src/utils/common/params.c
index d16af4c..fe5a854 100644
--- a/src/utils/common/params.c
+++ b/src/utils/common/params.c
@@ -21,7 +21,7 @@
#include <sys/socket.h>
#ifdef LIBIDN
-#include LIBIDN_HEADER
+#include <idn2.h>
#endif
#include "utils/common/params.h"
diff --git a/src/utils/common/params.h b/src/utils/common/params.h
index 8b7565e..bb071aa 100644
--- a/src/utils/common/params.h
+++ b/src/utils/common/params.h
@@ -22,6 +22,7 @@
#include <stdio.h>
#include "libknot/libknot.h"
+#include "contrib/string.h"
#include "contrib/ucw/lists.h"
#define DEFAULT_IPV4_NAME "127.0.0.1"
@@ -31,7 +32,7 @@
#define DEFAULT_DNS_QUIC_PORT "853"
#define DEFAULT_DNS_TLS_PORT "853"
#define DEFAULT_UDP_SIZE 512
-#define DEFAULT_EDNS_SIZE 4096
+#define DEFAULT_EDNS_SIZE 1232
#define MAX_PACKET_SIZE 65535
#define SEP_CHARS "\n\t "
@@ -118,9 +119,15 @@ typedef struct {
param_handle_f handler;
} param_t;
-inline static void print_version(const char *program_name)
+inline static void print_version(const char *prog_name, bool verbose)
{
- printf("%s (Knot DNS), version %s\n", program_name, PACKAGE_VERSION);
+ if (prog_name != NULL) {
+ printf("%s, ", prog_name);
+ }
+ printf("Knot DNS %s\n", PACKAGE_VERSION);
+ if (verbose) {
+ printf("\n%s\n", configure_summary);
+ }
}
/*!
diff --git a/src/utils/common/quic.h b/src/utils/common/quic.h
index fd70d27..2b860c3 100644
--- a/src/utils/common/quic.h
+++ b/src/utils/common/quic.h
@@ -35,10 +35,6 @@ void quic_params_clean(quic_params_t *params);
#include "utils/common/tls.h"
-#define QUIC_DEFAULT_VERSION "-VERS-ALL:+VERS-TLS1.3"
-#define QUIC_DEFAULT_GROUPS "-GROUP-ALL:+GROUP-X25519:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-SECP521R1"
-#define QUIC_PRIORITY "%DISABLE_TLS13_COMPAT_MODE:NORMAL:"QUIC_DEFAULT_VERSION":"QUIC_DEFAULT_GROUPS
-
typedef enum {
CLOSED, // Initialized
CONNECTED, // RTT-0
diff --git a/src/utils/common/tls.c b/src/utils/common/tls.c
index 276ae16..4c9a588 100644
--- a/src/utils/common/tls.c
+++ b/src/utils/common/tls.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -398,7 +398,7 @@ int tls_certificate_verification(tls_ctx_t *ctx)
};
size_t data_count = (ctx->params->hostname != NULL) ? 2 : 1;
if (data_count == 1) {
- WARN("TLS, no hostname provided, will not verify certificate owner")
+ WARN("TLS, no hostname provided, will not verify certificate owner");
}
unsigned int status;
@@ -533,7 +533,8 @@ int tls_ctx_setup_remote_endpoint(tls_ctx_t *ctx, const gnutls_datum_t *alpn,
}
if (priority != NULL) {
- ret = gnutls_priority_set_direct(ctx->session, priority, NULL);
+ ret = gnutls_set_default_priority_append(ctx->session, priority,
+ NULL, 0);
} else {
ret = gnutls_set_default_priority(ctx->session);
}
diff --git a/src/utils/kcatalogprint/main.c b/src/utils/kcatalogprint/main.c
index 0172347..85e50b6 100644
--- a/src/utils/kcatalogprint/main.c
+++ b/src/utils/kcatalogprint/main.c
@@ -108,7 +108,7 @@ int main(int argc, char *argv[])
{ "catalog", required_argument, NULL, 'a' },
{ "member", required_argument, NULL, 'm' },
{ "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
+ { "version", optional_argument, NULL, 'V' },
{ NULL }
};
@@ -116,7 +116,7 @@ int main(int argc, char *argv[])
signal_init_std();
int opt = 0;
- while ((opt = getopt_long(argc, argv, "c:C:D:a:m:hV", opts, NULL)) != -1) {
+ while ((opt = getopt_long(argc, argv, "c:C:D:a:m:hV::", opts, NULL)) != -1) {
switch (opt) {
case 'c':
if (util_conf_init_file(optarg) != KNOT_EOK) {
@@ -147,7 +147,7 @@ int main(int argc, char *argv[])
print_help();
goto success;
case 'V':
- print_version(PROGRAM_NAME);
+ print_version(PROGRAM_NAME, optarg != NULL);
goto success;
default:
print_help();
@@ -155,13 +155,9 @@ int main(int argc, char *argv[])
}
}
- // Backward compatibility.
if (argc - optind > 0) {
- WARN2("obsolete parameter specified");
- if (util_conf_init_justdb("catalog-db", argv[optind]) != KNOT_EOK) {
- goto failure;
- }
- optind++;
+ print_help();
+ goto failure;
}
if (util_conf_init_default(true) != KNOT_EOK) {
diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c
index c8fd83f..8566848 100644
--- a/src/utils/kdig/kdig_params.c
+++ b/src/utils/kdig/kdig_params.c
@@ -1690,7 +1690,7 @@ query_t *query_create(const char *owner, const query_t *conf)
query->style.style.now = knot_time();
query->idn = true;
query->nsid = false;
- query->edns = -1;
+ query->edns = 0;
query->cc.len = 0;
query->sc.len = 0;
query->badcookie = BADCOOKIE_RETRY_MAX;
@@ -2517,12 +2517,7 @@ static int parse_opt1(const char *opt, const char *value, kdig_params_t *params,
*index += add;
break;
case 'V':
- if (len > 1) {
- ERR("invalid option -%s", opt);
- return KNOT_ENOTSUP;
- }
-
- print_version(PROGRAM_NAME);
+ print_version(PROGRAM_NAME, len > 1);
params->stop = true;
break;
case 'x':
@@ -2598,8 +2593,8 @@ static int parse_opt1(const char *opt, const char *value, kdig_params_t *params,
if (strcmp(opt, "-help") == 0) {
print_help();
params->stop = true;
- } else if (strcmp(opt, "-version") == 0) {
- print_version(PROGRAM_NAME);
+ } else if (strncmp(opt, "-version", 8) == 0) {
+ print_version(PROGRAM_NAME, strlen(opt) > 9);
params->stop = true;
} else {
ERR("invalid option: -%s", opt);
diff --git a/src/utils/keymgr/bind_privkey.c b/src/utils/keymgr/bind_privkey.c
index 9ab895c..bbb61a5 100644
--- a/src/utils/keymgr/bind_privkey.c
+++ b/src/utils/keymgr/bind_privkey.c
@@ -281,9 +281,7 @@ static int rsa_params_to_pem(const bind_privkey_t *params, dnssec_binary_t *pem)
static gnutls_ecc_curve_t choose_ecdsa_curve(size_t pubkey_size)
{
switch (pubkey_size) {
-#ifdef HAVE_ED25519
case 32: return GNUTLS_ECC_CURVE_ED25519;
-#endif
#ifdef HAVE_ED448
case 57: return GNUTLS_ECC_CURVE_ED448;
#endif
@@ -334,7 +332,6 @@ static int ecdsa_params_to_pem(dnssec_key_t *dnskey, const bind_privkey_t *param
return dnssec_pem_from_x509(key, pem);
}
-#if defined(HAVE_ED25519) || defined(HAVE_ED448)
static void eddsa_extract_public_params(dnssec_key_t *key, gnutls_ecc_curve_t *curve,
gnutls_datum_t *x)
{
@@ -371,7 +368,6 @@ static int eddsa_params_to_pem(dnssec_key_t *dnskey, const bind_privkey_t *param
return dnssec_pem_from_x509(key, pem);
}
-#endif
int bind_privkey_to_pem(dnssec_key_t *key, bind_privkey_t *params, dnssec_binary_t *pem)
{
@@ -385,15 +381,11 @@ int bind_privkey_to_pem(dnssec_key_t *key, bind_privkey_t *params, dnssec_binary
case DNSSEC_KEY_ALGORITHM_ECDSA_P256_SHA256:
case DNSSEC_KEY_ALGORITHM_ECDSA_P384_SHA384:
return ecdsa_params_to_pem(key, params, pem);
-#ifdef HAVE_ED25519
case DNSSEC_KEY_ALGORITHM_ED25519:
-#endif
#ifdef HAVE_ED448
case DNSSEC_KEY_ALGORITHM_ED448:
#endif
-#if defined(HAVE_ED25519) || defined(HAVE_ED448)
return eddsa_params_to_pem(key, params, pem);
-#endif
default:
return DNSSEC_INVALID_KEY_ALGORITHM;
}
diff --git a/src/utils/keymgr/keystore.c b/src/utils/keymgr/keystore.c
new file mode 100644
index 0000000..a4a0937
--- /dev/null
+++ b/src/utils/keymgr/keystore.c
@@ -0,0 +1,395 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#include <stdio.h>
+
+#include "utils/keymgr/keystore.h"
+
+#include "contrib/color.h"
+#include "contrib/spinlock.h"
+#include "contrib/time.h"
+#include "libdnssec/error.h"
+#include "libdnssec/key/algorithm.h"
+#include "libdnssec/key/privkey.h"
+#include "libdnssec/random.h"
+#include "libdnssec/sample_keys.h"
+#include "libdnssec/sign.h"
+#include "libknot/errcode.h"
+#include "knot/conf/conf.h"
+#include "knot/dnssec/kasp/kasp_zone.h"
+#include "knot/server/dthreads.h"
+#include "utils/common/msg.h"
+
+#define DFLT_ID "-"
+
+#define TEST_FORMAT "%-18s %9s %9s %9s %9s\n"
+#define BENCH_FORMAT "%-18s %9"
+#define BENCH_TIME 3000
+
+static const key_parameters_t *KEYS[] = {
+ &SAMPLE_RSA_KEY,
+ &SAMPLE_ECDSA_KEY,
+ &SAMPLE_ED25519_KEY,
+ &SAMPLE_ED448_KEY,
+};
+static const int KEYS_COUNT = sizeof(KEYS) / sizeof(*KEYS);
+
+static int create_dnskeys(dnssec_keystore_t *keystore, const char *id,
+ dnssec_key_algorithm_t algorithm,
+ dnssec_key_t **test_key_ptr, dnssec_key_t **ref_key_ptr)
+{
+ dnssec_key_t *test_key = NULL;
+ if (dnssec_key_new(&test_key) != DNSSEC_EOK ||
+ dnssec_key_set_algorithm(test_key, algorithm) != DNSSEC_EOK ||
+ dnssec_keystore_get_private(keystore, id, test_key) != DNSSEC_EOK) {
+ dnssec_key_free(test_key);
+ return KNOT_ERROR;
+ }
+
+ dnssec_binary_t rdata;
+ dnssec_key_t *ref_key = NULL;
+ if (dnssec_key_new(&ref_key) != DNSSEC_EOK ||
+ dnssec_key_get_rdata(test_key, &rdata) != DNSSEC_EOK ||
+ dnssec_key_set_rdata(ref_key, &rdata) != DNSSEC_EOK) {
+ dnssec_key_free(test_key);
+ dnssec_key_free(ref_key);
+ return KNOT_ERROR;
+ }
+
+ *test_key_ptr = test_key;
+ *ref_key_ptr = ref_key;
+
+ return KNOT_EOK;
+}
+
+static int test_sign(dnssec_key_t *test_key, dnssec_key_t *ref_key)
+{
+ static const dnssec_binary_t input = {
+ .data = (uint8_t *)"WuSEFCiFEKDTKuErihBW76q7p70dHuCfS6c1ffCK6ST",
+ .size = 43
+ };
+
+ dnssec_binary_t sign = { 0 };
+
+ dnssec_sign_ctx_t *ctx = NULL;
+ if (dnssec_sign_new(&ctx, test_key) != DNSSEC_EOK ||
+ dnssec_sign_add(ctx, &input) != DNSSEC_EOK ||
+ dnssec_sign_write(ctx, DNSSEC_SIGN_NORMAL, &sign) != DNSSEC_EOK) {
+ dnssec_binary_free(&sign);
+ dnssec_sign_free(ctx);
+ return KNOT_ERROR;
+ }
+
+ if (dnssec_sign_init(ctx) != DNSSEC_EOK ||
+ dnssec_sign_add(ctx, &input) != DNSSEC_EOK ||
+ dnssec_sign_verify(ctx, false, &sign) != DNSSEC_EOK) {
+ dnssec_binary_free(&sign);
+ dnssec_sign_free(ctx);
+ return KNOT_ERROR;
+ }
+
+ dnssec_sign_free(ctx);
+ ctx = NULL;
+
+ if (dnssec_sign_new(&ctx, ref_key) != DNSSEC_EOK ||
+ dnssec_sign_add(ctx, &input) != DNSSEC_EOK ||
+ dnssec_sign_verify(ctx, false, &sign) != DNSSEC_EOK) {
+ dnssec_binary_free(&sign);
+ dnssec_sign_free(ctx);
+ return KNOT_ERROR;
+ }
+
+ dnssec_binary_free(&sign);
+ dnssec_sign_free(ctx);
+
+ return KNOT_EOK;
+}
+
+static int test_key_use(dnssec_keystore_t *store, const char *keyid,
+ dnssec_key_algorithm_t algorithm)
+{
+ dnssec_key_t *test_key = NULL;
+ dnssec_key_t *ref_key = NULL;
+
+ if (create_dnskeys(store, keyid, algorithm, &test_key, &ref_key) != KNOT_EOK) {
+ return KNOT_ERROR;
+ }
+
+ if (test_sign(test_key, ref_key) != KNOT_EOK) {
+ dnssec_key_free(test_key);
+ dnssec_key_free(ref_key);
+ return KNOT_ERROR;
+ }
+
+ dnssec_key_free(test_key);
+ dnssec_key_free(ref_key);
+
+ return KNOT_EOK;
+}
+
+static void test_algorithm(dnssec_keystore_t *store,
+ const key_parameters_t *params)
+{
+ struct {
+ bool generate;
+ bool import;
+ bool remove;
+ bool use;
+ } res = { 0 };
+
+ char *id = NULL;
+ int ret = dnssec_keystore_generate(store, params->algorithm,
+ params->bit_size, NULL, &id);
+ if (ret == DNSSEC_EOK) {
+ res.generate = true;
+
+ ret = test_key_use(store, id, params->algorithm);
+ res.use = (ret == KNOT_EOK);
+
+ ret = dnssec_keystore_remove(store, id);
+ res.remove = (ret == DNSSEC_EOK);
+ free(id);
+ }
+
+ ret = dnssec_keystore_import(store, &params->pem, &id);
+ if (ret == DNSSEC_EOK) {
+ res.import = true;
+
+ ret = test_key_use(store, id, params->algorithm);
+ if (res.generate) {
+ res.use &= (ret == KNOT_EOK);
+ } else {
+ res.use = (ret == KNOT_EOK);
+ }
+
+ ret = dnssec_keystore_remove(store, id);
+ if (res.generate) {
+ res.remove &= (ret == DNSSEC_EOK);
+ } else {
+ res.remove = (ret == DNSSEC_EOK);
+ }
+ free(id);
+ }
+
+ const knot_lookup_t *alg_info = knot_lookup_by_id(knot_dnssec_alg_names,
+ params->algorithm);
+ assert(alg_info);
+
+ printf(TEST_FORMAT,
+ alg_info->name,
+ res.generate ? "yes" : "no",
+ res.import ? "yes" : "no",
+ res.remove ? "yes" : "no",
+ res.use ? "yes" : "no");
+}
+
+static int init_keystore(dnssec_keystore_t **store, const char *keystore_id,
+ unsigned threads)
+{
+ size_t len = strlen(keystore_id) + 1;
+ conf_val_t id = conf_rawid_get(conf(), C_KEYSTORE, C_ID,
+ (const uint8_t *)keystore_id, len);
+ if (id.code != KNOT_EOK && strcmp(keystore_id, DFLT_ID) != 0) {
+ ERR2("keystore '%s' not configured", keystore_id);
+ return id.code;
+ }
+ id.blob = (const uint8_t *)keystore_id;
+ id.blob_len = len;
+
+ unsigned backend;
+ bool key_label;
+
+ int ret = zone_init_keystore(conf(), NULL, &id, store, &backend, &key_label);
+ if (ret != KNOT_EOK) {
+ ERR2("failed to open '%s' keystore (%s)", keystore_id, knot_strerror(ret));
+ return ret;
+ }
+
+ if (strcmp(keystore_id, DFLT_ID) == 0) {
+ printf("Keystore default");
+ } else {
+ printf("Keystore id '%s'", keystore_id);
+ };
+ printf(", type %s", (backend == KEYSTORE_BACKEND_PEM ? "PEM" : "PKCS #11"));
+ if (threads > 0) {
+ printf(", threads %u", threads);
+ }
+ printf("\n\n");
+
+ return KNOT_EOK;
+}
+
+int keymgr_keystore_test(const char *keystore_id, keymgr_list_params_t *params)
+{
+ dnssec_keystore_t *store = NULL;
+
+ int ret = init_keystore(&store, keystore_id, 0);
+ if (ret != KNOT_EOK) {
+ goto done;
+ }
+
+ const bool c = params->color;
+ printf("%s" TEST_FORMAT "%s",
+ COL_UNDR(c),
+ "Algorithm", "Generate", "Import", "Remove", "Use",
+ COL_RST(c));
+ for (int i = 0; i < KEYS_COUNT; i++) {
+ test_algorithm(store, KEYS[i]);
+ }
+done:
+ dnssec_keystore_deinit(store);
+
+ return ret;
+}
+
+struct result {
+ unsigned long signs;
+ unsigned long time;
+};
+
+typedef struct bench_ctx {
+ dnssec_keystore_t *store;
+ const key_parameters_t *params;
+ struct result *results;
+ knot_spin_t lock;
+} bench_ctx_t;
+
+static int bench(dthread_t *dt)
+{
+ assert(dt != NULL && dt->data != NULL);
+
+ bench_ctx_t *data = dt->data;
+ dnssec_keystore_t *store = data->store;
+ const key_parameters_t *params = data->params;
+ struct result *result = data->results + dt_get_id(dt);
+
+ result->time = 0;
+ result->signs = 0;
+
+ char *id = NULL;
+ dnssec_key_t *test_key = NULL;
+ knot_spin_lock(&data->lock);
+ int ret = dnssec_keystore_generate(store, params->algorithm,
+ params->bit_size, NULL, &id);
+ if (ret != DNSSEC_EOK ||
+ dnssec_key_new(&test_key) != DNSSEC_EOK ||
+ dnssec_key_set_algorithm(test_key, params->algorithm) != DNSSEC_EOK ||
+ dnssec_keystore_get_private(store, id, test_key) != DNSSEC_EOK) {
+ goto finish;
+ }
+ knot_spin_unlock(&data->lock);
+
+ uint8_t input_data[64];
+ dnssec_binary_t input = {
+ .data = input_data,
+ .size = sizeof(input_data)
+ };
+ (void)dnssec_random_binary(&input);
+
+ struct timespec start_ts, end_ts;
+ clock_gettime(CLOCK_MONOTONIC, &start_ts);
+
+ while (result->time < BENCH_TIME) {
+ dnssec_binary_t sign = { 0 };
+ dnssec_sign_ctx_t *ctx = NULL;
+ if (dnssec_sign_new(&ctx, test_key) != DNSSEC_EOK ||
+ dnssec_sign_add(ctx, &input) != DNSSEC_EOK ||
+ dnssec_sign_write(ctx, DNSSEC_SIGN_NORMAL, &sign) != DNSSEC_EOK) {
+ dnssec_binary_free(&sign);
+ dnssec_sign_free(ctx);
+ result->time = 0;
+ goto finish;
+ }
+ memcpy(input.data, sign.data, MIN(input.size, sign.size));
+ dnssec_binary_free(&sign);
+ dnssec_sign_free(ctx);
+
+ clock_gettime(CLOCK_MONOTONIC, &end_ts);
+ result->time = time_diff_ms(&start_ts, &end_ts);
+ result->signs++;
+ }
+
+finish:
+ knot_spin_unlock(&data->lock);
+ dnssec_key_free(test_key);
+ (void)dnssec_keystore_remove(store, id);
+ free(id);
+
+ return KNOT_EOK;
+}
+
+int keymgr_keystore_bench(const char *keystore_id, keymgr_list_params_t *params,
+ uint16_t threads)
+{
+ dnssec_keystore_t *store = NULL;
+
+ int ret = init_keystore(&store, keystore_id, threads);
+ if (ret != KNOT_EOK) {
+ return ret;
+ }
+
+ const bool c = params->color;
+ printf("%s" BENCH_FORMAT"s\n" "%s",
+ COL_UNDR(c),
+ "Algorithm", "Sigs/sec",
+ COL_RST(c));
+
+ for (int i = 0; i < KEYS_COUNT; i++) {
+ struct result results[threads];
+ bench_ctx_t d = {
+ .store = store,
+ .params = KEYS[i],
+ .results = results
+ };
+ knot_spin_init(&d.lock);
+
+ dt_unit_t *pool = dt_create(threads, bench, NULL, &d);
+ if (pool == NULL ||
+ dt_start(pool) != KNOT_EOK ||
+ dt_join(pool) != KNOT_EOK) {
+ dt_delete(&pool);
+ knot_spin_destroy(&d.lock);
+ dnssec_keystore_deinit(store);
+ return KNOT_ERROR;
+ }
+ dt_delete(&pool);
+ knot_spin_destroy(&d.lock);
+
+ double result_f = 0.5; // 0.5 to ensure correct rounding
+ for (struct result *it = d.results; it < d.results + threads; ++it) {
+ if (it->time == 0) {
+ result_f = 0.;
+ break;
+ }
+ result_f += it->signs * 1000. / it->time;
+ }
+
+ const knot_lookup_t *alg_info = knot_lookup_by_id(
+ knot_dnssec_alg_names, KEYS[i]->algorithm);
+ assert(alg_info);
+
+ const unsigned result = (unsigned)result_f;
+ if (result > 0) {
+ printf(BENCH_FORMAT"u\n", alg_info->name, result);
+ } else {
+ printf(BENCH_FORMAT"s\n", alg_info->name, "n/a");
+ }
+ }
+
+ dnssec_keystore_deinit(store);
+
+ return KNOT_EOK;
+}
diff --git a/src/utils/keymgr/keystore.h b/src/utils/keymgr/keystore.h
new file mode 100644
index 0000000..6adb5df
--- /dev/null
+++ b/src/utils/keymgr/keystore.h
@@ -0,0 +1,24 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "utils/keymgr/functions.h"
+
+int keymgr_keystore_test(const char *keystore_id, keymgr_list_params_t *params);
+
+int keymgr_keystore_bench(const char *keystore_id, keymgr_list_params_t *params,
+ uint16_t threads);
diff --git a/src/utils/keymgr/main.c b/src/utils/keymgr/main.c
index 355fd3a..999b5c5 100644
--- a/src/utils/keymgr/main.c
+++ b/src/utils/keymgr/main.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,17 +15,20 @@
*/
#include <getopt.h>
+#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
#include "contrib/strtonum.h"
#include "knot/dnssec/zone-keys.h"
+#include "libdnssec/crypto.h"
#include "libknot/libknot.h"
#include "utils/common/msg.h"
#include "utils/common/params.h"
#include "utils/common/signal.h"
#include "utils/common/util_conf.h"
#include "utils/keymgr/functions.h"
+#include "utils/keymgr/keystore.h"
#include "utils/keymgr/offline_ksk.h"
#define PROGRAM_NAME "keymgr"
@@ -36,6 +39,7 @@ static void print_help(void)
{
printf("Usage:\n"
" %s [-c | -C | -D <path>] [options] <zone_name> <command>\n"
+ " %s [-c | -C | -D <path>] [options] <keystore_id> <command>\n"
" %s [-c | -C | -D <path>] [-j] -l\n"
" %s -t <tsig_name> [<algorithm> [<bits>]]\n"
"\n"
@@ -87,6 +91,13 @@ static void print_help(void)
" set Set existing key's timing attribute.\n"
" (syntax: set <key_spec> <attribute_name>=<value>...)\n"
"\n"
+ "Keystore commands:\n"
+ " keystore_test Conduct some tests on the specified keystore.\n"
+ " Use a configured keystore id or '-' for the default.\n"
+ " keystore_bench Conduct a signing benchmark for each supported algorithm.\n"
+ " Use a configured keystore id or '-' for the default.\n"
+ " (syntax: keystore_bench [<num_threads>])\n"
+ "\n"
"Commands related to Offline KSK feature:\n"
" pregenerate Pre-generate ZSKs for later rollovers with offline KSK.\n"
" (syntax: pregenerate [<from>] <to>)\n"
@@ -115,7 +126,8 @@ static void print_help(void)
" ksk Whether the generated/imported key shall be Key Signing Key.\n"
" created/publish/ready/active/retire/remove The timestamp of the key\n"
" lifetime event (e.g. published=+1d active=1499770874)\n",
- PROGRAM_NAME, PROGRAM_NAME, PROGRAM_NAME, CONF_DEFAULT_FILE, CONF_DEFAULT_DBDIR);
+ PROGRAM_NAME, PROGRAM_NAME, PROGRAM_NAME, PROGRAM_NAME, CONF_DEFAULT_FILE,
+ CONF_DEFAULT_DBDIR);
}
static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kaspdb,
@@ -129,7 +141,8 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp
argc -= opt_ind;
argv += opt_ind;
- knot_dname_t *zone_name = knot_dname_from_str_alloc(argv[0]);
+ const char *id_str = argv[0];
+ knot_dname_t *zone_name = knot_dname_from_str_alloc(id_str);
if (zone_name == NULL) {
return KNOT_ENOMEM;
}
@@ -275,6 +288,20 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp
} else if (strcmp(argv[1], "import-skr") == 0) {
CHECK_MISSING_ARG("Input file not specified");
ret = keymgr_import_skr(&kctx, argv[2]);
+ } else if (strcmp(argv[1], "keystore-test") == 0) {
+ ret = keymgr_keystore_test(id_str, list_params);
+ print_ok_on_succes = false;
+ } else if (strcmp(argv[1], "keystore-bench") == 0) {
+ uint16_t threads = 1;
+ if (argc > 2) {
+ ret = str_to_u16(argv[2], &threads);
+ }
+ if (ret == KNOT_EOK && threads > 0) {
+ ret = keymgr_keystore_bench(id_str, list_params, threads);
+ } else {
+ ret = KNOT_EINVAL;
+ }
+ print_ok_on_succes = false;
} else {
ERR2("invalid command '%s'", argv[1]);
goto main_end;
@@ -306,19 +333,22 @@ int main(int argc, char *argv[])
{ "tsig", required_argument, NULL, 't' },
{ "extended", no_argument, NULL, 'e' },
{ "list", no_argument, NULL, 'l' },
- { "brief", no_argument, NULL, 'b' }, // Legacy.
{ "mono", no_argument, NULL, 'x' },
{ "color", no_argument, NULL, 'X' },
{ "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
+ { "version", optional_argument, NULL, 'V' },
{ "json", no_argument, NULL, 'j' },
{ NULL }
};
tzset();
+ dnssec_crypto_init();
+
signal_ctx.close_db = &kaspdb;
signal_init_std();
+ struct sigaction sigact = { .sa_handler = SIG_IGN };
+ sigaction(SIGALRM, &sigact, NULL);
int ret;
bool just_list = false;
@@ -327,7 +357,7 @@ int main(int argc, char *argv[])
list_params.color = isatty(STDOUT_FILENO);
int opt = 0, parm = 0;
- while ((opt = getopt_long(argc, argv, "c:C:D:t:ejlbxXhV", opts, NULL)) != -1) {
+ while ((opt = getopt_long(argc, argv, "c:C:D:t:ejlxXhV::", opts, NULL)) != -1) {
switch (opt) {
case 'c':
if (util_conf_init_file(optarg) != KNOT_EOK) {
@@ -363,9 +393,6 @@ int main(int argc, char *argv[])
case 'l':
just_list = true;
break;
- case 'b':
- WARN2("option '--brief' is deprecated and enabled by default");
- break;
case 'x':
list_params.color = false;
break;
@@ -376,7 +403,7 @@ int main(int argc, char *argv[])
print_help();
goto success;
case 'V':
- print_version(PROGRAM_NAME);
+ print_version(PROGRAM_NAME, optarg != NULL);
goto success;
default:
print_help();
@@ -409,8 +436,10 @@ int main(int argc, char *argv[])
success:
util_conf_deinit();
+ dnssec_crypto_cleanup();
return EXIT_SUCCESS;
failure:
util_conf_deinit();
+ dnssec_crypto_cleanup();
return EXIT_FAILURE;
}
diff --git a/src/utils/keymgr/offline_ksk.c b/src/utils/keymgr/offline_ksk.c
index 253199f..05b2d2b 100644
--- a/src/utils/keymgr/offline_ksk.c
+++ b/src/utils/keymgr/offline_ksk.c
@@ -37,8 +37,10 @@ static int pregenerate_once(kdnssec_ctx_t *ctx, knot_time_t *next)
{
zone_sign_reschedule_t resch = { 0 };
+ memset(ctx->stats, 0, sizeof(*ctx->stats));
+
// generate ZSKs
- int ret = knot_dnssec_key_rollover(ctx, KEY_ROLL_ALLOW_ZSK_ROLL, &resch);
+ int ret = knot_dnssec_key_rollover(ctx, KEY_ROLL_ALLOW_ZSK_ROLL | KEY_ROLL_PRESERVE_FUTURE, &resch);
if (ret != KNOT_EOK) {
ERR2("key rollover failed");
return ret;
@@ -245,6 +247,9 @@ static int ksr_once(kdnssec_ctx_t *ctx, char **buf, size_t *buf_size, knot_time_
{
knot_rrset_t *dnskey = NULL;
zone_keyset_t keyset = { 0 };
+
+ memset(ctx->stats, 0, sizeof(*ctx->stats));
+
int ret = load_dnskey_rrset(ctx, &dnskey, &keyset);
if (ret != KNOT_EOK) {
goto done;
@@ -322,10 +327,10 @@ static int ksr_sign_dnskey(kdnssec_ctx_t *ctx, knot_rrset_t *zsk, knot_time_t no
zone_keyset_t keyset = { 0 };
char *buf = NULL;
size_t buf_size = 4096;
- knot_time_t rrsigs_expire = 0;
ctx->now = now;
ctx->policy->dnskey_ttl = zsk->ttl;
+ memset(ctx->stats, 0, sizeof(*ctx->stats));
knot_timediff_t rrsig_refresh = ctx->policy->rrsig_refresh_before;
if (rrsig_refresh == UINT32_MAX) { // not setting rrsig-refresh prohibited by documentation, but we need to do something
@@ -352,7 +357,7 @@ static int ksr_sign_dnskey(kdnssec_ctx_t *ctx, knot_rrset_t *zsk, knot_time_t no
// no check if the KSK used for signing (in keyset) is contained in DNSKEY record being signed (in KSR) !
for (int i = 0; i < keyset.count; i++) {
- ret = key_records_sign(&keyset.keys[i], &r, ctx, &rrsigs_expire);
+ ret = key_records_sign(&keyset.keys[i], &r, ctx);
if (ret != KNOT_EOK) {
goto done;
}
@@ -362,7 +367,7 @@ static int ksr_sign_dnskey(kdnssec_ctx_t *ctx, knot_rrset_t *zsk, knot_time_t no
print_header("SignedKeyResponse "KSR_SKR_VER, ctx->now, buf);
*next_sign = knot_time_min(
knot_get_next_zone_key_event(&keyset),
- knot_time_add(rrsigs_expire, -rrsig_refresh)
+ knot_time_add(ctx->stats->expire, -rrsig_refresh)
);
}
@@ -446,6 +451,7 @@ static void skr_import_header(zs_scanner_t *sc)
// trailing header without timestamp
next_timestamp = 0;
}
+ knot_time_t validity_ts = next_timestamp != 0 ? next_timestamp : ctx->timestamp;
// delete possibly existing conflicting offline records
ctx->ret = kasp_db_delete_offline_records(
@@ -454,16 +460,11 @@ static void skr_import_header(zs_scanner_t *sc)
// store previous SKR
if (ctx->timestamp > 0 && ctx->ret == KNOT_EOK) {
- ctx->ret = key_records_verify(&ctx->r, ctx->kctx, ctx->timestamp);
+ ctx->ret = key_records_verify(&ctx->r, ctx->kctx, ctx->timestamp, validity_ts);
if (ctx->ret != KNOT_EOK) {
return;
}
- if (next_timestamp > 0) {
- ctx->ret = key_records_verify(&ctx->r, ctx->kctx, next_timestamp - 1);
- if (ctx->ret != KNOT_EOK) {
- return;
- }
- }
+
ctx->ret = kasp_db_store_offline_records(ctx->kctx->kasp_db,
ctx->timestamp, &ctx->r);
key_records_clear_rdatasets(&ctx->r);
@@ -490,20 +491,14 @@ static void skr_validate_header(zs_scanner_t *sc)
// trailing header without timestamp
next_timestamp = 0;
}
+ knot_time_t validity_ts = next_timestamp != 0 ? next_timestamp : ctx->timestamp;
if (ctx->timestamp > 0 && ctx->ret == KNOT_EOK) {
- int ret = key_records_verify(&ctx->r, ctx->kctx, ctx->timestamp);
+ int ret = key_records_verify(&ctx->r, ctx->kctx, ctx->timestamp, validity_ts);
if (ret != KNOT_EOK) { // ctx->ret untouched
ERR2("invalid SignedKeyResponse for %"KNOT_TIME_PRINTF" (%s)",
ctx->timestamp, knot_strerror(ret));
}
- if (next_timestamp > 0) {
- ret = key_records_verify(&ctx->r, ctx->kctx, next_timestamp - 1);
- if (ret != KNOT_EOK) { // ctx->ret untouched
- ERR2("invalid SignedKeyResponse for %"KNOT_TIME_PRINTF" (%s)",
- next_timestamp - 1, knot_strerror(ret));
- }
- }
key_records_clear_rdatasets(&ctx->r);
}
diff --git a/src/utils/khost/khost_params.c b/src/utils/khost/khost_params.c
index 1423e09..de95d9b 100644
--- a/src/utils/khost/khost_params.c
+++ b/src/utils/khost/khost_params.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -251,14 +251,14 @@ int khost_parse(kdig_params_t *params, int argc, char *argv[])
// Long options.
struct option opts[] = {
- { "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
+ { "help", no_argument, NULL, 'h' },
+ { "version", optional_argument, NULL, 'V' },
{ NULL }
};
// Command line options processing.
int opt = 0;
- while ((opt = getopt_long(argc, argv, "46adhrsTvVwc:t:R:W:", opts, NULL))
+ while ((opt = getopt_long(argc, argv, "46adhrsTvV::wc:t:R:W:", opts, NULL))
!= -1) {
switch (opt) {
case '4':
@@ -294,7 +294,7 @@ int khost_parse(kdig_params_t *params, int argc, char *argv[])
conf->style.show_footer = true;
break;
case 'V':
- print_version(PROGRAM_NAME);
+ print_version(PROGRAM_NAME, optarg != NULL);
params->stop = false;
return KNOT_EOK;
case 'w':
diff --git a/src/utils/kjournalprint/main.c b/src/utils/kjournalprint/main.c
index 3ba0019..1d633dd 100644
--- a/src/utils/kjournalprint/main.c
+++ b/src/utils/kjournalprint/main.c
@@ -342,11 +342,10 @@ int main(int argc, char *argv[])
{ "zone-list", no_argument, NULL, 'z' },
{ "check", no_argument, NULL, 'H' },
{ "debug", no_argument, NULL, 'd' },
- { "no-color", no_argument, NULL, 'n' },
{ "mono", no_argument, NULL, 'x' },
{ "color", no_argument, NULL, 'X' },
{ "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
+ { "version", optional_argument, NULL, 'V' },
{ NULL }
};
@@ -354,7 +353,7 @@ int main(int argc, char *argv[])
signal_init_std();
int opt = 0;
- while ((opt = getopt_long(argc, argv, "c:C:D:l:s:zHdnxXhV", opts, NULL)) != -1) {
+ while ((opt = getopt_long(argc, argv, "c:C:D:l:s:zHdxXhV::", opts, NULL)) != -1) {
switch (opt) {
case 'c':
if (util_conf_init_file(optarg) != KNOT_EOK) {
@@ -393,7 +392,6 @@ int main(int argc, char *argv[])
case 'd':
params.debug = true;
break;
- case 'n':
case 'x':
params.color = false;
break;
@@ -404,7 +402,7 @@ int main(int argc, char *argv[])
print_help();
goto success;
case 'V':
- print_version(PROGRAM_NAME);
+ print_version(PROGRAM_NAME, optarg != NULL);
goto success;
default:
print_help();
@@ -412,15 +410,6 @@ int main(int argc, char *argv[])
}
}
- // Backward compatibility.
- if ((justlist && (argc - optind > 0)) || (!justlist && (argc - optind > 1))) {
- WARN2("obsolete parameter specified");
- if (util_conf_init_justdb("journal-db", argv[optind]) != KNOT_EOK) {
- goto failure;
- }
- optind++;
- }
-
signal_ctx.color = params.color;
if (util_conf_init_default(true) != KNOT_EOK) {
diff --git a/src/utils/knotc/commands.c b/src/utils/knotc/commands.c
index c2c25a2..5cc1a14 100644
--- a/src/utils/knotc/commands.c
+++ b/src/utils/knotc/commands.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -51,6 +51,7 @@
#define CMD_ZONE_BACKUP "zone-backup"
#define CMD_ZONE_RESTORE "zone-restore"
#define CMD_ZONE_SIGN "zone-sign"
+#define CMD_ZONE_VALIDATE "zone-validate"
#define CMD_ZONE_KEYS_LOAD "zone-keys-load"
#define CMD_ZONE_KEY_ROLL "zone-key-rollover"
#define CMD_ZONE_KSK_SBM "zone-ksk-submitted"
@@ -99,7 +100,7 @@
static int check_args(cmd_args_t *args, int min, int max)
{
if (max == 0 && args->argc > 0) {
- log_error("command doesn't take arguments");
+ log_error("command does not take arguments");
return KNOT_EINVAL;
} else if (min == max && args->argc != min) {
log_error("command requires %i arguments", min);
@@ -272,6 +273,7 @@ static void format_data(cmd_args_t *args, knot_ctl_type_t data_type,
case CTL_ZONE_BACKUP:
case CTL_ZONE_RESTORE:
case CTL_ZONE_SIGN:
+ case CTL_ZONE_VALIDATE:
case CTL_ZONE_KEYS_LOAD:
case CTL_ZONE_KEY_ROLL:
case CTL_ZONE_KSK_SBM:
@@ -411,6 +413,7 @@ static void format_block(ctl_cmd_t cmd, bool failed, bool empty)
case CTL_ZONE_BACKUP:
case CTL_ZONE_RESTORE:
case CTL_ZONE_SIGN:
+ case CTL_ZONE_VALIDATE:
case CTL_ZONE_KEYS_LOAD:
case CTL_ZONE_KEY_ROLL:
case CTL_ZONE_KSK_SBM:
@@ -1294,6 +1297,7 @@ const cmd_desc_t cmd_table[] = {
{ CMD_ZONE_BACKUP, cmd_zone_filter_ctl, CTL_ZONE_BACKUP, CMD_FOPT_ZONE },
{ CMD_ZONE_RESTORE, cmd_zone_filter_ctl, CTL_ZONE_RESTORE, CMD_FOPT_ZONE },
{ CMD_ZONE_SIGN, cmd_zone_ctl, CTL_ZONE_SIGN, CMD_FOPT_ZONE },
+ { CMD_ZONE_VALIDATE, cmd_zone_ctl, CTL_ZONE_VALIDATE, CMD_FOPT_ZONE },
{ CMD_ZONE_KEYS_LOAD, cmd_zone_ctl, CTL_ZONE_KEYS_LOAD, CMD_FOPT_ZONE },
{ CMD_ZONE_KEY_ROLL, cmd_zone_key_roll_ctl, CTL_ZONE_KEY_ROLL, CMD_FREQ_ZONE },
{ CMD_ZONE_KSK_SBM, cmd_zone_ctl, CTL_ZONE_KSK_SBM, CMD_FREQ_ZONE | CMD_FOPT_ZONE },
@@ -1347,6 +1351,7 @@ static const cmd_help_t cmd_help_table[] = {
{ CMD_ZONE_BACKUP, "[<zone>...] [<filter>...] +backupdir <dir>", "Backup zone data and metadata. (#)" },
{ CMD_ZONE_RESTORE, "[<zone>...] [<filter>...] +backupdir <dir>", "Restore zone data and metadata. (#)" },
{ CMD_ZONE_SIGN, "[<zone>...]", "Re-sign the automatically signed zone. (#)" },
+ { CMD_ZONE_VALIDATE, "[<zone>...]", "Trigger a DNSSEC validation of the zone. (#)" },
{ CMD_ZONE_KEYS_LOAD, "[<zone>...]", "Re-load keys from KASP database, sign the zone. (#)" },
{ CMD_ZONE_KEY_ROLL, " <zone> ksk|zsk", "Trigger immediate key rollover. (#)" },
{ CMD_ZONE_KSK_SBM, " <zone>...", "When KSK submission, confirm parent's DS presence. (#)" },
diff --git a/src/utils/knotc/main.c b/src/utils/knotc/main.c
index dad3671..274ab6d 100644
--- a/src/utils/knotc/main.c
+++ b/src/utils/knotc/main.c
@@ -82,7 +82,7 @@ int main(int argc, char **argv)
{ "color", no_argument, NULL, 'X' },
{ "verbose", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
+ { "version", optional_argument, NULL, 'V' },
{ NULL }
};
@@ -97,7 +97,7 @@ int main(int argc, char **argv)
/* Parse command line arguments */
int opt = 0;
- while ((opt = getopt_long(argc, argv, "+c:C:m:s:t:befxXvhV", opts, NULL)) != -1) {
+ while ((opt = getopt_long(argc, argv, "+c:C:m:s:t:befxXvhV::", opts, NULL)) != -1) {
switch (opt) {
case 'c':
params.orig_config = optarg;
@@ -147,7 +147,7 @@ int main(int argc, char **argv)
print_help();
return EXIT_SUCCESS;
case 'V':
- print_version(PROGRAM_NAME);
+ print_version(PROGRAM_NAME, optarg != NULL);
return EXIT_SUCCESS;
default:
print_help();
diff --git a/src/utils/knotd/main.c b/src/utils/knotd/main.c
index d4ebd53..e863296 100644
--- a/src/utils/knotd/main.c
+++ b/src/utils/knotd/main.c
@@ -38,15 +38,39 @@
#include "knot/conf/conf.h"
#include "knot/conf/migration.h"
#include "knot/conf/module.h"
+#include "knot/common/dbus.h"
#include "knot/common/log.h"
#include "knot/common/process.h"
#include "knot/common/stats.h"
#include "knot/common/systemd.h"
#include "knot/server/server.h"
#include "knot/server/tcp-handler.h"
+#include "utils/common/params.h"
#define PROGRAM_NAME "knotd"
+typedef enum {
+ CONCURRENT_EMPTY = 0, // fresh cctx without a thread.
+ CONCURRENT_ASSIGNED, // cctx assigned to process a command.
+ CONCURRENT_RUNNING, // ctl command is being processed in the thread.
+ CONCURRENT_IDLE, // command has been processed, waiting for a new one.
+ CONCURRENT_KILLED, // cctx cleanup has started.
+ CONCURRENT_FINISHED, // after having been killed, the thread is being joined.
+} concurrent_ctl_state_t;
+
+typedef struct {
+ concurrent_ctl_state_t state;
+ pthread_mutex_t mutex; // Protects .state.
+ pthread_cond_t cond;
+ knot_ctl_t *ctl;
+ server_t *server;
+ pthread_t thread;
+ sigset_t sigmask;
+ int ret;
+ int thread_idx;
+ bool exclusive;
+} concurrent_ctl_ctx_t;
+
/* Signal flags. */
static volatile bool sig_req_stop = false;
static volatile bool sig_req_reload = false;
@@ -161,13 +185,14 @@ static void setup_signals(void)
sigdelset(&all, SIGBUS);
sigdelset(&all, SIGFPE);
sigdelset(&all, SIGSEGV);
- pthread_sigmask(SIG_SETMASK, &all, NULL);
/* Setup handlers. */
struct sigaction action = { .sa_handler = handle_signal };
for (const struct signal *s = SIGNALS; s->signum > 0; s++) {
sigaction(s->signum, &action, NULL);
}
+
+ pthread_sigmask(SIG_SETMASK, &all, NULL);
}
/*! \brief Unblock server control signals. */
@@ -185,6 +210,24 @@ static void enable_signals(void)
pthread_sigmask(SIG_UNBLOCK, &mask, NULL);
}
+/*! \brief Create a control thread with correct signals setting. */
+static void create_thread_sigmask(pthread_t *thr, void *(*fcn)(void*), void *ctx,
+ sigset_t *out_mask)
+{
+ /* Block all blockable signals. */
+ sigset_t mask;
+ sigfillset(&mask);
+ sigdelset(&mask, SIGBUS);
+ sigdelset(&mask, SIGFPE);
+ sigdelset(&mask, SIGILL);
+ sigdelset(&mask, SIGSEGV);
+ pthread_sigmask(SIG_SETMASK, &mask, out_mask);
+
+ pthread_create(thr, NULL, fcn, ctx);
+
+ pthread_sigmask(SIG_SETMASK, out_mask, NULL);
+}
+
/*! \brief Drop POSIX 1003.1e capabilities. */
static void drop_capabilities(void)
{
@@ -224,6 +267,7 @@ static void check_loaded(server_t *server)
return;
}
+ rcu_read_lock();
knot_zonedb_iter_t *it = knot_zonedb_iter_begin(server->zone_db);
while (!knot_zonedb_iter_finished(it)) {
zone_t *zone = (zone_t *)knot_zonedb_iter_val(it);
@@ -234,9 +278,162 @@ static void check_loaded(server_t *server)
knot_zonedb_iter_next(it);
}
knot_zonedb_iter_free(it);
+ rcu_read_unlock();
finished = true;
- systemd_emit_running(true);
+ dbus_emit_running(true);
+}
+
+static void *ctl_process_thread(void *arg);
+
+/*!
+ * Try to find an empty ctl processing context and if successful,
+ * prepare to lauch the incomming command processing in it.
+ *
+ * \param[in] concurrent_ctxs Configured concurrent control contexts.
+ * \param[in] n_ctxs Number of configured concurrent control contexts.
+ * \param[in] ctl Control context.
+ *
+ * \return Assigned concurrent control context, or NULL.
+ */
+
+static concurrent_ctl_ctx_t *find_free_ctx(concurrent_ctl_ctx_t *concurrent_ctxs,
+ size_t n_ctxs, knot_ctl_t *ctl)
+{
+ concurrent_ctl_ctx_t *res = NULL;
+ for (size_t i = 0; i < n_ctxs && res == NULL; i++) {
+ concurrent_ctl_ctx_t *cctx = &concurrent_ctxs[i];
+ pthread_mutex_lock(&cctx->mutex);
+ if (cctx->exclusive) {
+ while (cctx->state != CONCURRENT_IDLE) {
+ pthread_cond_wait(&cctx->cond, &cctx->mutex);
+ }
+ knot_ctl_free(cctx->ctl);
+ cctx->ctl = knot_ctl_clone(ctl);
+ if (cctx->ctl == NULL) {
+ cctx->exclusive = false;
+ pthread_mutex_unlock(&cctx->mutex);
+ break;
+ }
+ cctx->state = CONCURRENT_ASSIGNED;
+ res = cctx;
+ pthread_cond_broadcast(&cctx->cond);
+ }
+ pthread_mutex_unlock(&cctx->mutex);
+ }
+ for (size_t i = 0; i < n_ctxs && res == NULL; i++) {
+ concurrent_ctl_ctx_t *cctx = &concurrent_ctxs[i];
+ pthread_mutex_lock(&cctx->mutex);
+ switch (cctx->state) {
+ case CONCURRENT_EMPTY:
+ create_thread_sigmask(&cctx->thread, ctl_process_thread, cctx, &cctx->sigmask);
+ break;
+ case CONCURRENT_IDLE:
+ knot_ctl_free(cctx->ctl);
+ pthread_cond_broadcast(&cctx->cond);
+ break;
+ default:
+ pthread_mutex_unlock(&cctx->mutex);
+ continue;
+ }
+ cctx->ctl = knot_ctl_clone(ctl);
+ if (cctx->ctl != NULL) {
+ cctx->state = CONCURRENT_ASSIGNED;
+ res = cctx;
+ }
+ pthread_mutex_unlock(&cctx->mutex);
+ }
+ return res;
+}
+
+static void init_ctxs(concurrent_ctl_ctx_t *concurrent_ctxs, size_t n_ctxs, server_t *server)
+{
+ for (size_t i = 0; i < n_ctxs; i++) {
+ concurrent_ctl_ctx_t *cctx = &concurrent_ctxs[i];
+ pthread_mutex_init(&cctx->mutex, NULL);
+ pthread_cond_init(&cctx->cond, NULL);
+ cctx->server = server;
+ cctx->thread_idx = i + 1;
+ }
+}
+
+static int cleanup_ctxs(concurrent_ctl_ctx_t *concurrent_ctxs, size_t n_ctxs)
+{
+ int ret = KNOT_EOK;
+ for (size_t i = 0; i < n_ctxs; i++) {
+ concurrent_ctl_ctx_t *cctx = &concurrent_ctxs[i];
+ pthread_mutex_lock(&cctx->mutex);
+ if (cctx->state == CONCURRENT_IDLE) {
+ knot_ctl_free(cctx->ctl);
+ cctx->ctl = NULL;
+ if (cctx->ret == KNOT_CTL_ESTOP) {
+ ret = cctx->ret;
+ }
+ }
+ pthread_mutex_unlock(&cctx->mutex);
+ }
+ return ret;
+}
+
+static void finalize_ctxs(concurrent_ctl_ctx_t *concurrent_ctxs, size_t n_ctxs)
+{
+ for (size_t i = 0; i < n_ctxs; i++) {
+ concurrent_ctl_ctx_t *cctx = &concurrent_ctxs[i];
+ pthread_mutex_lock(&cctx->mutex);
+ if (cctx->state == CONCURRENT_EMPTY) {
+ pthread_mutex_unlock(&cctx->mutex);
+ pthread_mutex_destroy(&cctx->mutex);
+ pthread_cond_destroy(&cctx->cond);
+ continue;
+ }
+
+ cctx->state = CONCURRENT_KILLED;
+ pthread_cond_broadcast(&cctx->cond);
+ pthread_mutex_unlock(&cctx->mutex);
+ (void)pthread_join(cctx->thread, NULL);
+
+ assert(cctx->state == CONCURRENT_FINISHED);
+ knot_ctl_free(cctx->ctl);
+ pthread_mutex_destroy(&cctx->mutex);
+ pthread_cond_destroy(&cctx->cond);
+ }
+}
+
+static void *ctl_process_thread(void *arg)
+{
+ concurrent_ctl_ctx_t *ctx = arg;
+ rcu_register_thread();
+ setup_signals(); // in fact, this blocks common signals so that they
+ // arrive to main thread instead of this one
+
+ pthread_mutex_lock(&ctx->mutex);
+ while (ctx->state != CONCURRENT_KILLED) {
+ if (ctx->state != CONCURRENT_ASSIGNED) {
+ pthread_cond_wait(&ctx->cond, &ctx->mutex);
+ continue;
+ }
+ ctx->state = CONCURRENT_RUNNING;
+ bool exclusive = ctx->exclusive;
+ pthread_mutex_unlock(&ctx->mutex);
+
+ // Not IDLE, ctx can be read without locking.
+ int ret = ctl_process(ctx->ctl, ctx->server, ctx->thread_idx, &exclusive);
+
+ pthread_mutex_lock(&ctx->mutex);
+ ctx->ret = ret;
+ ctx->exclusive = exclusive;
+ if (ctx->state == CONCURRENT_RUNNING) { // not KILLED
+ ctx->state = CONCURRENT_IDLE;
+ pthread_cond_broadcast(&ctx->cond);
+ }
+ }
+
+ knot_ctl_close(ctx->ctl);
+
+ ctx->state = CONCURRENT_FINISHED;
+ pthread_mutex_unlock(&ctx->mutex);
+ rcu_unregister_thread();
+ return NULL;
}
/*! \brief Event loop listening for signals and remote commands. */
@@ -274,7 +471,7 @@ static void event_loop(server_t *server, const char *socket, bool daemonize,
/* Bind the control socket. */
uint16_t backlog = conf_get_int(conf(), C_CTL, C_BACKLOG);
- int ret = knot_ctl_bind2(ctl, listen, backlog);
+ int ret = knot_ctl_bind(ctl, listen, backlog);
if (ret != KNOT_EOK) {
knot_ctl_free(ctl);
log_fatal("control, failed to bind socket '%s' (%s)",
@@ -286,6 +483,10 @@ static void event_loop(server_t *server, const char *socket, bool daemonize,
enable_signals();
+ concurrent_ctl_ctx_t concurrent_ctxs[CTL_MAX_CONCURRENT] = { 0 };
+ init_ctxs(concurrent_ctxs, CTL_MAX_CONCURRENT, server);
+ bool main_thread_exclusive = false;
+
/* Notify systemd about successful start. */
systemd_ready_notify();
if (daemonize) {
@@ -299,15 +500,19 @@ static void event_loop(server_t *server, const char *socket, bool daemonize,
/* Interrupts. */
if (sig_req_reload && !sig_req_stop) {
sig_req_reload = false;
+ pthread_rwlock_wrlock(&server->ctl_lock);
server_reload(server, RELOAD_FULL);
+ pthread_rwlock_unlock(&server->ctl_lock);
}
if (sig_req_zones_reload && !sig_req_stop) {
sig_req_zones_reload = false;
reload_t mode = server->catalog_upd_signal ? RELOAD_CATALOG : RELOAD_ZONES;
+ pthread_rwlock_wrlock(&server->ctl_lock);
server->catalog_upd_signal = false;
server_update_zones(conf(), server, mode);
+ pthread_rwlock_unlock(&server->ctl_lock);
}
- if (sig_req_stop) {
+ if (sig_req_stop || cleanup_ctxs(concurrent_ctxs, CTL_MAX_CONCURRENT) == KNOT_CTL_ESTOP) {
break;
}
@@ -325,15 +530,20 @@ static void event_loop(server_t *server, const char *socket, bool daemonize,
continue;
}
- ret = ctl_process(ctl, server);
- knot_ctl_close(ctl);
- if (ret == KNOT_CTL_ESTOP) {
- break;
+ if (main_thread_exclusive ||
+ find_free_ctx(concurrent_ctxs, CTL_MAX_CONCURRENT, ctl) == NULL) {
+ ret = ctl_process(ctl, server, 0, &main_thread_exclusive);
+ knot_ctl_close(ctl);
+ if (ret == KNOT_CTL_ESTOP) {
+ break;
+ }
}
}
+ finalize_ctxs(concurrent_ctxs, CTL_MAX_CONCURRENT);
+
if (conf()->cache.srv_dbus_event & DBUS_EVENT_RUNNING) {
- systemd_emit_running(false);
+ dbus_emit_running(false);
}
/* Unbind the control socket. */
@@ -363,11 +573,6 @@ static void print_help(void)
CONF_MAPSIZE, RUN_DIR "/knot.sock");
}
-static void print_version(void)
-{
- printf("%s (Knot DNS), version %s\n", PROGRAM_NAME, PACKAGE_VERSION);
-}
-
static int set_config(const char *confdb, const char *config, size_t max_conf_size)
{
if (config != NULL && confdb != NULL) {
@@ -440,7 +645,7 @@ int main(int argc, char **argv)
{ "daemonize", optional_argument, NULL, 'd' },
{ "verbose", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
+ { "version", optional_argument, NULL, 'V' },
{ NULL }
};
@@ -449,7 +654,7 @@ int main(int argc, char **argv)
/* Parse command line arguments. */
int opt = 0;
- while ((opt = getopt_long(argc, argv, "c:C:m:s:dvhV", opts, NULL)) != -1) {
+ while ((opt = getopt_long(argc, argv, "c:C:m:s:dvhV::", opts, NULL)) != -1) {
switch (opt) {
case 'c':
config = optarg;
@@ -481,7 +686,7 @@ int main(int argc, char **argv)
print_help();
return EXIT_SUCCESS;
case 'V':
- print_version();
+ print_version(PROGRAM_NAME, optarg != NULL);
return EXIT_SUCCESS;
default:
print_help();
@@ -570,14 +775,9 @@ int main(int argc, char **argv)
return EXIT_FAILURE;
}
- if (conf()->cache.srv_dbus_event != DBUS_EVENT_NONE) {
- ret = systemd_dbus_open();
- if (ret != KNOT_EOK) {
- log_error("d-bus: failed to open system bus (%s)",
- knot_strerror(ret));
- } else {
- log_info("d-bus: connected to system bus");
- }
+ /* Connect to the system D-bus. */
+ if (conf()->cache.srv_dbus_event != DBUS_EVENT_NONE &&
+ dbus_open() == KNOT_EOK) {
int64_t delay = conf_get_int(conf(), C_SRV, C_DBUS_INIT_DELAY);
sleep(delay);
}
@@ -595,7 +795,7 @@ int main(int argc, char **argv)
server_wait(&server);
server_deinit(&server);
conf_free(conf());
- systemd_dbus_close();
+ dbus_close();
log_close();
dnssec_crypto_cleanup();
return EXIT_FAILURE;
@@ -636,7 +836,7 @@ int main(int argc, char **argv)
rcu_unregister_thread();
pid_cleanup();
conf_free(conf());
- systemd_dbus_close();
+ dbus_close();
log_close();
dnssec_crypto_cleanup();
return EXIT_FAILURE;
@@ -660,7 +860,7 @@ int main(int argc, char **argv)
/* Unhook from RCU. */
rcu_unregister_thread();
- systemd_dbus_close();
+ dbus_close();
log_info("shutting down");
log_close();
diff --git a/src/utils/knsec3hash/knsec3hash.c b/src/utils/knsec3hash/knsec3hash.c
index a7bac97..a18498d 100644
--- a/src/utils/knsec3hash/knsec3hash.c
+++ b/src/utils/knsec3hash/knsec3hash.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -36,7 +36,7 @@
*/
static void print_help(void)
{
- printf("Usage: " PROGRAM_NAME " <salt> <algorithm> <iterations> <domain-name>\n");
+ printf("Usage: " PROGRAM_NAME " [-h | -V] <salt> <algorithm> <iterations> <domain-name>\n");
printf("Example: " PROGRAM_NAME " c01dcafe 1 10 knot-dns.cz\n");
printf("Alternative usage: "PROGRAM_NAME " <algorithm> <flags> <iterations> <salt> <domain-name>\n");
printf("Example: " PROGRAM_NAME " 1 0 10 c01dcafe knot-dns.cz\n");
@@ -103,19 +103,19 @@ static bool parse_nsec3_params(dnssec_nsec3_params_t *params, const char *salt_s
int main(int argc, char *argv[])
{
struct option options[] = {
- { "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
+ { "help", no_argument, NULL, 'h' },
+ { "version", optional_argument, NULL, 'V' },
{ NULL }
};
int opt = 0;
- while ((opt = getopt_long(argc, argv, "hV", options, NULL)) != -1) {
+ while ((opt = getopt_long(argc, argv, "hV::", options, NULL)) != -1) {
switch(opt) {
case 'h':
print_help();
return EXIT_SUCCESS;
case 'V':
- print_version(PROGRAM_NAME);
+ print_version(PROGRAM_NAME, optarg != NULL);
return EXIT_SUCCESS;
default:
print_help();
diff --git a/src/utils/knsupdate/knsupdate_exec.c b/src/utils/knsupdate/knsupdate_exec.c
index e201711..d716ffb 100644
--- a/src/utils/knsupdate/knsupdate_exec.c
+++ b/src/utils/knsupdate/knsupdate_exec.c
@@ -452,15 +452,23 @@ static int pkt_sendrecv(knsupdate_params_t *params)
return -1;
}
+ ret = net_init_crypto(&net, &params->tls_params, NULL, &params->quic_params);
+ if (ret != 0) {
+ ERR("failed to initialize crypto context (%s)", knot_strerror(ret));
+ net_clean(&net);
+ return -1;
+ }
+
ret = net_connect(&net);
- DBG("%s: send_msg = %d", __func__, net.sockfd);
if (ret != KNOT_EOK) {
+ ERR("failed to connect (%s)", knot_strerror(ret));
net_clean(&net);
return -1;
}
ret = net_send(&net, params->query->wire, params->query->size);
if (ret != KNOT_EOK) {
+ ERR("failed to send update (%s)", knot_strerror(ret));
net_close(&net);
net_clean(&net);
return -1;
@@ -471,8 +479,8 @@ static int pkt_sendrecv(knsupdate_params_t *params)
/* Wait for reception. */
int rb = net_receive(&net, params->answer->wire, params->answer->max_size);
- DBG("%s: receive_msg = %d", __func__, rb);
if (rb <= 0) {
+ ERR("failed to receive response (%s)", knot_strerror(rb));
net_close(&net);
net_clean(&net);
return -1;
diff --git a/src/utils/knsupdate/knsupdate_params.c b/src/utils/knsupdate/knsupdate_params.c
index f9fa41f..5aaf808 100644
--- a/src/utils/knsupdate/knsupdate_params.c
+++ b/src/utils/knsupdate/knsupdate_params.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -26,6 +26,7 @@
#include "utils/common/netio.h"
#include "libknot/libknot.h"
#include "libknot/tsig.h"
+#include "contrib/base64.h"
#include "contrib/mempattern.h"
#include "contrib/strtonum.h"
#include "contrib/ucw/mempool.h"
@@ -90,6 +91,8 @@ static int knsupdate_init(knsupdate_params_t *params)
init_list(&params->update_list);
init_list(&params->prereq_list);
+ tls_params_init(&params->tls_params);
+
/* Initialize memory context. */
mm_ctx_mempool(&params->mm, MM_DEFAULT_BLKSIZE);
@@ -142,6 +145,9 @@ void knsupdate_clean(knsupdate_params_t *params)
knot_pkt_free(params->answer);
knot_tsig_key_deinit(&params->tsig_key);
+ tls_params_clean(&params->tls_params);
+ quic_params_clean(&params->quic_params);
+
/* Clean up the structure. */
mp_delete(params->mm.ctx);
memset(params, 0, sizeof(*params));
@@ -172,9 +178,31 @@ void knsupdate_reset(knsupdate_params_t *params)
static void print_help(void)
{
- printf("Usage: %s [-d] [-v] [-k keyfile | -y [hmac:]name:key]\n"
- " [-p port] [-t timeout] [-r retries] [filename]\n",
- PROGRAM_NAME);
+ printf("Usage:\n"
+ " %s [-T] [options] [filename]\n"
+ " %s [-S | -Q] [tls_options] [options] [filename]\n"
+ "\n"
+ "Options:\n"
+ " -T, --tcp Use TCP protocol.\n"
+ " -S, --tls Use TLS protocol.\n"
+ " -Q, --quic Use QUIC protocol.\n"
+ " -p, --port <num> Remote port.\n"
+ " -r, --retry <num> Number of retries over UDP.\n"
+ " -t, --timeout <num> Update timeout.\n"
+ " -y, --tsig <str> TSIG key in the form [alg:]name:key.\n"
+ " -k, --tsigfile <path> Path to a TSIG key file.\n"
+ " -d, --debug Debug mode output.\n"
+ " -h, --help Print the program help.\n"
+ " -V, --version Print the program version.\n"
+ "\n"
+ "QUIC/TLS options:\n"
+ " -H, --hostname <str> Remote hostname validation.\n"
+ " -P, --pin <base64> Certificate key PIN.\n"
+ " -A, --ca [<path>] Path to a CA file.\n"
+ " -E, --certfile <path> Path to a client certificate file.\n"
+ " -K, --keyfile <path> Path to a client key file.\n"
+ " -s, --sni <str> Remote SNI.\n",
+ PROGRAM_NAME, PROGRAM_NAME);
}
int knsupdate_parse(knsupdate_params_t *params, int argc, char *argv[])
@@ -188,40 +216,74 @@ int knsupdate_parse(knsupdate_params_t *params, int argc, char *argv[])
return ret;
}
- // Long options.
+ const char *opts_str = "dhvTSQV::p:r:t:y:k:H:P:A::E:K:s:";
struct option opts[] = {
- { "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
+ { "debug", no_argument, NULL, 'd' },
+ { "help", no_argument, NULL, 'h' },
+ { "tcp", no_argument, NULL, 'T' },
+ { "tls", no_argument, NULL, 'S' },
+ { "quic", no_argument, NULL, 'Q' },
+ { "version", optional_argument, NULL, 'V' },
+ { "port", required_argument, NULL, 'p' },
+ { "retry", required_argument, NULL, 'r' },
+ { "timeout", required_argument, NULL, 't' },
+ { "tsig", required_argument, NULL, 'y' },
+ { "tsigfile", required_argument, NULL, 'k' },
+ { "hostname", required_argument, NULL, 'H' },
+ { "pin", required_argument, NULL, 'P' },
+ { "ca", optional_argument, NULL, 'A' },
+ { "certfile", required_argument, NULL, 'E' },
+ { "keyfile", required_argument, NULL, 'K' },
+ { "sni", required_argument, NULL, 's' },
{ NULL }
};
- /* Command line options processing. */
+ bool default_port = true;
+
int opt = 0;
- while ((opt = getopt_long(argc, argv, "dhDvVp:t:r:y:k:", opts, NULL))
- != -1) {
+ while ((opt = getopt_long(argc, argv, opts_str, opts, NULL)) != -1) {
switch (opt) {
case 'd':
- case 'D': /* Extra debugging. */
msg_enable_debug(1);
break;
case 'h':
print_help();
params->stop = true;
return KNOT_EOK;
- case 'v':
+ case 'v': // Compatibility with nsupdate.
+ case 'T':
params->protocol = PROTO_TCP;
break;
+ case 'S':
+ params->protocol = PROTO_TCP;
+
+ params->tls_params.enable = true;
+
+ if (default_port) {
+ free(params->server->service);
+ params->server->service = strdup(DEFAULT_DNS_TLS_PORT);
+ }
+ break;
+ case 'Q':
+ params->protocol = PROTO_UDP;
+
+ params->tls_params.enable = true;
+ params->quic_params.enable = true;
+
+ if (default_port) {
+ free(params->server->service);
+ params->server->service = strdup(DEFAULT_DNS_QUIC_PORT);
+ }
+ break;
case 'V':
- print_version(PROGRAM_NAME);
+ print_version(PROGRAM_NAME, optarg != NULL);
params->stop = true;
return KNOT_EOK;
case 'p':
+ assert(optarg);
+ default_port = false;
free(params->server->service);
params->server->service = strdup(optarg);
- if (!params->server->service) {
- ERR("failed to set default port '%s'", optarg);
- return KNOT_ENOMEM;
- }
break;
case 'r':
ret = str_to_u32(optarg, &params->retries);
@@ -241,7 +303,7 @@ int knsupdate_parse(knsupdate_params_t *params, int argc, char *argv[])
knot_tsig_key_deinit(&params->tsig_key);
ret = knot_tsig_key_init_str(&params->tsig_key, optarg);
if (ret != KNOT_EOK) {
- ERR("failed to parse key '%s'", optarg);
+ ERR("failed to parse TSIG key '%s'", optarg);
return ret;
}
break;
@@ -249,9 +311,63 @@ int knsupdate_parse(knsupdate_params_t *params, int argc, char *argv[])
knot_tsig_key_deinit(&params->tsig_key);
ret = knot_tsig_key_init_file(&params->tsig_key, optarg);
if (ret != KNOT_EOK) {
- ERR("failed to parse keyfile '%s'", optarg);
+ ERR("failed to parse TSIG keyfile '%s'", optarg);
+ return ret;
+ }
+ break;
+ case 'H':
+ assert(optarg);
+ free(params->tls_params.hostname);
+ params->tls_params.hostname = strdup(optarg);
+ break;
+ case 'P':
+ assert(optarg);
+ uint8_t pin[64] = { 0 };
+ ret = knot_base64_decode((const uint8_t *)optarg, strlen(optarg), pin, sizeof(pin));
+ if (ret < 0) {
+ ERR("invalid certificate pin %s", optarg);
return ret;
+ } else if (ret != CERT_PIN_LEN) { // Check for 256-bit value.
+ ERR("invalid SHA256 hash length of certificate pin %s", optarg);
+ return KNOT_EINVAL;
}
+
+ uint8_t *item = malloc(1 + ret); // 1 ~ leading data length.
+ if (item == NULL) {
+ return KNOT_ENOMEM;
+ }
+ item[0] = ret;
+ memcpy(&item[1], pin, ret);
+
+ if (ptrlist_add(&params->tls_params.pins, item, NULL) == NULL) {
+ return KNOT_ENOMEM;
+ }
+
+ break;
+ case 'A':
+ if (optarg == NULL) {
+ params->tls_params.system_ca = true;
+ break;
+ }
+ if (ptrlist_add(&params->tls_params.ca_files, strdup(optarg), NULL) == NULL) {
+ ERR("failed to set CA file '%s'", optarg);
+ return KNOT_ENOMEM;
+ }
+ break;
+ case 'E':
+ assert(optarg);
+ free(params->tls_params.certfile);
+ params->tls_params.certfile = strdup(optarg);
+ break;
+ case 'K':
+ assert(optarg);
+ free(params->tls_params.keyfile);
+ params->tls_params.keyfile = strdup(optarg);
+ break;
+ case 's':
+ assert(optarg);
+ free(params->tls_params.sni);
+ params->tls_params.sni = strdup(optarg);
break;
default:
print_help();
@@ -259,8 +375,8 @@ int knsupdate_parse(knsupdate_params_t *params, int argc, char *argv[])
}
}
- /* No retries for TCP. */
- if (params->protocol == PROTO_TCP) {
+ /* Retries only for UDP. */
+ if (params->protocol == PROTO_TCP || params->quic_params.enable) {
params->retries = 0;
} else {
/* If wait/tries < 1 s, set 1 second for each try. */
@@ -277,7 +393,7 @@ int knsupdate_parse(knsupdate_params_t *params, int argc, char *argv[])
ptrlist_add(&params->qfiles, argv[optind], &params->mm);
}
- return ret;
+ return KNOT_EOK;
}
int knsupdate_set_ttl(knsupdate_params_t *params, const uint32_t ttl)
diff --git a/src/utils/knsupdate/knsupdate_params.h b/src/utils/knsupdate/knsupdate_params.h
index 1933244..fbf30e5 100644
--- a/src/utils/knsupdate/knsupdate_params.h
+++ b/src/utils/knsupdate/knsupdate_params.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,7 +20,9 @@
#include "utils/common/netio.h"
#include "utils/common/params.h"
+#include "utils/common/quic.h"
#include "utils/common/sign.h"
+#include "utils/common/tls.h"
#include "libknot/libknot.h"
#include "libzscanner/scanner.h"
#include "contrib/ucw/lists.h"
@@ -63,6 +65,10 @@ typedef struct {
style_t style;
/*!< Memory context. */
knot_mm_t mm;
+ /*!< TLS params. */
+ tls_params_t tls_params;
+ /*!< QUIC params. */
+ quic_params_t quic_params;
} knsupdate_params_t;
int knsupdate_parse(knsupdate_params_t *params, int argc, char *argv[]);
diff --git a/src/utils/kxdpgun/load_queries.c b/src/utils/kxdpgun/load_queries.c
index 8ecac48..fe7c9ae 100644
--- a/src/utils/kxdpgun/load_queries.c
+++ b/src/utils/kxdpgun/load_queries.c
@@ -16,9 +16,11 @@
#include <assert.h>
#include <errno.h>
+#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <arpa/inet.h>
#include "load_queries.h"
#include "libknot/libknot.h"
@@ -44,106 +46,181 @@ void free_global_payloads(void)
global_payloads = NULL;
}
-bool load_queries(const char *filename, uint16_t edns_size, uint16_t msgid, size_t maxcount)
+typedef struct {
+ char line[KNOT_DNAME_TXT_MAXLEN + 256];
+ char dname_txt[KNOT_DNAME_TXT_MAXLEN + 1];
+ uint8_t dname[KNOT_DNAME_MAXLEN];
+ char type_txt[128];
+ char flags_txt[128];
+} txt_bufs_t;
+
+typedef struct {
+ char line[USHRT_MAX];
+} bin_bufs_t;
+
+static int read_txt(struct pkt_payload **g_payloads_top_p, FILE *f, txt_bufs_t *bufs,
+ uint16_t edns_size, uint16_t msgid)
+{
+ assert(g_payloads_top_p != NULL);
+ struct pkt_payload *g_payloads_top = *g_payloads_top_p;
+ if (fgets(bufs->line, sizeof(bufs->line), f) == NULL) {
+ return 0;
+ }
+ bufs->flags_txt[0] = '\0';
+ int ret = sscanf(bufs->line, "%s%s%s", bufs->dname_txt, bufs->type_txt,
+ bufs->flags_txt);
+ if (ret < 2) {
+ ERR2(ERR_PREFIX "(faulty line): '%.*s'",
+ (int)strcspn(bufs->line, "\n"), bufs->line);
+ return KNOT_EINVAL;
+ }
+
+ void *pret = knot_dname_from_str(bufs->dname, bufs->dname_txt, sizeof(bufs->dname));
+ if (pret == NULL) {
+ ERR2(ERR_PREFIX "(faulty dname): '%s'", bufs->dname_txt);
+ return KNOT_EINVAL;
+ }
+
+ uint16_t type;
+ ret = knot_rrtype_from_string(bufs->type_txt, &type);
+ if (ret < 0) {
+ ERR2(ERR_PREFIX "(faulty type): '%s'", bufs->type_txt);
+ return KNOT_EINVAL;
+ }
+
+ enum qflags flags = 0;
+ switch (bufs->flags_txt[0]) {
+ case '\0':
+ break;
+ case 'e':
+ case 'E':
+ flags |= QFLAG_EDNS;
+ break;
+ case 'd':
+ case 'D':
+ flags |= QFLAG_EDNS | QFLAG_DO;
+ break;
+ default:
+ ERR2(ERR_PREFIX "(faulty flag): '%s'", bufs->flags_txt);
+ return KNOT_EINVAL;
+ }
+
+ size_t dname_len = knot_dname_size(bufs->dname);
+ size_t pkt_len = KNOT_WIRE_HEADER_SIZE + 2 * sizeof(uint16_t) + dname_len;
+ if (flags & QFLAG_EDNS) {
+ pkt_len += KNOT_EDNS_MIN_SIZE;
+ }
+
+ struct pkt_payload *pkt = calloc(1, sizeof(*pkt) + pkt_len);
+ if (pkt == NULL) {
+ ERR2(ERR_PREFIX "(out of memory)");
+ return KNOT_ENOMEM;
+ }
+ pkt->len = pkt_len;
+ memcpy(pkt->payload, &msgid, sizeof(msgid));
+ pkt->payload[2] = 0x01; // RD bit
+ pkt->payload[5] = 0x01; // 1 question
+ pkt->payload[11] = (flags & QFLAG_EDNS) ? 0x01 : 0x00;
+ memcpy(pkt->payload + 12, bufs->dname, dname_len);
+ pkt->payload[dname_len + 12] = type >> 8;
+ pkt->payload[dname_len + 13] = type & 0xff;
+ pkt->payload[dname_len + 15] = KNOT_CLASS_IN;
+ if (flags & QFLAG_EDNS) {
+ pkt->payload[dname_len + 18] = KNOT_RRTYPE_OPT;
+ pkt->payload[dname_len + 19] = edns_size >> 8;
+ pkt->payload[dname_len + 20] = edns_size & 0xff;
+ pkt->payload[dname_len + 23] = (flags & QFLAG_DO) ? 0x80 : 0x00;
+ }
+
+ // add pkt to list global_payloads
+ if (g_payloads_top == NULL) {
+ global_payloads = pkt;
+ *g_payloads_top_p = pkt;
+ } else {
+ g_payloads_top->next = pkt;
+ *g_payloads_top_p = pkt;
+ }
+ return pkt_len;
+}
+
+static int read_bin(struct pkt_payload **g_payloads_top_p, FILE *f, bin_bufs_t *bufs,
+ uint16_t msgid)
+{
+ assert(g_payloads_top_p != NULL);
+ struct pkt_payload *g_payloads_top = *g_payloads_top_p;
+ uint16_t size;
+ if (fread(&size, sizeof(size), 1, f) < 1) {
+ return 0;
+ }
+ size = ntohs(size);
+ if (fread(bufs->line, size, 1, f) < 1) {
+ return KNOT_EINVAL;
+ }
+ struct pkt_payload *pkt = calloc(1, sizeof(*pkt) + size);
+ if (pkt == NULL) {
+ ERR2(ERR_PREFIX "(out of memory)");
+ return KNOT_ENOMEM;
+ }
+ pkt->len = size;
+ memcpy(pkt->payload, &msgid, sizeof(msgid)); // Override msgID
+ memcpy(pkt->payload + 2, bufs->line + 2, size - 2);
+
+ // add pkt to list global_payloads
+ if (g_payloads_top == NULL) {
+ global_payloads = pkt;
+ *g_payloads_top_p = pkt;
+ } else {
+ g_payloads_top->next = pkt;
+ *g_payloads_top_p = pkt;
+ }
+ return size;
+}
+
+bool load_queries(const input_t *input, uint16_t edns_size, uint16_t msgid, size_t maxcount)
{
size_t read = 0;
- FILE *f = fopen(filename, "r");
+ FILE *f = fopen(input->path, (input->format == BIN) ? "rb" : "r");
if (f == NULL) {
- ERR2(ERR_PREFIX "file '%s' (%s)", filename, strerror(errno));
+ ERR2(ERR_PREFIX "file '%s' (%s)", input->path, strerror(errno));
return false;
}
- struct pkt_payload *g_payloads_top = NULL;
- struct {
- char line[KNOT_DNAME_TXT_MAXLEN + 256];
- char dname_txt[KNOT_DNAME_TXT_MAXLEN + 1];
- uint8_t dname[KNOT_DNAME_MAXLEN];
- char type_txt[128];
- char flags_txt[128];
- } *bufs;
- bufs = malloc(sizeof(*bufs)); // avoiding too much stuff on stack
+ void *bufs = NULL;
+ switch (input->format) {
+ case TXT:
+ bufs = malloc(sizeof(txt_bufs_t)); // avoiding too much stuff on stack
+ break;
+ case BIN:
+ bufs = malloc(sizeof(bin_bufs_t));
+ break;
+ default:
+ assert(0);
+ goto fail;
+ }
if (bufs == NULL) {
ERR2(ERR_PREFIX "(out of memory)");
goto fail;
}
+ struct pkt_payload *g_payloads_top = NULL;
while (read < maxcount) {
- if (fgets(bufs->line, sizeof(bufs->line), f) == NULL) {
+ int ret = 0;
+ switch (input->format) {
+ case TXT:
+ ret = read_txt(&g_payloads_top, f, bufs, edns_size, msgid);
break;
- }
- bufs->flags_txt[0] = '\0';
- int ret = sscanf(bufs->line, "%s%s%s", bufs->dname_txt, bufs->type_txt, bufs->flags_txt);
- if (ret < 2) {
- ERR2(ERR_PREFIX "(faulty line): '%.*s'",
- (int)strcspn(bufs->line, "\n"), bufs->line);
- goto fail;
- }
-
- void *pret = knot_dname_from_str(bufs->dname, bufs->dname_txt, sizeof(bufs->dname));
- if (pret == NULL) {
- ERR2(ERR_PREFIX "(faulty dname): '%s'", bufs->dname_txt);
- goto fail;
- }
-
- uint16_t type;
- ret = knot_rrtype_from_string(bufs->type_txt, &type);
- if (ret < 0) {
- ERR2(ERR_PREFIX "(faulty type): '%s'", bufs->type_txt);
- goto fail;
- }
-
- enum qflags flags = 0;
- switch (bufs->flags_txt[0]) {
- case '\0':
- break;
- case 'e':
- case 'E':
- flags |= QFLAG_EDNS;
- break;
- case 'd':
- case 'D':
- flags |= QFLAG_EDNS | QFLAG_DO;
+ case BIN:
+ ret = read_bin(&g_payloads_top, f, bufs, msgid);
break;
default:
- ERR2(ERR_PREFIX "(faulty flag): '%s'", bufs->flags_txt);
- goto fail;
- }
-
- size_t dname_len = knot_dname_size(bufs->dname);
- size_t pkt_len = KNOT_WIRE_HEADER_SIZE + 2 * sizeof(uint16_t) + dname_len;
- if (flags & QFLAG_EDNS) {
- pkt_len += KNOT_EDNS_MIN_SIZE;
+ ret = -1;
+ break;
}
-
- struct pkt_payload *pkt = calloc(1, sizeof(struct pkt_payload) + pkt_len);
- if (pkt == NULL) {
- ERR2(ERR_PREFIX "(out of memory)");
+ if (ret == 0) {
+ break;
+ } else if (ret < 0) {
goto fail;
}
- pkt->len = pkt_len;
- memcpy(pkt->payload, &msgid, sizeof(msgid));
- pkt->payload[2] = 0x01; // RD bit
- pkt->payload[5] = 0x01; // 1 question
- pkt->payload[11] = (flags & QFLAG_EDNS) ? 0x01 : 0x00;
- memcpy(pkt->payload + 12, bufs->dname, dname_len);
- pkt->payload[dname_len + 12] = type >> 8;
- pkt->payload[dname_len + 13] = type & 0xff;
- pkt->payload[dname_len + 15] = KNOT_CLASS_IN;
- if (flags & QFLAG_EDNS) {
- pkt->payload[dname_len + 18] = KNOT_RRTYPE_OPT;
- pkt->payload[dname_len + 19] = edns_size >> 8;
- pkt->payload[dname_len + 20] = edns_size & 0xff;
- pkt->payload[dname_len + 23] = (flags & QFLAG_DO) ? 0x80 : 0x00;
- }
-
- // add pkt to list global_payloads
- if (g_payloads_top == NULL) {
- global_payloads = pkt;
- g_payloads_top = pkt;
- } else {
- g_payloads_top->next = pkt;
- g_payloads_top = pkt;
- }
read++;
}
diff --git a/src/utils/kxdpgun/load_queries.h b/src/utils/kxdpgun/load_queries.h
index 3d7bace..09dfee9 100644
--- a/src/utils/kxdpgun/load_queries.h
+++ b/src/utils/kxdpgun/load_queries.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,6 +19,16 @@
#include <stdbool.h>
#include <stdint.h>
+enum input_format {
+ TXT = 0,
+ BIN
+};
+
+typedef struct {
+ const char *path;
+ enum input_format format;
+} input_t;
+
struct pkt_payload {
struct pkt_payload *next;
size_t len;
@@ -27,6 +37,6 @@ struct pkt_payload {
extern struct pkt_payload *global_payloads;
-bool load_queries(const char *filename, uint16_t edns_size, uint16_t msgid, size_t maxcount);
+bool load_queries(const input_t *input, uint16_t edns_size, uint16_t msgid, size_t maxcount);
void free_global_payloads(void);
diff --git a/src/utils/kxdpgun/main.c b/src/utils/kxdpgun/main.c
index 8f4d402..4e3aa31 100644
--- a/src/utils/kxdpgun/main.c
+++ b/src/utils/kxdpgun/main.c
@@ -14,12 +14,15 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+#include <arpa/inet.h>
#include <assert.h>
#include <errno.h>
#include <getopt.h>
#include <ifaddrs.h>
#include <inttypes.h>
#include <net/if.h>
+#include <netdb.h>
+#include <netinet/in.h>
#include <poll.h>
#include <pthread.h>
#include <signal.h>
@@ -28,16 +31,11 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include <netdb.h>
-
-#include <arpa/inet.h>
-#include <netinet/in.h>
-#include <net/if.h>
#include <sys/ioctl.h>
-#include <sys/socket.h>
#include <sys/resource.h>
+#include <sys/socket.h>
+#include <time.h>
+#include <unistd.h>
#include "libknot/libknot.h"
#include "libknot/xdp.h"
@@ -46,101 +44,28 @@
#include <gnutls/gnutls.h>
#include "libknot/quic/quic.h"
#endif // ENABLE_QUIC
-#include "contrib/macros.h"
-#include "contrib/mempattern.h"
-#include "contrib/openbsd/strlcat.h"
+#include "contrib/atomic.h"
#include "contrib/openbsd/strlcpy.h"
#include "contrib/os.h"
#include "contrib/sockaddr.h"
#include "contrib/toeplitz.h"
-#include "contrib/ucw/mempool.h"
#include "utils/common/msg.h"
#include "utils/common/params.h"
#include "utils/kxdpgun/ip_route.h"
#include "utils/kxdpgun/load_queries.h"
-
-#define PROGRAM_NAME "kxdpgun"
-#define SPACE " "
-
-enum {
- KXDPGUN_WAIT,
- KXDPGUN_START,
- KXDPGUN_STOP,
-};
+#include "utils/kxdpgun/main.h"
+#include "utils/kxdpgun/stats.h"
volatile int xdp_trigger = KXDPGUN_WAIT;
-volatile unsigned stats_trigger = 0;
+volatile knot_atomic_uint64_t stats_trigger = 0;
+volatile knot_atomic_bool stats_switch = STATS_SUM;
unsigned global_cpu_aff_start = 0;
unsigned global_cpu_aff_step = 1;
-#define REMOTE_PORT_DEFAULT 53
-#define REMOTE_PORT_DOQ_DEFAULT 853
-#define LOCAL_PORT_MIN 2000
-#define LOCAL_PORT_MAX 65535
-#define QUIC_THREAD_PORTS 100
-
-#define RCODE_MAX (0x0F + 1)
-
-typedef struct {
- size_t collected;
- uint64_t duration;
- uint64_t qry_sent;
- uint64_t synack_recv;
- uint64_t ans_recv;
- uint64_t finack_recv;
- uint64_t rst_recv;
- uint64_t size_recv;
- uint64_t wire_recv;
- uint64_t rcodes_recv[RCODE_MAX];
- pthread_mutex_t mutex;
-} kxdpgun_stats_t;
-
static kxdpgun_stats_t global_stats = { 0 };
-typedef enum {
- KXDPGUN_IGNORE_NONE = 0,
- KXDPGUN_IGNORE_QUERY = (1 << 0),
- KXDPGUN_IGNORE_LASTBYTE = (1 << 1),
- KXDPGUN_IGNORE_CLOSE = (1 << 2),
- KXDPGUN_REUSE_CONN = (1 << 3),
-} xdp_gun_ignore_t;
-
-typedef struct {
- union {
- struct sockaddr_in local_ip4;
- struct sockaddr_in6 local_ip;
- struct sockaddr_storage local_ip_ss;
- };
- union {
- struct sockaddr_in target_ip4;
- struct sockaddr_in6 target_ip;
- struct sockaddr_storage target_ip_ss;
- };
- char dev[IFNAMSIZ];
- uint64_t qps, duration;
- unsigned at_once;
- uint16_t msgid;
- uint16_t edns_size;
- uint16_t vlan_tci;
- uint8_t local_mac[6], target_mac[6];
- uint8_t local_ip_range;
- bool ipv6;
- bool tcp;
- bool quic;
- bool quic_full_handshake;
- const char *qlog_dir;
- const char *sending_mode;
- xdp_gun_ignore_t ignore1;
- knot_tcp_ignore_t ignore2;
- uint16_t target_port;
- knot_xdp_filter_flag_t flags;
- unsigned n_threads, thread_id;
- knot_eth_rss_conf_t *rss_conf;
- knot_xdp_config_t xdp_config;
-} xdp_gun_ctx_t;
-
const static xdp_gun_ctx_t ctx_defaults = {
.dev[0] = '\0',
.edns_size = 1232,
@@ -150,7 +75,9 @@ const static xdp_gun_ctx_t ctx_defaults = {
.sending_mode = "",
.target_port = 0,
.flags = KNOT_XDP_FILTER_UDP | KNOT_XDP_FILTER_PASS,
- .xdp_config = { .extra_frames = true },
+ .xdp_config = { .ring_size = 2048 },
+ .jw = NULL,
+ .stats_period = 0,
};
static void sigterm_handler(int signo)
@@ -163,103 +90,8 @@ static void sigusr_handler(int signo)
{
assert(signo == SIGUSR1);
if (global_stats.collected == 0) {
- stats_trigger++;
- }
-}
-
-static void clear_stats(kxdpgun_stats_t *st)
-{
- pthread_mutex_lock(&st->mutex);
- st->duration = 0;
- st->qry_sent = 0;
- st->synack_recv = 0;
- st->ans_recv = 0;
- st->finack_recv = 0;
- st->rst_recv = 0;
- st->size_recv = 0;
- st->wire_recv = 0;
- st->collected = 0;
- memset(st->rcodes_recv, 0, sizeof(st->rcodes_recv));
- pthread_mutex_unlock(&st->mutex);
-}
-
-static size_t collect_stats(kxdpgun_stats_t *into, const kxdpgun_stats_t *what)
-{
- pthread_mutex_lock(&into->mutex);
- into->duration = MAX(into->duration, what->duration);
- into->qry_sent += what->qry_sent;
- into->synack_recv += what->synack_recv;
- into->ans_recv += what->ans_recv;
- into->finack_recv += what->finack_recv;
- into->rst_recv += what->rst_recv;
- into->size_recv += what->size_recv;
- into->wire_recv += what->wire_recv;
- for (int i = 0; i < RCODE_MAX; i++) {
- into->rcodes_recv[i] += what->rcodes_recv[i];
+ ATOMIC_ADD(stats_trigger, 1);
}
- size_t res = ++into->collected;
- pthread_mutex_unlock(&into->mutex);
- return res;
-}
-
-static void print_stats(kxdpgun_stats_t *st, bool tcp, bool quic, bool recv, uint64_t qps)
-{
- pthread_mutex_lock(&st->mutex);
-
-#define ps(counter) ((typeof(counter))((counter) * 1000 / ((float)st->duration / 1000)))
-#define pct(counter) ((counter) * 100.0 / st->qry_sent)
-
- const char *name = tcp ? "SYNs: " : quic ? "initials:" : "queries: ";
- printf("total %s %"PRIu64" (%"PRIu64" pps) (%f%%)\n", name, st->qry_sent,
- ps(st->qry_sent), 100.0 * st->qry_sent / (st->duration / 1000000.0 * qps));
- if (st->qry_sent > 0 && recv) {
- if (tcp || quic) {
- name = tcp ? "established:" : "handshakes: ";
- printf("total %s %"PRIu64" (%"PRIu64" pps) (%f%%)\n", name,
- st->synack_recv, ps(st->synack_recv), pct(st->synack_recv));
- }
- printf("total replies: %"PRIu64" (%"PRIu64" pps) (%f%%)\n",
- st->ans_recv, ps(st->ans_recv), pct(st->ans_recv));
- if (tcp) {
- printf("total closed: %"PRIu64" (%"PRIu64" pps) (%f%%)\n",
- st->finack_recv, ps(st->finack_recv), pct(st->finack_recv));
- }
- if (st->rst_recv > 0) {
- printf("total reset: %"PRIu64" (%"PRIu64" pps) (%f%%)\n",
- st->rst_recv, ps(st->rst_recv), pct(st->rst_recv));
- }
- printf("average DNS reply size: %"PRIu64" B\n",
- st->ans_recv > 0 ? st->size_recv / st->ans_recv : 0);
- printf("average Ethernet reply rate: %"PRIu64" bps (%.2f Mbps)\n",
- ps(st->wire_recv * 8), ps((float)st->wire_recv * 8 / (1000 * 1000)));
-
- for (int i = 0; i < RCODE_MAX; i++) {
- if (st->rcodes_recv[i] > 0) {
- const knot_lookup_t *rcode = knot_lookup_by_id(knot_rcode_names, i);
- const char *rcname = rcode == NULL ? "unknown" : rcode->name;
- int space = MAX(9 - strlen(rcname), 0);
- printf("responded %s: %.*s%"PRIu64"\n",
- rcname, space, " ", st->rcodes_recv[i]);
- }
- }
- }
- printf("duration: %"PRIu64" s\n", (st->duration / (1000 * 1000)));
-
- pthread_mutex_unlock(&st->mutex);
-}
-
-inline static void timer_start(struct timespec *timesp)
-{
- clock_gettime(CLOCK_MONOTONIC, timesp);
-}
-
-inline static uint64_t timer_end(struct timespec *timesp)
-{
- struct timespec end;
- clock_gettime(CLOCK_MONOTONIC, &end);
- uint64_t res = (end.tv_sec - timesp->tv_sec) * (uint64_t)1000000;
- res += ((int64_t)end.tv_nsec - timesp->tv_nsec) / 1000;
- return res;
}
static unsigned addr_bits(bool ipv6)
@@ -267,7 +99,8 @@ static unsigned addr_bits(bool ipv6)
return ipv6 ? 128 : 32;
}
-static void shuffle_sockaddr4(struct sockaddr_in *dst, struct sockaddr_in *src, uint64_t increment)
+static void shuffle_sockaddr4(struct sockaddr_in *dst, struct sockaddr_in *src,
+ uint64_t increment)
{
memcpy(&dst->sin_addr, &src->sin_addr, sizeof(dst->sin_addr));
if (increment > 0) {
@@ -275,7 +108,8 @@ static void shuffle_sockaddr4(struct sockaddr_in *dst, struct sockaddr_in *src,
}
}
-static void shuffle_sockaddr6(struct sockaddr_in6 *dst, struct sockaddr_in6 *src, uint64_t increment)
+static void shuffle_sockaddr6(struct sockaddr_in6 *dst, struct sockaddr_in6 *src,
+ uint64_t increment)
{
memcpy(&dst->sin6_addr, &src->sin6_addr, sizeof(dst->sin6_addr));
if (increment > 0) {
@@ -293,7 +127,8 @@ static void shuffle_sockaddr(struct sockaddr_in6 *dst, struct sockaddr_in6 *src,
if (src->sin6_family == AF_INET6) {
shuffle_sockaddr6(dst, src, increment);
} else {
- shuffle_sockaddr4((struct sockaddr_in *)dst, (struct sockaddr_in *)src, increment);
+ shuffle_sockaddr4((struct sockaddr_in *)dst, (struct sockaddr_in *)src,
+ increment);
}
}
@@ -311,7 +146,8 @@ static void next_payload(struct pkt_payload **payload, int increment)
}
}
-static void put_dns_payload(struct iovec *put_into, bool zero_copy, xdp_gun_ctx_t *ctx, struct pkt_payload **payl)
+static void put_dns_payload(struct iovec *put_into, bool zero_copy, xdp_gun_ctx_t *ctx,
+ struct pkt_payload **payl)
{
if (zero_copy) {
put_into->iov_base = (*payl)->payload;
@@ -472,19 +308,41 @@ static void quic_free_cb(knot_quic_reply_t *rpl)
}
#endif // ENABLE_QUIC
+static uint64_t timestamp_ns(void)
+{
+ struct timespec ts;
+ clock_gettime(CLOCK_REALTIME, &ts);
+ return ((uint64_t)ts.tv_sec * 1000000000) + ts.tv_nsec;
+}
+
+static void timer_start(struct timespec *out)
+{
+ clock_gettime(CLOCK_MONOTONIC, out);
+}
+
+static uint64_t timer_end_ns(const struct timespec *start)
+{
+ struct timespec end;
+ clock_gettime(CLOCK_MONOTONIC, &end);
+ uint64_t res = (end.tv_sec - start->tv_sec) * (uint64_t)1000000000;
+ res += end.tv_nsec - start->tv_nsec;
+ return res;
+}
+
void *xdp_gun_thread(void *_ctx)
{
xdp_gun_ctx_t *ctx = _ctx;
- struct knot_xdp_socket *xsk;
- struct timespec timer;
+ struct knot_xdp_socket *xsk = NULL;
knot_xdp_msg_t pkts[ctx->at_once];
- uint64_t errors = 0, lost = 0, duration = 0;
- kxdpgun_stats_t local_stats = { 0 };
+ uint64_t duration_us = 0;
+ struct timespec timer;
+ kxdpgun_stats_t local_stats = { 0 }; // cumulative stats of past periods excluding the current
+ kxdpgun_stats_t periodic_stats = { 0 }; // stats for the current period (see -S option)
unsigned stats_triggered = 0;
knot_tcp_table_t *tcp_table = NULL;
#ifdef ENABLE_QUIC
knot_quic_table_t *quic_table = NULL;
- struct knot_quic_creds *quic_creds = NULL;
+ struct knot_creds *quic_creds = NULL;
list_t quic_sessions;
init_list(&quic_sessions);
#endif // ENABLE_QUIC
@@ -496,20 +354,21 @@ void *xdp_gun_thread(void *_ctx)
tcp_table = knot_tcp_table_new(ctx->qps, NULL);
if (tcp_table == NULL) {
ERR2("failed to allocate TCP connection table");
- return NULL;
+ goto cleanup;
}
}
if (ctx->quic) {
#ifdef ENABLE_QUIC
- quic_creds = knot_quic_init_creds_peer(NULL, NULL, 0);
+ quic_creds = knot_creds_init_peer(NULL, NULL, 0);
if (quic_creds == NULL) {
ERR2("failed to initialize QUIC context");
- return NULL;
+ goto cleanup;
}
- quic_table = knot_quic_table_new(ctx->qps * 100, SIZE_MAX, SIZE_MAX, 1232, quic_creds);
+ quic_table = knot_quic_table_new(ctx->qps * 100, SIZE_MAX, SIZE_MAX,
+ 1232, quic_creds);
if (quic_table == NULL) {
ERR2("failed to allocate QUIC connection table");
- return NULL;
+ goto cleanup;
}
quic_table->qlog_dir = ctx->qlog_dir;
#else
@@ -517,12 +376,12 @@ void *xdp_gun_thread(void *_ctx)
#endif // ENABLE_QUIC
}
- knot_xdp_load_bpf_t mode = (ctx->thread_id == 0 ?
- KNOT_XDP_LOAD_BPF_ALWAYS : KNOT_XDP_LOAD_BPF_NEVER);
+ knot_xdp_load_bpf_t mode =
+ (ctx->thread_id == 0 ? KNOT_XDP_LOAD_BPF_ALWAYS : KNOT_XDP_LOAD_BPF_NEVER);
/*
* This mutex prevents libbpf from logging:
* 'libbpf: can't get link by id (5535): Resource temporarily unavailable'
- */
+ */
pthread_mutex_lock(&global_stats.mutex);
int ret = knot_xdp_init(&xsk, ctx->dev, ctx->thread_id, ctx->flags,
LOCAL_PORT_MIN, LOCAL_PORT_MIN, mode, &ctx->xdp_config);
@@ -530,18 +389,11 @@ void *xdp_gun_thread(void *_ctx)
if (ret != KNOT_EOK) {
ERR2("failed to initialize XDP socket#%u on interface %s (%s)",
ctx->thread_id, ctx->dev, knot_strerror(ret));
- knot_tcp_table_free(tcp_table);
- return NULL;
+ goto cleanup;
}
if (ctx->thread_id == 0) {
- INFO2("using interface %s, XDP threads %u, IPv%c/%s%s%s, %s mode",
- ctx->dev, ctx->n_threads, (ctx->ipv6 ? '6' : '4'),
- (ctx->tcp ? "TCP" : ctx->quic ? "QUIC" : "UDP"),
- (ctx->sending_mode[0] != '\0' ? " mode " : ""),
- (ctx->sending_mode[0] != '\0' ? ctx->sending_mode : ""),
- (knot_eth_xdp_mode(if_nametoindex(ctx->dev)) == KNOT_XDP_MODE_FULL ?
- "native" : "emulated"));
+ STATS_HDR(ctx);
}
struct pollfd pfd = { knot_xdp_socket_fd(xsk), POLLIN, 0 };
@@ -577,7 +429,7 @@ void *xdp_gun_thread(void *_ctx)
ctx->target_ip.sin6_port = htobe16(ctx->target_port);
knot_sweep_stats_t sweep_stats = { 0 };
- uint16_t local_ports[QUIC_THREAD_PORTS];
+ uint16_t local_ports[QUIC_THREAD_PORTS] = { 0 };
uint16_t port = LOCAL_PORT_MIN;
for (int i = 0; ctx->quic && i < QUIC_THREAD_PORTS; ++i) {
local_ports[i] = adjust_port(ctx, port);
@@ -587,24 +439,25 @@ void *xdp_gun_thread(void *_ctx)
size_t local_ports_it = 0;
#endif // ENABLE_QUIC
+ local_stats.since = periodic_stats.since = timestamp_ns();
timer_start(&timer);
+ ctx->stats_start_us = local_stats.since / 1000;
- while (duration < ctx->duration + extra_wait) {
-
+ while (duration_us < ctx->duration + extra_wait) {
// sending part
- if (duration < ctx->duration) {
+ if (duration_us < ctx->duration) {
while (1) {
knot_xdp_send_prepare(xsk);
unsigned alloced = alloc_pkts(pkts, xsk, ctx, tick);
if (alloced < ctx->at_once) {
- lost += ctx->at_once - alloced;
+ periodic_stats.lost += ctx->at_once - alloced;
if (alloced == 0) {
break;
}
}
if (ctx->tcp) {
- for (int i = 0; i < alloced; i++) {
+ for (uint32_t i = 0; i < alloced; i++) {
pkts[i].payload.iov_len = 0;
if (!EMPTY_LIST(reuse_conns)) {
@@ -622,7 +475,7 @@ void *xdp_gun_thread(void *_ctx)
}
if (ret == KNOT_EOK) {
pkts[i].flags &= ~KNOT_XDP_MSG_SYN; // skip sending respective packet
- local_stats.qry_sent++;
+ periodic_stats.qry_sent++;
}
free(rl);
}
@@ -671,14 +524,14 @@ void *xdp_gun_thread(void *_ctx)
(ctx->ignore1 & KXDPGUN_IGNORE_LASTBYTE) ? KNOT_QUIC_SEND_IGNORE_LASTBYTE : 0);
}
if (ret == KNOT_EOK) {
- local_stats.qry_sent++;
+ periodic_stats.qry_sent++;
}
}
(void)knot_xdp_send_finish(xsk);
#endif // ENABLE_QUIC
break;
} else {
- for (int i = 0; i < alloced; i++) {
+ for (uint32_t i = 0; i < alloced; i++) {
put_dns_payload(&pkts[i].payload, false,
ctx, &payload_ptr);
}
@@ -686,9 +539,9 @@ void *xdp_gun_thread(void *_ctx)
uint32_t really_sent = 0;
if (knot_xdp_send(xsk, pkts, alloced, &really_sent) != KNOT_EOK) {
- lost += alloced;
+ periodic_stats.lost += alloced;
}
- local_stats.qry_sent += really_sent;
+ periodic_stats.qry_sent += really_sent;
(void)knot_xdp_send_finish(xsk);
break;
@@ -700,7 +553,7 @@ void *xdp_gun_thread(void *_ctx)
while (1) {
ret = poll(&pfd, 1, 0);
if (ret < 0) {
- errors++;
+ periodic_stats.errors++;
break;
}
if (!pfd.revents) {
@@ -715,18 +568,19 @@ void *xdp_gun_thread(void *_ctx)
}
if (ctx->tcp) {
knot_tcp_relay_t relays[recvd];
- ret = knot_tcp_recv(relays, pkts, recvd, tcp_table, NULL, ctx->ignore2);
- if (ret != KNOT_EOK) {
- errors++;
- break;
- }
for (size_t i = 0; i < recvd; i++) {
knot_tcp_relay_t *rl = &relays[i];
+ ret = knot_tcp_recv(rl, &pkts[i], tcp_table, NULL, ctx->ignore2);
+ if (ret != KNOT_EOK) {
+ periodic_stats.errors++;
+ continue;
+ }
+
struct iovec payl;
switch (rl->action) {
case XDP_TCP_ESTABLISH:
- local_stats.synack_recv++;
+ periodic_stats.synack_recv++;
if (ctx->ignore1 & KXDPGUN_IGNORE_QUERY) {
break;
}
@@ -735,20 +589,20 @@ void *xdp_gun_thread(void *_ctx)
(ctx->ignore1 & KXDPGUN_IGNORE_LASTBYTE),
payl.iov_base, payl.iov_len);
if (ret != KNOT_EOK) {
- errors++;
+ periodic_stats.errors++;
}
break;
case XDP_TCP_CLOSE:
- local_stats.finack_recv++;
+ periodic_stats.finack_recv++;
break;
case XDP_TCP_RESET:
- local_stats.rst_recv++;
+ periodic_stats.rst_recv++;
break;
default:
break;
}
for (size_t j = 0; rl->inbf != NULL && j < rl->inbf->n_inbufs; j++) {
- if (check_dns_payload(&rl->inbf->inbufs[j], ctx, &local_stats)) {
+ if (check_dns_payload(&rl->inbf->inbufs[j], ctx, &periodic_stats)) {
if (!(ctx->ignore1 & KXDPGUN_IGNORE_CLOSE)) {
rl->answer = XDP_TCP_CLOSE;
} else if ((ctx->ignore1 & KXDPGUN_REUSE_CONN)) {
@@ -764,7 +618,7 @@ void *xdp_gun_thread(void *_ctx)
ret = knot_tcp_send(xsk, relays, recvd, ctx->at_once);
if (ret != KNOT_EOK) {
- errors++;
+ periodic_stats.errors++;
}
(void)knot_xdp_send_finish(xsk);
@@ -782,11 +636,11 @@ void *xdp_gun_thread(void *_ctx)
ret = knot_quic_handle(quic_table, &quic_reply, 5000000000L, &conn);
if (ret == KNOT_ECONN) {
- local_stats.rst_recv++;
+ periodic_stats.rst_recv++;
knot_quic_cleanup(&conn, 1);
continue;
} else if (ret != 0) {
- errors++;
+ periodic_stats.errors++;
knot_quic_cleanup(&conn, 1);
break;
}
@@ -806,7 +660,7 @@ void *xdp_gun_thread(void *_ctx)
if ((conn->flags & KNOT_QUIC_CONN_HANDSHAKE_DONE) && conn->streams_count == -1) {
conn->streams_count = 1;
- local_stats.synack_recv++;
+ periodic_stats.synack_recv++;
if ((ctx->ignore1 & KXDPGUN_IGNORE_QUERY)) {
knot_quic_table_rem(conn, quic_table);
knot_quic_cleanup(&conn, 1);
@@ -823,14 +677,14 @@ void *xdp_gun_thread(void *_ctx)
if ((ctx->ignore2 & XDP_TCP_IGNORE_ESTABLISH)) {
knot_quic_table_rem(conn, quic_table);
knot_quic_cleanup(&conn, 1);
- local_stats.synack_recv++;
+ periodic_stats.synack_recv++;
continue;
}
int64_t s0id;
knot_quic_stream_t *stream0 = knot_quic_stream_get_process(conn, &s0id);
if (stream0 != NULL && stream0->inbufs != NULL && stream0->inbufs->n_inbufs > 0) {
- check_dns_payload(&stream0->inbufs->inbufs[0], ctx, &local_stats);
+ check_dns_payload(&stream0->inbufs->inbufs[0], ctx, &periodic_stats);
stream0->inbufs->n_inbufs = 0; // signal that data have been read out
if ((ctx->ignore2 & XDP_TCP_IGNORE_DATA_ACK)) {
@@ -838,7 +692,9 @@ void *xdp_gun_thread(void *_ctx)
knot_quic_cleanup(&conn, 1);
continue;
} else if ((ctx->ignore1 & KXDPGUN_REUSE_CONN)) {
- if (conn->streams_count > 1) { // keep the number of outstanding streams below MAX_STREAMS_PER_CONN, while preserving at least one at all times
+ /* keep the number of outstanding streams below MAX_STREAMS_PER_CONN,
+ * while preserving at least one at all times */
+ if (conn->streams_count > 1) {
knot_quic_conn_stream_free(conn, conn->streams_first * 4);
}
ptrlist_add(&reuse_conns, conn, NULL);
@@ -847,30 +703,31 @@ void *xdp_gun_thread(void *_ctx)
ret = knot_quic_send(quic_table, conn, &quic_reply, 4,
(ctx->ignore1 & KXDPGUN_IGNORE_LASTBYTE) ? KNOT_QUIC_SEND_IGNORE_LASTBYTE : 0);
if (ret != KNOT_EOK) {
- errors++;
+ periodic_stats.errors++;
}
- if (!(ctx->ignore1 & KXDPGUN_IGNORE_CLOSE) && (conn->flags & KNOT_QUIC_CONN_SESSION_TAKEN) &&
- stream0 != NULL && stream0->inbufs != NULL && stream0->inbufs->n_inbufs == 0) {
+ if (!(ctx->ignore1 & KXDPGUN_IGNORE_CLOSE)
+ && (conn->flags & KNOT_QUIC_CONN_SESSION_TAKEN)
+ && stream0 != NULL && stream0->inbufs != NULL
+ && stream0->inbufs->n_inbufs == 0) {
assert(!(ctx->ignore2 & XDP_TCP_IGNORE_DATA_ACK));
quic_reply.handle_ret = KNOT_QUIC_HANDLE_RET_CLOSE;
ret = knot_quic_send(quic_table, conn, &quic_reply, 1, 0);
knot_quic_table_rem(conn, quic_table);
knot_quic_cleanup(&conn, 1);
if (ret != KNOT_EOK) {
- errors++;
+ periodic_stats.errors++;
}
}
}
(void)knot_xdp_send_finish(xsk);
#endif // ENABLE_QUIC
} else {
- for (int i = 0; i < recvd; i++) {
- (void)check_dns_payload(&pkts[i].payload, ctx,
- &local_stats);
+ for (uint32_t i = 0; i < recvd; i++) {
+ check_dns_payload(&pkts[i].payload, ctx, &periodic_stats);
}
}
- local_stats.wire_recv += wire;
+ periodic_stats.wire_recv += wire;
knot_xdp_recv_finish(xsk, pkts, recvd);
pfd.revents = 0;
}
@@ -883,34 +740,62 @@ void *xdp_gun_thread(void *_ctx)
#endif // ENABLE_QUIC
// speed and signal part
- uint64_t dura_exp = (local_stats.qry_sent * 1000000) / ctx->qps;
- duration = timer_end(&timer);
- if (xdp_trigger == KXDPGUN_STOP && ctx->duration > duration) {
- ctx->duration = duration;
+ uint64_t duration_ns = timer_end_ns(&timer);
+ duration_us = duration_ns / 1000;
+ uint64_t dura_exp = ((local_stats.qry_sent + periodic_stats.qry_sent) * 1000000) / ctx->qps;
+ if (ctx->thread_id == 0 && ctx->stats_period != 0 && global_stats.collected == 0
+ && (duration_ns - (periodic_stats.since - local_stats.since)) >= ctx->stats_period) {
+ ATOMIC_SET(stats_switch, STATS_PERIODIC);
+ ATOMIC_ADD(stats_trigger, 1);
}
- if (stats_trigger > stats_triggered) {
- assert(stats_trigger == stats_triggered + 1);
- stats_triggered++;
- local_stats.duration = duration;
- size_t collected = collect_stats(&global_stats, &local_stats);
+ if (xdp_trigger == KXDPGUN_STOP && ctx->duration > duration_us) {
+ ctx->duration = duration_us;
+ }
+ uint64_t tmp_stats_trigger = ATOMIC_GET(stats_trigger);
+ if (duration_us < ctx->duration && tmp_stats_trigger > stats_triggered) {
+ bool tmp_stats_switch = ATOMIC_GET(stats_switch);
+ stats_triggered = tmp_stats_trigger;
+
+ local_stats.until = periodic_stats.until = local_stats.since + duration_ns;
+ kxdpgun_stats_t cumulative_stats = periodic_stats;
+ if (tmp_stats_switch == STATS_PERIODIC) {
+ collect_periodic_stats(&local_stats, &periodic_stats);
+ clear_stats(&periodic_stats);
+ periodic_stats.since = local_stats.since + duration_ns;
+ } else {
+ collect_periodic_stats(&cumulative_stats, &local_stats);
+ cumulative_stats.since = local_stats.since;
+ }
+
+ size_t collected = collect_stats(&global_stats, &cumulative_stats);
+
assert(collected <= ctx->n_threads);
if (collected == ctx->n_threads) {
- print_stats(&global_stats, ctx->tcp, ctx->quic,
- !(ctx->flags & KNOT_XDP_FILTER_DROP),
- ctx->qps * ctx->n_threads);
+ STATS_FMT(ctx, &global_stats, tmp_stats_switch);
+ if (!JSON_MODE(*ctx)) {
+ puts(STATS_SECTION_SEP);
+ }
clear_stats(&global_stats);
+ ATOMIC_SET(stats_switch, STATS_SUM);
}
}
- if (dura_exp > duration) {
- usleep(dura_exp - duration);
+ if (dura_exp > duration_us) {
+ usleep(dura_exp - duration_us);
}
- if (duration > ctx->duration) {
+ if (duration_us > ctx->duration) {
usleep(1000);
}
tick++;
}
+ periodic_stats.until = local_stats.since + timer_end_ns(&timer) - extra_wait * 1000;
+ collect_periodic_stats(&local_stats, &periodic_stats);
+
+ STATS_THRD(ctx, &local_stats);
+ collect_stats(&global_stats, &local_stats);
+
+cleanup:
knot_xdp_deinit(xsk);
if (ctx->tcp) {
@@ -928,24 +813,9 @@ void *xdp_gun_thread(void *_ctx)
WALK_LIST_DELSAFE(n, nxt, quic_sessions) {
knot_quic_session_load(NULL, n);
}
- knot_quic_free_creds(quic_creds);
+ knot_creds_free(quic_creds);
#endif // ENABLE_QUIC
- char recv_str[40] = "", lost_str[40] = "", err_str[40] = "";
- if (!(ctx->flags & KNOT_XDP_FILTER_DROP)) {
- (void)snprintf(recv_str, sizeof(recv_str), ", received %"PRIu64, local_stats.ans_recv);
- }
- if (lost > 0) {
- (void)snprintf(lost_str, sizeof(lost_str), ", lost %"PRIu64, lost);
- }
- if (errors > 0) {
- (void)snprintf(err_str, sizeof(err_str), ", errors %"PRIu64, errors);
- }
- INFO2("thread#%02u: sent %"PRIu64"%s%s%s",
- ctx->thread_id, local_stats.qry_sent, recv_str, lost_str, err_str);
- local_stats.duration = ctx->duration;
- collect_stats(&global_stats, &local_stats);
-
return NULL;
}
@@ -1118,30 +988,33 @@ static void print_help(void)
printf("Usage: %s [options] -i <queries_file> <dest_ip>\n"
"\n"
"Options:\n"
- " -t, --duration <sec> "SPACE"Duration of traffic generation.\n"
- " "SPACE" (default is %"PRIu64" seconds)\n"
- " -T, --tcp[=debug_mode] "SPACE"Send queries over TCP.\n"
- " -U, --quic[=debug_mode] "SPACE"Send queries over QUIC.\n"
- " -Q, --qps <qps> "SPACE"Number of queries-per-second (approximately) to be sent.\n"
- " "SPACE" (default is %"PRIu64" qps)\n"
- " -b, --batch <size> "SPACE"Send queries in a batch of defined size.\n"
- " "SPACE" (default is %d for UDP, %d for TCP)\n"
- " -r, --drop "SPACE"Drop incoming responses (disables response statistics).\n"
- " -p, --port <port> "SPACE"Remote destination port.\n"
- " "SPACE" (default is %d for UDP/TCP, %u for QUIC)\n"
- " -F, --affinity <spec> "SPACE"CPU affinity in the format [<cpu_start>][s<cpu_step>].\n"
- " "SPACE" (default is %s)\n"
- " -i, --infile <file> "SPACE"Path to a file with query templates.\n"
- " -I, --interface <ifname> "SPACE"Override auto-detected interface for outgoing communication.\n"
- " -l, --local <ip[/prefix]>"SPACE"Override auto-detected source IP address or subnet.\n"
- " -L, --local-mac <MAC> "SPACE"Override auto-detected local MAC address.\n"
- " -R, --remote-mac <MAC> "SPACE"Override auto-detected remote MAC address.\n"
- " -v, --vlan <id> "SPACE"Add VLAN 802.1Q header with the given id.\n"
- " -e, --edns-size <size> "SPACE"EDNS UDP payload size, range 512-4096 (default 1232)\n"
- " -m, --mode <mode> "SPACE"Set XDP mode (auto, copy, generic).\n"
- " -G, --qlog <path> "SPACE"Output directory for qlog (useful for QUIC only).\n"
- " -h, --help "SPACE"Print the program help.\n"
- " -V, --version "SPACE"Print the program version.\n"
+ " -t, --duration <sec> "SPACE"Duration of traffic generation.\n"
+ " "SPACE" (default is %"PRIu64" seconds)\n"
+ " -T, --tcp[=debug_mode] "SPACE"Send queries over TCP.\n"
+ " -U, --quic[=debug_mode] "SPACE"Send queries over QUIC.\n"
+ " -Q, --qps <qps> "SPACE"Number of queries-per-second (approximately) to be sent.\n"
+ " "SPACE" (default is %"PRIu64" qps)\n"
+ " -b, --batch <size> "SPACE"Send queries in a batch of defined size.\n"
+ " "SPACE" (default is %d for UDP, %d for TCP)\n"
+ " -r, --drop "SPACE"Drop incoming responses (disables response statistics).\n"
+ " -p, --port <port> "SPACE"Remote destination port.\n"
+ " "SPACE" (default is %d for UDP/TCP, %u for QUIC)\n"
+ " -F, --affinity <spec> "SPACE"CPU affinity in the format [<cpu_start>][s<cpu_step>].\n"
+ " "SPACE" (default is %s)\n"
+ " -I, --interface <ifname> "SPACE"Override auto-detected interface for outgoing communication.\n"
+ " -i, --infile <file> "SPACE"Path to a file with query templates.\n"
+ " -B, --binary "SPACE"Specify that input file is in binary format (<length:2><wire:length>).\n"
+ " -l, --local <ip[/prefix]> "SPACE"Override auto-detected source IP address or subnet.\n"
+ " -L, --local-mac <MAC> "SPACE"Override auto-detected local MAC address.\n"
+ " -R, --remote-mac <MAC> "SPACE"Override auto-detected remote MAC address.\n"
+ " -v, --vlan <id> "SPACE"Add VLAN 802.1Q header with the given id.\n"
+ " -e, --edns-size <size> "SPACE"EDNS UDP payload size, range 512-4096 (default 1232)\n"
+ " -m, --mode <mode> "SPACE"Set XDP mode (auto, copy, generic).\n"
+ " -G, --qlog <path> "SPACE"Output directory for qlog (useful for QUIC only).\n"
+ " -j, --json "SPACE"Output statistics in json.\n"
+ " -S, --stats-period <period>"SPACE"Enable periodic statistics printout in milliseconds.\n"
+ " -h, --help "SPACE"Print the program help.\n"
+ " -V, --version "SPACE"Print the program version.\n"
"\n"
"Parameters:\n"
" <dest_ip> "SPACE"IPv4 or IPv6 address of the remote destination.\n",
@@ -1240,40 +1113,45 @@ static int set_mode(const char *arg, knot_xdp_config_t *config)
static bool get_opts(int argc, char *argv[], xdp_gun_ctx_t *ctx)
{
+ const char *opts_str = "hV::t:Q:b:rp:T::U::F:I:i:Bl:L:R:v:e:m:G:jS:";
struct option opts[] = {
- { "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
- { "duration", required_argument, NULL, 't' },
- { "qps", required_argument, NULL, 'Q' },
- { "batch", required_argument, NULL, 'b' },
- { "drop", no_argument, NULL, 'r' },
- { "port", required_argument, NULL, 'p' },
- { "tcp", optional_argument, NULL, 'T' },
- { "quic", optional_argument, NULL, 'U' },
- { "affinity", required_argument, NULL, 'F' },
- { "interface", required_argument, NULL, 'I' },
- { "local", required_argument, NULL, 'l' },
- { "infile", required_argument, NULL, 'i' },
- { "local-mac", required_argument, NULL, 'L' },
- { "remote-mac", required_argument, NULL, 'R' },
- { "vlan", required_argument, NULL, 'v' },
- { "edns-size", required_argument, NULL, 'e' },
- { "mode", required_argument, NULL, 'm' },
- { "qlog", required_argument, NULL, 'G' },
- { NULL }
+ { "help", no_argument, NULL, 'h' },
+ { "version", optional_argument, NULL, 'V' },
+ { "duration", required_argument, NULL, 't' },
+ { "qps", required_argument, NULL, 'Q' },
+ { "batch", required_argument, NULL, 'b' },
+ { "drop", no_argument, NULL, 'r' },
+ { "port", required_argument, NULL, 'p' },
+ { "tcp", optional_argument, NULL, 'T' },
+ { "quic", optional_argument, NULL, 'U' },
+ { "affinity", required_argument, NULL, 'F' },
+ { "interface", required_argument, NULL, 'I' },
+ { "infile", required_argument, NULL, 'i' },
+ { "binary", no_argument, NULL, 'B' },
+ { "local", required_argument, NULL, 'l' },
+ { "local-mac", required_argument, NULL, 'L' },
+ { "remote-mac", required_argument, NULL, 'R' },
+ { "vlan", required_argument, NULL, 'v' },
+ { "edns-size", required_argument, NULL, 'e' },
+ { "mode", required_argument, NULL, 'm' },
+ { "qlog", required_argument, NULL, 'G' },
+ { "json", no_argument, NULL, 'j' },
+ { "stats-period", required_argument, NULL, 'S' },
+ { 0 }
};
int opt = 0, arg;
bool default_at_once = true;
double argf;
- char *argcp, *local_ip = NULL, *filename = NULL;
- while ((opt = getopt_long(argc, argv, "hVt:Q:b:rp:T::U::F:I:l:i:L:R:v:e:m:G:", opts, NULL)) != -1) {
+ char *argcp, *local_ip = NULL;
+ input_t input = { .format = TXT };
+ while ((opt = getopt_long(argc, argv, opts_str, opts, NULL)) != -1) {
switch (opt) {
case 'h':
print_help();
exit(EXIT_SUCCESS);
case 'V':
- print_version(PROGRAM_NAME);
+ print_version(PROGRAM_NAME, optarg != NULL);
exit(EXIT_SUCCESS);
case 't':
assert(optarg);
@@ -1366,12 +1244,15 @@ static bool get_opts(int argc, char *argv[], xdp_gun_ctx_t *ctx)
case 'I':
strlcpy(ctx->dev, optarg, IFNAMSIZ);
break;
+ case 'i':
+ input.path = optarg;
+ break;
+ case 'B':
+ input.format = BIN;
+ break;
case 'l':
local_ip = optarg;
break;
- case 'i':
- filename = optarg;
- break;
case 'L':
if (mac_sscan(optarg, ctx->local_mac) != KNOT_EOK) {
ERR2("invalid local MAC address '%s'", optarg);
@@ -1415,17 +1296,33 @@ static bool get_opts(int argc, char *argv[], xdp_gun_ctx_t *ctx)
case 'G':
ctx->qlog_dir = optarg;
break;
+ case 'S':
+ assert(optarg);
+ arg = atoi(optarg);
+ if (arg > 0) {
+ ctx->stats_period = arg * 1000000; // convert to ns
+ } else {
+ ERR2("period must be a positive integer\n");
+ return false;
+ }
+ break;
+ case 'j':
+ if ((ctx->jw = jsonw_new(stdout, JSON_INDENT)) == NULL) {
+ ERR2("failed to use JSON");
+ return false;
+ }
+ break;
default:
print_help();
return false;
}
}
- if (filename == NULL) {
+ if (input.path == NULL) {
print_help();
return false;
}
size_t qcount = ctx->duration / 1000000 * ctx->qps;
- if (!load_queries(filename, ctx->edns_size, ctx->msgid, qcount)) {
+ if (!load_queries(&input, ctx->edns_size, ctx->msgid, qcount)) {
return false;
}
if (global_payloads == NULL || argc - optind != 1) {
@@ -1452,25 +1349,29 @@ static bool get_opts(int argc, char *argv[], xdp_gun_ctx_t *ctx)
int main(int argc, char *argv[])
{
+ int ecode = EXIT_FAILURE;
+
xdp_gun_ctx_t ctx = ctx_defaults, *thread_ctxs = NULL;
ctx.msgid = time(NULL) % UINT16_MAX;
+ ctx.runid = timestamp_ns() / 1000;
+ ctx.argv = argv;
pthread_t *threads = NULL;
if (!get_opts(argc, argv, &ctx)) {
- free_global_payloads();
- return EXIT_FAILURE;
+ goto err;
+ }
+
+ if (JSON_MODE(ctx)) {
+ jsonw_list(ctx.jw, NULL); // wrap the json in a list, for syntactic correctness
}
thread_ctxs = calloc(ctx.n_threads, sizeof(*thread_ctxs));
threads = calloc(ctx.n_threads, sizeof(*threads));
if (thread_ctxs == NULL || threads == NULL) {
ERR2("out of memory");
- free(thread_ctxs);
- free(threads);
- free_global_payloads();
- return EXIT_FAILURE;
+ goto err;
}
- for (int i = 0; i < ctx.n_threads; i++) {
+ for (uint32_t i = 0; i < ctx.n_threads; i++) {
thread_ctxs[i] = ctx;
thread_ctxs[i].thread_id = i;
}
@@ -1482,8 +1383,7 @@ int main(int argc, char *argv[])
cur_limit.rlim_max != min_limit.rlim_max) {
int ret = setrlimit(RLIMIT_MEMLOCK, &min_limit);
if (ret != 0) {
- WARN2("unable to increase RLIMIT_MEMLOCK: %s",
- strerror(errno));
+ WARN2("unable to increase RLIMIT_MEMLOCK: %s", strerror(errno));
}
}
}
@@ -1509,22 +1409,30 @@ int main(int argc, char *argv[])
usleep(20000);
}
usleep(1000000);
-
xdp_trigger = KXDPGUN_START;
usleep(1000000);
for (size_t i = 0; i < ctx.n_threads; i++) {
pthread_join(threads[i], NULL);
}
- if (global_stats.duration > 0 && global_stats.qry_sent > 0) {
- print_stats(&global_stats, ctx.tcp, ctx.quic, !(ctx.flags & KNOT_XDP_FILTER_DROP), ctx.qps * ctx.n_threads);
+ if (DURATION_US(global_stats) > 0 && global_stats.qry_sent > 0) {
+ if (!JSON_MODE(ctx)) {
+ puts(STATS_SECTION_SEP);
+ }
+ STATS_FMT(&ctx, &global_stats, STATS_SUM);
}
pthread_mutex_destroy(&global_stats.mutex);
+ ecode = EXIT_SUCCESS;
+
+err:
free(ctx.rss_conf);
free(thread_ctxs);
free(threads);
free_global_payloads();
-
- return EXIT_SUCCESS;
+ if (JSON_MODE(ctx)) {
+ jsonw_end(ctx.jw);
+ jsonw_free(&ctx.jw);
+ }
+ return ecode;
}
diff --git a/src/utils/kxdpgun/main.h b/src/utils/kxdpgun/main.h
new file mode 100644
index 0000000..d87aee8
--- /dev/null
+++ b/src/utils/kxdpgun/main.h
@@ -0,0 +1,87 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <net/if.h>
+#include <netinet/in.h>
+#include <stdbool.h>
+
+#include "contrib/json.h"
+#include "libknot/xdp/eth.h"
+#include "libknot/xdp/tcp.h"
+
+#define PROGRAM_NAME "kxdpgun"
+#define SPACE " "
+
+#define REMOTE_PORT_DEFAULT 53
+#define REMOTE_PORT_DOQ_DEFAULT 853
+#define LOCAL_PORT_MIN 2000
+#define LOCAL_PORT_MAX 65535
+#define QUIC_THREAD_PORTS 100
+
+enum {
+ KXDPGUN_WAIT,
+ KXDPGUN_START,
+ KXDPGUN_STOP,
+};
+
+typedef enum {
+ KXDPGUN_IGNORE_NONE = 0,
+ KXDPGUN_IGNORE_QUERY = (1 << 0),
+ KXDPGUN_IGNORE_LASTBYTE = (1 << 1),
+ KXDPGUN_IGNORE_CLOSE = (1 << 2),
+ KXDPGUN_REUSE_CONN = (1 << 3),
+} xdp_gun_ignore_t;
+
+typedef struct xdp_gun_ctx {
+ union {
+ struct sockaddr_in local_ip4;
+ struct sockaddr_in6 local_ip;
+ struct sockaddr_storage local_ip_ss;
+ };
+ union {
+ struct sockaddr_in target_ip4;
+ struct sockaddr_in6 target_ip;
+ struct sockaddr_storage target_ip_ss;
+ };
+ char dev[IFNAMSIZ];
+ uint64_t qps, duration;
+ uint64_t runid;
+ uint64_t stats_start_us;
+ uint32_t stats_period; // 0 means no periodic stats
+ unsigned at_once;
+ uint16_t msgid;
+ uint16_t edns_size;
+ uint16_t vlan_tci;
+ uint8_t local_mac[6], target_mac[6];
+ uint8_t local_ip_range;
+ bool ipv6;
+ bool tcp;
+ bool quic;
+ bool quic_full_handshake;
+ const char *qlog_dir;
+ const char *sending_mode;
+ xdp_gun_ignore_t ignore1;
+ knot_tcp_ignore_t ignore2;
+ uint16_t target_port;
+ knot_xdp_filter_flag_t flags;
+ unsigned n_threads, thread_id;
+ knot_eth_rss_conf_t *rss_conf;
+ jsonw_t *jw;
+ char **argv;
+ knot_xdp_config_t xdp_config;
+} xdp_gun_ctx_t;
diff --git a/src/utils/kxdpgun/stats.c b/src/utils/kxdpgun/stats.c
new file mode 100644
index 0000000..f1e4f43
--- /dev/null
+++ b/src/utils/kxdpgun/stats.c
@@ -0,0 +1,292 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#include <assert.h>
+#include <limits.h>
+#include <pthread.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "contrib/macros.h"
+#include "libknot/codes.h"
+#include "libknot/lookup.h"
+#include "utils/common/msg.h"
+#include "utils/kxdpgun/main.h"
+#include "utils/kxdpgun/stats.h"
+
+pthread_mutex_t stdout_mtx = PTHREAD_MUTEX_INITIALIZER;
+
+void clear_stats(kxdpgun_stats_t *st)
+{
+ pthread_mutex_lock(&st->mutex);
+ st->since = 0;
+ st->until = 0;
+ st->qry_sent = 0;
+ st->synack_recv = 0;
+ st->ans_recv = 0;
+ st->finack_recv = 0;
+ st->rst_recv = 0;
+ st->size_recv = 0;
+ st->wire_recv = 0;
+ st->collected = 0;
+ st->lost = 0;
+ st->errors = 0;
+ memset(st->rcodes_recv, 0, sizeof(st->rcodes_recv));
+ pthread_mutex_unlock(&st->mutex);
+}
+
+size_t collect_stats(kxdpgun_stats_t *into, const kxdpgun_stats_t *what)
+{
+ pthread_mutex_lock(&into->mutex);
+ into->since = what->since;
+ collect_periodic_stats(into, what);
+ size_t res = ++into->collected;
+ pthread_mutex_unlock(&into->mutex);
+ return res;
+}
+
+void collect_periodic_stats(kxdpgun_stats_t *into, const kxdpgun_stats_t *what)
+{
+ into->until = what->until;
+ into->qry_sent += what->qry_sent;
+ into->synack_recv += what->synack_recv;
+ into->ans_recv += what->ans_recv;
+ into->finack_recv += what->finack_recv;
+ into->rst_recv += what->rst_recv;
+ into->size_recv += what->size_recv;
+ into->wire_recv += what->wire_recv;
+ into->lost += what->lost;
+ into->errors += what->errors;
+ for (int i = 0; i < RCODE_MAX; i++) {
+ into->rcodes_recv[i] += what->rcodes_recv[i];
+ }
+}
+
+void plain_stats_header(const xdp_gun_ctx_t *ctx)
+{
+ INFO2("using interface %s, XDP threads %u, IPv%c/%s%s%s, %s mode", ctx->dev, ctx->n_threads,
+ (ctx->ipv6 ? '6' : '4'),
+ (ctx->tcp ? "TCP" : ctx->quic ? "QUIC" : "UDP"),
+ (ctx->sending_mode[0] != '\0' ? " mode " : ""),
+ (ctx->sending_mode[0] != '\0' ? ctx->sending_mode : ""),
+ (knot_eth_xdp_mode(if_nametoindex(ctx->dev)) == KNOT_XDP_MODE_FULL ? "native" : "emulated"));
+ puts(STATS_SECTION_SEP);
+}
+
+/* see:
+ * - https://github.com/DNS-OARC/dns-metrics/blob/main/dns-metrics.schema.json
+ * - https://github.com/DNS-OARC/dns-metrics/issues/16#issuecomment-2139462920
+ */
+void json_stats_header(const xdp_gun_ctx_t *ctx)
+{
+ jsonw_t *w = ctx->jw;
+
+ jsonw_object(w, NULL);
+ {
+ jsonw_ulong(w, "runid", ctx->runid);
+ jsonw_str(w, "type", "header");
+ jsonw_int(w, "schema_version", STATS_SCHEMA_VERSION);
+ jsonw_str(w, "generator", PROGRAM_NAME);
+ jsonw_str(w, "generator_version", PACKAGE_VERSION);
+
+ jsonw_list(w, "generator_params");
+ {
+ for (char **it = ctx->argv; *it != NULL; ++it) {
+ jsonw_str(w, NULL, *it);
+ }
+ }
+ jsonw_end(w);
+
+ jsonw_ulong(w, "time_units_per_sec", 1000000000);
+ if (ctx->stats_period > 0) {
+ jsonw_double(w, "stats_interval", ctx->stats_period / 1000.0);
+ }
+ // TODO: timeout
+
+ // mirror the info given by the plaintext printout
+ jsonw_object(w, "additional_info");
+ {
+ jsonw_str(w, "interface", ctx->dev);
+ jsonw_int(w, "xdp_threads", ctx->n_threads);
+ jsonw_int(w, "ip_version", ctx->ipv6 ? 6 : 4);
+ jsonw_str(w, "transport_layer_proto", ctx->tcp ? "TCP" : (ctx->quic ? "QUIC" : "UDP"));
+ jsonw_object(w, "mode_info");
+ {
+ if (ctx->sending_mode[0] != '\0') {
+ jsonw_str(w, "debug", ctx->sending_mode);
+ }
+ jsonw_str(w, "mode", knot_eth_xdp_mode(if_nametoindex(ctx->dev)) == KNOT_XDP_MODE_FULL
+ ? "native"
+ : "emulated");
+ }
+ jsonw_end(w);
+ }
+ jsonw_end(w);
+ }
+ jsonw_end(w);
+}
+
+void plain_thrd_summary(const xdp_gun_ctx_t *ctx, const kxdpgun_stats_t *st)
+{
+ pthread_mutex_lock(&stdout_mtx);
+
+ char recv_str[40] = "", lost_str[40] = "", err_str[40] = "";
+ if (!(ctx->flags & KNOT_XDP_FILTER_DROP)) {
+ (void)snprintf(recv_str, sizeof(recv_str), ", received %"PRIu64, st->ans_recv);
+ }
+ if (st->lost > 0) {
+ (void)snprintf(lost_str, sizeof(lost_str), ", lost %"PRIu64, st->lost);
+ }
+ if (st->errors > 0) {
+ (void)snprintf(err_str, sizeof(err_str), ", errors %"PRIu64, st->errors);
+ }
+ INFO2("thread#%02u: sent %"PRIu64"%s%s%s",
+ ctx->thread_id, st->qry_sent, recv_str, lost_str, err_str);
+
+ pthread_mutex_unlock(&stdout_mtx);
+}
+
+void json_thrd_summary(const xdp_gun_ctx_t *ctx, const kxdpgun_stats_t *st)
+{
+ pthread_mutex_lock(&stdout_mtx);
+
+ jsonw_t *w = ctx->jw;
+
+ jsonw_object(ctx->jw, NULL);
+ {
+ jsonw_str(w, "type", "thread_summary");
+ jsonw_ulong(w, "runid", ctx->runid);
+ jsonw_ulong(w, "subid", ctx->thread_id);
+ jsonw_ulong(w, "qry_sent", st->qry_sent);
+ jsonw_ulong(w, "ans_recv", st->ans_recv);
+ jsonw_ulong(w, "lost", st->lost);
+ jsonw_ulong(w, "errors", st->errors);
+ }
+ jsonw_end(ctx->jw);
+
+ pthread_mutex_unlock(&stdout_mtx);
+}
+
+void plain_stats(const xdp_gun_ctx_t *ctx, kxdpgun_stats_t *st, stats_type_t stt)
+{
+ pthread_mutex_lock(&st->mutex);
+
+ printf("%s metrics:\n", (stt == STATS_SUM) ? "cumulative" : "periodic");
+
+ bool recv = !(ctx->flags & KNOT_XDP_FILTER_DROP);
+ uint64_t duration = DURATION_US(*st);
+ double rel_start_us = (st->since / 1000.0) - ctx->stats_start_us ;
+ double rel_end_us = rel_start_us + duration;
+
+#define ps(counter) ((typeof(counter))((counter) * 1000 / ((float)duration / 1000)))
+#define pct(counter) ((counter) * 100.0 / st->qry_sent)
+
+ const char *name = ctx->tcp ? "SYNs: " : ctx->quic ? "initials:" : "queries: ";
+ printf("total %s %"PRIu64" (%"PRIu64" pps) (%f%%)\n", name, st->qry_sent,
+ ps(st->qry_sent), 100.0 * st->qry_sent / (duration / 1000000.0 * ctx->qps * ctx->n_threads));
+ if (st->qry_sent > 0 && recv) {
+ if (ctx->tcp || ctx->quic) {
+ name = ctx->tcp ? "established:" : "handshakes: ";
+ printf("total %s %"PRIu64" (%"PRIu64" pps) (%f%%)\n", name,
+ st->synack_recv, ps(st->synack_recv), pct(st->synack_recv));
+ }
+ printf("total replies: %"PRIu64" (%"PRIu64" pps) (%f%%)\n",
+ st->ans_recv, ps(st->ans_recv), pct(st->ans_recv));
+ if (ctx->tcp) {
+ printf("total closed: %"PRIu64" (%"PRIu64" pps) (%f%%)\n",
+ st->finack_recv, ps(st->finack_recv), pct(st->finack_recv));
+ }
+ if (st->rst_recv > 0) {
+ printf("total reset: %"PRIu64" (%"PRIu64" pps) (%f%%)\n",
+ st->rst_recv, ps(st->rst_recv), pct(st->rst_recv));
+ }
+ printf("average DNS reply size: %"PRIu64" B\n",
+ st->ans_recv > 0 ? st->size_recv / st->ans_recv : 0);
+ printf("average Ethernet reply rate: %"PRIu64" bps (%.2f Mbps)\n",
+ ps(st->wire_recv * 8), ps((float)st->wire_recv * 8 / (1000 * 1000)));
+
+ for (int i = 0; i < RCODE_MAX; i++) {
+ if (st->rcodes_recv[i] > 0) {
+ const knot_lookup_t *rcode = knot_lookup_by_id(knot_rcode_names, i);
+ const char *rcname = rcode == NULL ? "unknown" : rcode->name;
+ int space = MAX(9 - strlen(rcname), 0);
+ printf("responded %s: %.*s%"PRIu64"\n",
+ rcname, space, " ", st->rcodes_recv[i]);
+ }
+ }
+ }
+ if (stt == STATS_SUM) {
+ printf("duration: %.4f s\n", duration / 1000000.0);
+ } else {
+ printf("since: %.4fs until: %.4fs\n", rel_start_us / 1000000, rel_end_us / 1000000);
+ }
+
+ pthread_mutex_unlock(&st->mutex);
+}
+
+/* see https://github.com/DNS-OARC/dns-metrics/blob/main/dns-metrics.schema.json
+ * and https://github.com/DNS-OARC/dns-metrics/issues/16#issuecomment-2139462920 */
+void json_stats(const xdp_gun_ctx_t *ctx, kxdpgun_stats_t *st, stats_type_t stt)
+{
+ assert(stt == STATS_PERIODIC || stt == STATS_SUM);
+
+ jsonw_t *w = ctx->jw;
+
+ pthread_mutex_lock(&st->mutex);
+
+ jsonw_object(w, NULL);
+ {
+ jsonw_ulong(w, "runid", ctx->runid);
+ jsonw_str(w, "type", (stt == STATS_PERIODIC) ? "stats_periodic" : "stats_sum");
+ jsonw_ulong(w, "since", st->since);
+ jsonw_ulong(w, "until", st->until);
+ jsonw_ulong(w, "queries", st->qry_sent);
+ jsonw_ulong(w, "responses", st->ans_recv);
+
+ jsonw_object(w, "response_rcodes");
+ {
+ for (size_t i = 0; i < RCODE_MAX; ++i) {
+ if (st->rcodes_recv[i] > 0) {
+ const knot_lookup_t *rc = knot_lookup_by_id(knot_rcode_names, i);
+ jsonw_ulong(w, (rc == NULL) ? "unknown" : rc->name, st->rcodes_recv[i]);
+ }
+ }
+ }
+ jsonw_end(w);
+
+ jsonw_object(w, "conn_info");
+ {
+ jsonw_str(w, "type", ctx->tcp ? "tcp" : (ctx->quic ? "quic_conn" : "udp"));
+
+ // TODO:
+ // packets_sent
+ // packets_recieved
+
+ jsonw_ulong(w, "socket_errors", st->errors);
+ if (ctx->tcp || ctx->quic) {
+ jsonw_ulong(w, "handshakes", st->synack_recv);
+ // TODO: handshakes_failed
+ if (ctx->quic) {
+ // TODO: conn_resumption
+ }
+ }
+ }
+ jsonw_end(w);
+ }
+ jsonw_end(w);
+
+ pthread_mutex_unlock(&st->mutex);
+}
diff --git a/src/utils/kxdpgun/stats.h b/src/utils/kxdpgun/stats.h
new file mode 100644
index 0000000..2c62ee3
--- /dev/null
+++ b/src/utils/kxdpgun/stats.h
@@ -0,0 +1,78 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <stddef.h>
+#include <inttypes.h>
+#include <pthread.h>
+#include <stdbool.h>
+
+#include "utils/kxdpgun/main.h"
+
+#define RCODE_MAX (0x0F + 1)
+
+#define STATS_SECTION_SEP "--------------------------------------------------------------"
+
+#define JSON_INDENT " "
+#define STATS_SCHEMA_VERSION 20240530
+
+#define DURATION_US(st) (((st).until - (st).since) / 1000)
+#define DURATION_NS(st) ((st).until - (st).since)
+
+#define JSON_MODE(ctx) ((ctx).jw != NULL)
+
+#define STATS_HDR(ctx) ((JSON_MODE(*(ctx)) ? json_stats_header : plain_stats_header)((ctx)))
+#define STATS_THRD(ctx, stats) \
+ ((JSON_MODE(*ctx) ? json_thrd_summary : plain_thrd_summary)((ctx), (stats)))
+#define STATS_FMT(ctx, stats, stats_type) \
+ ((JSON_MODE(*(ctx)) ? json_stats : plain_stats)((ctx), (stats), (stats_type)))
+
+typedef struct {
+ size_t collected;
+ uint64_t since, until; // nanosecs UNIX
+ uint64_t qry_sent;
+ uint64_t synack_recv;
+ uint64_t ans_recv;
+ uint64_t finack_recv;
+ uint64_t rst_recv;
+ uint64_t size_recv;
+ uint64_t wire_recv;
+ uint64_t errors;
+ uint64_t lost;
+ uint64_t rcodes_recv[RCODE_MAX];
+ pthread_mutex_t mutex;
+} kxdpgun_stats_t;
+
+typedef enum {
+ STATS_PERIODIC,
+ STATS_SUM,
+} stats_type_t;
+
+void clear_stats(kxdpgun_stats_t *st);
+size_t collect_stats(kxdpgun_stats_t *into, const kxdpgun_stats_t *what);
+void collect_periodic_stats(kxdpgun_stats_t *into, const kxdpgun_stats_t *what);
+
+void plain_stats_header(const xdp_gun_ctx_t *ctx);
+void json_stats_header(const xdp_gun_ctx_t *ctx);
+
+void plain_thrd_summary(const xdp_gun_ctx_t *ctx, const kxdpgun_stats_t *st);
+void json_thrd_summary(const xdp_gun_ctx_t *ctx, const kxdpgun_stats_t *st);
+
+void plain_stats(const xdp_gun_ctx_t *ctx, kxdpgun_stats_t *st, stats_type_t stt);
+void json_stats(const xdp_gun_ctx_t *ctx, kxdpgun_stats_t *st, stats_type_t stt);
+
+extern pthread_mutex_t stdout_mtx;
diff --git a/src/utils/kzonecheck/main.c b/src/utils/kzonecheck/main.c
index 5fb4c73..e8c5868 100644
--- a/src/utils/kzonecheck/main.c
+++ b/src/utils/kzonecheck/main.c
@@ -23,6 +23,7 @@
#include "libknot/libknot.h"
#include "knot/common/log.h"
#include "knot/zone/semantic-check.h"
+#include "knot/zone/zone-load.h"
#include "utils/common/msg.h"
#include "utils/common/params.h"
#include "utils/kzonecheck/zone_check.h"
@@ -80,7 +81,7 @@ int main(int argc, char *argv[])
{ "print", no_argument, NULL, 'p' },
{ "verbose", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
+ { "version", optional_argument, NULL, 'V' },
{ NULL }
};
@@ -89,7 +90,7 @@ int main(int argc, char *argv[])
/* Parse command line arguments */
int opt = 0;
- while ((opt = getopt_long(argc, argv, "o:t:d:zpvVh", opts, NULL)) != -1) {
+ while ((opt = getopt_long(argc, argv, "o:t:d:zpvV::h", opts, NULL)) != -1) {
switch (opt) {
case 'o':
origin = optarg;
@@ -104,7 +105,7 @@ int main(int argc, char *argv[])
print_help();
return EXIT_SUCCESS;
case 'V':
- print_version(PROGRAM_NAME);
+ print_version(PROGRAM_NAME, optarg != NULL);
return EXIT_SUCCESS;
case 'd':
optional = str2bool(optarg) ? SEMCHECK_DNSSEC_ON : SEMCHECK_DNSSEC_OFF;
@@ -169,7 +170,8 @@ int main(int argc, char *argv[])
log_levels_add(LOG_TARGET_STDOUT, LOG_SOURCE_ANY, LOG_UPTO(LOG_DEBUG));
}
- int ret = zone_check(filename, zone, zonemd, optional, (time_t)check_time, print);
+ int ret = zone_check(filename, zone, zonemd, DEFAULT_TTL, optional,
+ (time_t)check_time, print);
log_close();
if (ret == KNOT_EOK) {
if (verbose && !print) {
diff --git a/src/utils/kzonecheck/zone_check.c b/src/utils/kzonecheck/zone_check.c
index 2ea63b8..46c8a8e 100644
--- a/src/utils/kzonecheck/zone_check.c
+++ b/src/utils/kzonecheck/zone_check.c
@@ -64,14 +64,14 @@ static void print_statistics(err_handler_stats_t *stats)
}
int zone_check(const char *zone_file, const knot_dname_t *zone_name, bool zonemd,
- semcheck_optional_t optional, time_t time, bool print)
+ uint32_t dflt_ttl, semcheck_optional_t optional, time_t time, bool print)
{
err_handler_stats_t stats = {
.handler = { .cb = err_callback },
};
zloader_t zl;
- int ret = zonefile_open(&zl, zone_file, zone_name, optional, time);
+ int ret = zonefile_open(&zl, zone_file, zone_name, dflt_ttl, optional, time);
switch (ret) {
case KNOT_EOK:
break;
diff --git a/src/utils/kzonecheck/zone_check.h b/src/utils/kzonecheck/zone_check.h
index 206c27e..6a7afdf 100644
--- a/src/utils/kzonecheck/zone_check.h
+++ b/src/utils/kzonecheck/zone_check.h
@@ -20,4 +20,4 @@
#include "libknot/libknot.h"
int zone_check(const char *zone_file, const knot_dname_t *zone_name, bool zonemd,
- semcheck_optional_t optional, time_t time, bool print);
+ uint32_t dflt_ttl, semcheck_optional_t optional, time_t time, bool print);
diff --git a/src/utils/kzonesign/main.c b/src/utils/kzonesign/main.c
index e70abb6..641acfc 100644
--- a/src/utils/kzonesign/main.c
+++ b/src/utils/kzonesign/main.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -117,7 +117,7 @@ static int zonesign(sign_params_t *params)
goto fail;
}
- ret = knot_dnssec_validate_zone(&up, conf(), params->timestamp, false);
+ ret = knot_dnssec_validate_zone(&up, conf(), params->timestamp, false, false);
if (ret != KNOT_EOK) {
ERR2("DNSSEC validation failed (%s)", knot_strerror(ret));
char type_str[16];
@@ -204,7 +204,7 @@ int main(int argc, char *argv[])
{ "verify" , no_argument, NULL, 'v' },
{ "time", required_argument, NULL, 't' },
{ "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
+ { "version", optional_argument, NULL, 'V' },
{ NULL }
};
@@ -212,7 +212,7 @@ int main(int argc, char *argv[])
signal_init_std();
int opt = 0;
- while ((opt = getopt_long(argc, argv, "c:C:o:rvt:hV", opts, NULL)) != -1) {
+ while ((opt = getopt_long(argc, argv, "c:C:o:rvt:hV::", opts, NULL)) != -1) {
switch (opt) {
case 'c':
if (util_conf_init_file(optarg) != KNOT_EOK) {
@@ -245,7 +245,7 @@ int main(int argc, char *argv[])
print_help();
goto success;
case 'V':
- print_version(PROGRAM_NAME);
+ print_version(PROGRAM_NAME, optarg != NULL);
goto success;
default:
print_help();
diff --git a/tests-fuzz/Makefile.am b/tests-fuzz/Makefile.am
index dcf18a6..489153d 100644
--- a/tests-fuzz/Makefile.am
+++ b/tests-fuzz/Makefile.am
@@ -31,7 +31,8 @@ knotd_stdio_CPPFLAGS = \
$(libkqueue_CFLAGS) \
$(liburcu_CFLAGS) \
$(lmdb_CFLAGS) \
- $(systemd_CFLAGS)
+ $(systemd_CFLAGS) \
+ $(libdbus_CFLAGS)
knotd_stdio_LDADD = \
$(top_builddir)/src/libknotd.la \
@@ -43,7 +44,8 @@ knotd_stdio_LDADD = \
$(gnutls_LIBS) \
$(liburcu_LIBS) \
$(lmdb_LIBS) \
- $(systemd_LIBS)
+ $(systemd_LIBS) \
+ $(libdbus_LIBS)
BUILT_SOURCES = knotd_wrap/main.c
CLEANFILES = knotd_wrap/main.c
diff --git a/tests-fuzz/Makefile.in b/tests-fuzz/Makefile.in
index 7c94673..55650c4 100644
--- a/tests-fuzz/Makefile.in
+++ b/tests-fuzz/Makefile.in
@@ -205,7 +205,7 @@ knotd_stdio_OBJECTS = $(am_knotd_stdio_OBJECTS) \
@HAVE_DAEMON_TRUE@ $(top_builddir)/src/libzscanner.la \
@HAVE_DAEMON_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@HAVE_DAEMON_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-@HAVE_DAEMON_TRUE@ $(am__DEPENDENCIES_1)
+@HAVE_DAEMON_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@@ -623,6 +623,8 @@ infodir = @infodir@
install_sh = @install_sh@
libbpf_CFLAGS = @libbpf_CFLAGS@
libbpf_LIBS = @libbpf_LIBS@
+libdbus_CFLAGS = @libdbus_CFLAGS@
+libdbus_LIBS = @libdbus_LIBS@
libdir = @libdir@
libdnssec_SONAME = @libdnssec_SONAME@
libdnssec_SOVERSION = @libdnssec_SOVERSION@
@@ -634,8 +636,6 @@ libfstrm_CFLAGS = @libfstrm_CFLAGS@
libfstrm_LIBS = @libfstrm_LIBS@
libidn2_CFLAGS = @libidn2_CFLAGS@
libidn2_LIBS = @libidn2_LIBS@
-libidn_CFLAGS = @libidn_CFLAGS@
-libidn_LIBS = @libidn_LIBS@
libknot_SONAME = @libknot_SONAME@
libknot_SOVERSION = @libknot_SOVERSION@
libknot_VERSION_INFO = @libknot_VERSION_INFO@
@@ -653,7 +653,6 @@ libprotobuf_c_CFLAGS = @libprotobuf_c_CFLAGS@
libprotobuf_c_LIBS = @libprotobuf_c_LIBS@
liburcu_CFLAGS = @liburcu_CFLAGS@
liburcu_LIBS = @liburcu_LIBS@
-liburcu_PKGCONFIG = @liburcu_PKGCONFIG@
libxdp_CFLAGS = @libxdp_CFLAGS@
libxdp_LIBS = @libxdp_LIBS@
libzscanner_SONAME = @libzscanner_SONAME@
@@ -715,7 +714,8 @@ FUZZERS = \
@HAVE_DAEMON_TRUE@ $(libkqueue_CFLAGS) \
@HAVE_DAEMON_TRUE@ $(liburcu_CFLAGS) \
@HAVE_DAEMON_TRUE@ $(lmdb_CFLAGS) \
-@HAVE_DAEMON_TRUE@ $(systemd_CFLAGS)
+@HAVE_DAEMON_TRUE@ $(systemd_CFLAGS) \
+@HAVE_DAEMON_TRUE@ $(libdbus_CFLAGS)
@HAVE_DAEMON_TRUE@knotd_stdio_LDADD = \
@HAVE_DAEMON_TRUE@ $(top_builddir)/src/libknotd.la \
@@ -727,7 +727,8 @@ FUZZERS = \
@HAVE_DAEMON_TRUE@ $(gnutls_LIBS) \
@HAVE_DAEMON_TRUE@ $(liburcu_LIBS) \
@HAVE_DAEMON_TRUE@ $(lmdb_LIBS) \
-@HAVE_DAEMON_TRUE@ $(systemd_LIBS)
+@HAVE_DAEMON_TRUE@ $(systemd_LIBS) \
+@HAVE_DAEMON_TRUE@ $(libdbus_LIBS)
@HAVE_DAEMON_TRUE@BUILT_SOURCES = knotd_wrap/main.c
@HAVE_DAEMON_TRUE@CLEANFILES = knotd_wrap/main.c
diff --git a/tests/Makefile.am b/tests/Makefile.am
index eb6f1aa..bbcf8b8 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -14,7 +14,8 @@ if HAVE_DAEMON
LDADD += \
$(top_builddir)/src/libknotd.la \
$(liburcu_LIBS) \
- $(systemd_LIBS)
+ $(systemd_LIBS) \
+ $(libdbus_LIBS)
endif HAVE_DAEMON
LDADD += \
@@ -27,7 +28,6 @@ LDADD += \
EXTRA_DIST = \
tap/libtap.sh \
- libdnssec/sample_keys.h \
knot/semantic_check_data \
knot/test_semantic_check.in \
libzscanner/data \
@@ -48,6 +48,7 @@ libtap_la_SOURCES = \
EXTRA_PROGRAMS = tap/runtests
check_PROGRAMS = \
+ contrib/test_atomic \
contrib/test_base32hex \
contrib/test_base64 \
contrib/test_base64url \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index b02c209..b0c576a 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -90,14 +90,16 @@ host_triplet = @host@
@HAVE_DAEMON_TRUE@am__append_1 = \
@HAVE_DAEMON_TRUE@ $(top_builddir)/src/libknotd.la \
@HAVE_DAEMON_TRUE@ $(liburcu_LIBS) \
-@HAVE_DAEMON_TRUE@ $(systemd_LIBS)
+@HAVE_DAEMON_TRUE@ $(systemd_LIBS) \
+@HAVE_DAEMON_TRUE@ $(libdbus_LIBS)
EXTRA_PROGRAMS = tap/runtests$(EXEEXT) \
libzscanner/zscanner-tool$(EXEEXT)
-check_PROGRAMS = contrib/test_base32hex$(EXEEXT) \
- contrib/test_base64$(EXEEXT) contrib/test_base64url$(EXEEXT) \
- contrib/test_heap$(EXEEXT) contrib/test_inet_ntop$(EXEEXT) \
- contrib/test_net$(EXEEXT) contrib/test_net_shortwrite$(EXEEXT) \
+check_PROGRAMS = contrib/test_atomic$(EXEEXT) \
+ contrib/test_base32hex$(EXEEXT) contrib/test_base64$(EXEEXT) \
+ contrib/test_base64url$(EXEEXT) contrib/test_heap$(EXEEXT) \
+ contrib/test_inet_ntop$(EXEEXT) contrib/test_net$(EXEEXT) \
+ contrib/test_net_shortwrite$(EXEEXT) \
contrib/test_qp-trie$(EXEEXT) contrib/test_qp-cow$(EXEEXT) \
contrib/test_siphash$(EXEEXT) contrib/test_sockaddr$(EXEEXT) \
contrib/test_spinlock$(EXEEXT) contrib/test_string$(EXEEXT) \
@@ -236,13 +238,23 @@ AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
-contrib_test_base32hex_SOURCES = contrib/test_base32hex.c
-contrib_test_base32hex_OBJECTS = contrib/test_base32hex.$(OBJEXT)
-contrib_test_base32hex_LDADD = $(LDADD)
+contrib_test_atomic_SOURCES = contrib/test_atomic.c
+contrib_test_atomic_OBJECTS = contrib/test_atomic.$(OBJEXT)
+contrib_test_atomic_LDADD = $(LDADD)
am__DEPENDENCIES_1 =
@HAVE_DAEMON_TRUE@am__DEPENDENCIES_2 = \
@HAVE_DAEMON_TRUE@ $(top_builddir)/src/libknotd.la \
-@HAVE_DAEMON_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+@HAVE_DAEMON_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+@HAVE_DAEMON_TRUE@ $(am__DEPENDENCIES_1)
+contrib_test_atomic_DEPENDENCIES = libtap.la $(am__DEPENDENCIES_2) \
+ $(top_builddir)/src/libknot.la \
+ $(top_builddir)/src/libdnssec.la \
+ $(top_builddir)/src/libcontrib.la \
+ $(top_builddir)/src/libzscanner.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+contrib_test_base32hex_SOURCES = contrib/test_base32hex.c
+contrib_test_base32hex_OBJECTS = contrib/test_base32hex.$(OBJEXT)
+contrib_test_base32hex_LDADD = $(LDADD)
contrib_test_base32hex_DEPENDENCIES = libtap.la $(am__DEPENDENCIES_2) \
$(top_builddir)/src/libknot.la \
$(top_builddir)/src/libdnssec.la \
@@ -1058,7 +1070,8 @@ am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = contrib/$(DEPDIR)/test_base32hex.Po \
+am__depfiles_remade = contrib/$(DEPDIR)/test_atomic.Po \
+ contrib/$(DEPDIR)/test_base32hex.Po \
contrib/$(DEPDIR)/test_base64.Po \
contrib/$(DEPDIR)/test_base64url.Po \
contrib/$(DEPDIR)/test_heap.Po \
@@ -1155,20 +1168,21 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
-SOURCES = $(libtap_la_SOURCES) contrib/test_base32hex.c \
- contrib/test_base64.c contrib/test_base64url.c \
- contrib/test_heap.c contrib/test_inet_ntop.c \
- contrib/test_net.c contrib/test_net_shortwrite.c \
- contrib/test_qp-cow.c contrib/test_qp-trie.c \
- contrib/test_siphash.c contrib/test_sockaddr.c \
- contrib/test_spinlock.c contrib/test_string.c \
- contrib/test_strtonum.c contrib/test_time.c \
- contrib/test_toeplitz.c contrib/test_wire_ctx.c \
- $(knot_test_acl_SOURCES) knot/test_changeset.c \
- $(knot_test_conf_SOURCES) knot/test_conf_tools.c \
- $(knot_test_confdb_SOURCES) $(knot_test_confio_SOURCES) \
- knot/test_digest.c knot/test_dthreads.c knot/test_fdset.c \
- knot/test_journal.c knot/test_kasp_db.c knot/test_node.c \
+SOURCES = $(libtap_la_SOURCES) contrib/test_atomic.c \
+ contrib/test_base32hex.c contrib/test_base64.c \
+ contrib/test_base64url.c contrib/test_heap.c \
+ contrib/test_inet_ntop.c contrib/test_net.c \
+ contrib/test_net_shortwrite.c contrib/test_qp-cow.c \
+ contrib/test_qp-trie.c contrib/test_siphash.c \
+ contrib/test_sockaddr.c contrib/test_spinlock.c \
+ contrib/test_string.c contrib/test_strtonum.c \
+ contrib/test_time.c contrib/test_toeplitz.c \
+ contrib/test_wire_ctx.c $(knot_test_acl_SOURCES) \
+ knot/test_changeset.c $(knot_test_conf_SOURCES) \
+ knot/test_conf_tools.c $(knot_test_confdb_SOURCES) \
+ $(knot_test_confio_SOURCES) knot/test_digest.c \
+ knot/test_dthreads.c knot/test_fdset.c knot/test_journal.c \
+ knot/test_kasp_db.c knot/test_node.c \
$(knot_test_process_query_SOURCES) knot/test_query_module.c \
knot/test_requestor.c knot/test_server.c \
knot/test_unreachable.c knot/test_worker_pool.c \
@@ -1197,18 +1211,18 @@ SOURCES = $(libtap_la_SOURCES) contrib/test_base32hex.c \
libknot/test_yptrafo.c $(libzscanner_zscanner_tool_SOURCES) \
modules/test_onlinesign.c modules/test_rrl.c tap/runtests.c \
utils/test_lookup.c
-DIST_SOURCES = $(libtap_la_SOURCES) contrib/test_base32hex.c \
- contrib/test_base64.c contrib/test_base64url.c \
- contrib/test_heap.c contrib/test_inet_ntop.c \
- contrib/test_net.c contrib/test_net_shortwrite.c \
- contrib/test_qp-cow.c contrib/test_qp-trie.c \
- contrib/test_siphash.c contrib/test_sockaddr.c \
- contrib/test_spinlock.c contrib/test_string.c \
- contrib/test_strtonum.c contrib/test_time.c \
- contrib/test_toeplitz.c contrib/test_wire_ctx.c \
- $(am__knot_test_acl_SOURCES_DIST) knot/test_changeset.c \
- $(am__knot_test_conf_SOURCES_DIST) knot/test_conf_tools.c \
- $(am__knot_test_confdb_SOURCES_DIST) \
+DIST_SOURCES = $(libtap_la_SOURCES) contrib/test_atomic.c \
+ contrib/test_base32hex.c contrib/test_base64.c \
+ contrib/test_base64url.c contrib/test_heap.c \
+ contrib/test_inet_ntop.c contrib/test_net.c \
+ contrib/test_net_shortwrite.c contrib/test_qp-cow.c \
+ contrib/test_qp-trie.c contrib/test_siphash.c \
+ contrib/test_sockaddr.c contrib/test_spinlock.c \
+ contrib/test_string.c contrib/test_strtonum.c \
+ contrib/test_time.c contrib/test_toeplitz.c \
+ contrib/test_wire_ctx.c $(am__knot_test_acl_SOURCES_DIST) \
+ knot/test_changeset.c $(am__knot_test_conf_SOURCES_DIST) \
+ knot/test_conf_tools.c $(am__knot_test_confdb_SOURCES_DIST) \
$(am__knot_test_confio_SOURCES_DIST) knot/test_digest.c \
knot/test_dthreads.c knot/test_fdset.c knot/test_journal.c \
knot/test_kasp_db.c knot/test_node.c \
@@ -1397,6 +1411,8 @@ infodir = @infodir@
install_sh = @install_sh@
libbpf_CFLAGS = @libbpf_CFLAGS@
libbpf_LIBS = @libbpf_LIBS@
+libdbus_CFLAGS = @libdbus_CFLAGS@
+libdbus_LIBS = @libdbus_LIBS@
libdir = @libdir@
libdnssec_SONAME = @libdnssec_SONAME@
libdnssec_SOVERSION = @libdnssec_SOVERSION@
@@ -1408,8 +1424,6 @@ libfstrm_CFLAGS = @libfstrm_CFLAGS@
libfstrm_LIBS = @libfstrm_LIBS@
libidn2_CFLAGS = @libidn2_CFLAGS@
libidn2_LIBS = @libidn2_LIBS@
-libidn_CFLAGS = @libidn_CFLAGS@
-libidn_LIBS = @libidn_LIBS@
libknot_SONAME = @libknot_SONAME@
libknot_SOVERSION = @libknot_SOVERSION@
libknot_VERSION_INFO = @libknot_VERSION_INFO@
@@ -1427,7 +1441,6 @@ libprotobuf_c_CFLAGS = @libprotobuf_c_CFLAGS@
libprotobuf_c_LIBS = @libprotobuf_c_LIBS@
liburcu_CFLAGS = @liburcu_CFLAGS@
liburcu_LIBS = @liburcu_LIBS@
-liburcu_PKGCONFIG = @liburcu_PKGCONFIG@
libxdp_CFLAGS = @libxdp_CFLAGS@
libxdp_LIBS = @libxdp_LIBS@
libzscanner_SONAME = @libzscanner_SONAME@
@@ -1473,7 +1486,6 @@ LDADD = libtap.la $(am__append_1) $(top_builddir)/src/libknot.la \
$(top_builddir)/src/libzscanner.la $(gnutls_LIBS) $(lmdb_LIBS)
EXTRA_DIST = \
tap/libtap.sh \
- libdnssec/sample_keys.h \
knot/semantic_check_data \
knot/test_semantic_check.in \
libzscanner/data \
@@ -1610,6 +1622,12 @@ contrib/$(am__dirstamp):
contrib/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) contrib/$(DEPDIR)
@: > contrib/$(DEPDIR)/$(am__dirstamp)
+contrib/test_atomic.$(OBJEXT): contrib/$(am__dirstamp) \
+ contrib/$(DEPDIR)/$(am__dirstamp)
+
+contrib/test_atomic$(EXEEXT): $(contrib_test_atomic_OBJECTS) $(contrib_test_atomic_DEPENDENCIES) $(EXTRA_contrib_test_atomic_DEPENDENCIES) contrib/$(am__dirstamp)
+ @rm -f contrib/test_atomic$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(contrib_test_atomic_OBJECTS) $(contrib_test_atomic_LDADD) $(LIBS)
contrib/test_base32hex.$(OBJEXT): contrib/$(am__dirstamp) \
contrib/$(DEPDIR)/$(am__dirstamp)
@@ -2180,6 +2198,7 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@contrib/$(DEPDIR)/test_atomic.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@contrib/$(DEPDIR)/test_base32hex.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@contrib/$(DEPDIR)/test_base64.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@contrib/$(DEPDIR)/test_base64url.Po@am__quote@ # am--include-marker
@@ -2487,7 +2506,8 @@ clean-am: clean-checkLTLIBRARIES clean-checkPROGRAMS clean-generic \
clean-libtool mostlyclean-am
distclean: distclean-am
- -rm -f contrib/$(DEPDIR)/test_base32hex.Po
+ -rm -f contrib/$(DEPDIR)/test_atomic.Po
+ -rm -f contrib/$(DEPDIR)/test_base32hex.Po
-rm -f contrib/$(DEPDIR)/test_base64.Po
-rm -f contrib/$(DEPDIR)/test_base64url.Po
-rm -f contrib/$(DEPDIR)/test_heap.Po
@@ -2622,7 +2642,8 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -f contrib/$(DEPDIR)/test_base32hex.Po
+ -rm -f contrib/$(DEPDIR)/test_atomic.Po
+ -rm -f contrib/$(DEPDIR)/test_base32hex.Po
-rm -f contrib/$(DEPDIR)/test_base64.Po
-rm -f contrib/$(DEPDIR)/test_base64url.Po
-rm -f contrib/$(DEPDIR)/test_heap.Po
diff --git a/tests/contrib/test_atomic.c b/tests/contrib/test_atomic.c
new file mode 100644
index 0000000..88cae40
--- /dev/null
+++ b/tests/contrib/test_atomic.c
@@ -0,0 +1,165 @@
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#include <pthread.h>
+#include <signal.h>
+#include <tap/basic.h>
+
+#include "contrib/atomic.h"
+#include "knot/server/dthreads.h"
+
+#define THREADS 16
+#define CYCLES1 100000
+#define CYCLES2 2000000
+#define CYCLES3 100000
+#define UPPER 0xffffffff00000000
+#define LOWER 0x00000000ffffffff
+#define UPPER_PTR ((void *) UPPER)
+#define LOWER_PTR ((void *) LOWER)
+
+static volatile knot_atomic_uint64_t counter_add = 0;
+static volatile knot_atomic_uint64_t counter_sub = 0;
+static volatile knot_atomic_uint64_t atomic_var;
+static volatile knot_atomic_ptr_t atomic_var2;
+static int errors = 0;
+static int uppers;
+static int lowers;
+static int uppers_count = 0;
+static int lowers_count = 0;
+static pthread_mutex_t mx;
+
+static int thread_add(struct dthread *thread)
+{
+ for (int i = 0; i < CYCLES1; i++) {
+ ATOMIC_ADD(counter_add, 7);
+ ATOMIC_SUB(counter_sub, 7);
+ }
+
+ return 0;
+}
+
+static int thread_set(struct dthread *thread)
+{
+ u_int64_t val = (dt_get_id(thread) % 2) ? UPPER : LOWER;
+
+ for (int i = 0; i < CYCLES2; i++) {
+ ATOMIC_SET(atomic_var, val);
+ volatile u_int64_t read = ATOMIC_GET(atomic_var);
+ if (read != UPPER && read != LOWER) {
+ // Non-atomic counter, won't be accurate!
+ // However, it's sufficient for fault detection.
+ errors++;
+ }
+ }
+
+ return 0;
+}
+
+static int thread_xchg(struct dthread *thread)
+{
+ void *val = (dt_get_id(thread) % 2) ? UPPER_PTR : LOWER_PTR;
+
+ pthread_mutex_lock(&mx);
+ if (val == UPPER_PTR) {
+ uppers++;
+ } else {
+ lowers++;
+ };
+ pthread_mutex_unlock(&mx);
+
+ for (int i = 0; i < CYCLES3; i++) {
+ val = ATOMIC_XCHG(atomic_var2, val);
+ if (val != UPPER_PTR && val != LOWER_PTR) {
+ // Non-atomic counter, won't be accurate!
+ // However, it's sufficient for fault detection.
+ errors++;
+ return 0;
+ }
+ }
+
+ pthread_mutex_lock(&mx);
+ if (val == UPPER_PTR) {
+ uppers_count++;
+ } else if (val == LOWER_PTR) {
+ lowers_count++;
+ };
+ pthread_mutex_unlock(&mx);
+
+ return 0;
+}
+
+// Signal handler
+static void interrupt_handle(int s)
+{
+}
+
+int main(int argc, char *argv[])
+{
+ plan_lazy();
+
+ // Register service and signal handler
+ struct sigaction sa;
+ sa.sa_handler = interrupt_handle;
+ sigemptyset(&sa.sa_mask);
+ sa.sa_flags = 0;
+ sigaction(SIGALRM, &sa, NULL); // Interrupt
+
+ // Test for atomicity of ATOMIC_ADD and ATOMIC_SUB.
+ dt_unit_t *unit = dt_create(THREADS, thread_add, NULL, NULL);
+ dt_start(unit);
+ dt_join(unit);
+ dt_delete(&unit);
+
+ is_int(THREADS * CYCLES1 * 7, counter_add, "atomicity of ATOMIC_ADD");
+ is_int(THREADS * CYCLES1 * 7, -counter_sub, "atomicity of ATOMIC_SUB");
+
+ // Test for atomicity of ATOMIC_SET and ATOMIC_GET.
+ unit = dt_create(THREADS, thread_set, NULL, NULL);
+ dt_start(unit);
+ dt_join(unit);
+ dt_delete(&unit);
+
+ is_int(0, errors, "atomicity of ATOMIC_SET / ATOMIC_GET");
+
+ // Test for atomicity of ATOMIC_XCHG.
+ errors = 0;
+ uppers = 0; // Initialize in code so as to calm down Coverity.
+ lowers = 0; // Idem.
+
+ atomic_var2 = UPPER_PTR;
+ uppers++;
+
+ pthread_mutex_init(&mx, NULL);
+ unit = dt_create(THREADS, thread_xchg, NULL, NULL);
+ dt_start(unit);
+ dt_join(unit);
+ dt_delete(&unit);
+ pthread_mutex_destroy(&mx);
+
+ if (atomic_var2 == UPPER_PTR) {
+ uppers_count++;
+ } else if (atomic_var2 == LOWER_PTR) {
+ lowers_count++;
+ } else {
+ errors++;
+ }
+
+ is_int(0, errors, "set/get atomicity of ATOMIC_XCHG");
+ is_int(uppers, uppers_count, "atomicity of ATOMIC_XCHG");
+ is_int(lowers, lowers_count, "atomicity of ATOMIC_XCHG");
+
+ return 0;
+}
diff --git a/tests/knot/semantic_check_data/dnskey_keytags.more b/tests/knot/semantic_check_data/dnskey_keytags.more
index b6f5760..35e5b01 100644
--- a/tests/knot/semantic_check_data/dnskey_keytags.more
+++ b/tests/knot/semantic_check_data/dnskey_keytags.more
@@ -1,24 +1,19 @@
-;; Zone dump (Knot DNS 3.4.dev0+1709037013.b484eb414)
+;; Zone dump (Knot DNS 3.3.5+1717750418.dbce4141d)
example.com. 3600 SOA dns1.example.com. hostmaster.example.com. 2010111215 21600 3600 604800 86400
example.com. 3600 NS dns1.example.com.
-example.com. 3600 DNSKEY 256 3 13 Xw53weVKxFPqiBIzviMAZvRgdruTyHpHC3uYf9Twr9ug+cSyrYx4tteWUWPzsXgYnjATplJYY47KBMirTCR9BA==
-example.com. 3600 DNSKEY 256 3 13 qvLsJ9NpDpzxzHg91N7Fj++5SU6H5DdAAGmAaS/FGYu9H93V1hfZ5a7QPrN5E8ZKhWWGc9Li/OULloYer3btZg==
-example.com. 3600 DNSKEY 257 3 13 0qemQB7NsmO+Q3EnIdMPfrlTMAJxxOAjrZVHKbtfmXmd9HUsjBOg8hI6o0h9kfMb/qM/OWJYq25C5nzwl1eJGw==
-dns1.example.com. 3600 A 192.0.2.1
+example.com. 3600 DNSKEY 256 3 13 jKYlXyLOQri9XEqYigkpWkFb7zTx09qFtmU8CEp7LvX+7HnwdM7K/Vnm38tBb99WRWBuE4SsotBf5a8oMUy0Ag==
+example.com. 3600 DNSKEY 256 3 13 5E4GzQ+53lT6zR9mKCylMcxlLT1ArW63+2HP3WqmPAat3A8lGCEntNJKmQnQ74unWs8F23vG6KzR/8n9tGBoLg==
+example.com. 3600 DNSKEY 257 3 13 bLlJWYN15IWnOINWgTL/WIIMshaHRFBr1ZNlqisoBqSMem83ZdK+0VpAyRvcXAxNp0LUy9TH5Hx3NNykT+DWrA==
+dns1.example.com. 3600 A 127.0.0.1
;; DNSSEC signatures
-example.com. 3600 RRSIG NS 13 2 3600 20241223152039 20240227135039 50687 example.com. +0LC6BlnPpDJoBc1siE+XPmyv589lY79MH1h2YwMtY6iEd35h2CeP6tH1l9y8kLabRCREyw0/DJaRsHNet6olQ==
-example.com. 3600 RRSIG NS 13 2 3600 20440222113630 20240227100630 50687 example.com. Uc5BSG2ohqfkZaIfqa3JpsUBfv5av7j2xCd9AeGb0TyfdsTJeQPxbeSFtLCeeVt0YShGjxwUldnjxqOoZxKo9Q==
-example.com. 3600 RRSIG SOA 13 2 3600 20241223152039 20240227135039 50687 example.com. baS1G2mzsLinOPmg3lqhLR/9kxJFzZnw07H0PzBBIcYGEe1myGg55+ZIJ+QR5cR13jqvHltRojL9bHWbFBCL5A==
-example.com. 3600 RRSIG SOA 13 2 3600 20241223152039 20240227135039 50687 example.com. bfL8KJoz1sMRLx1MXATA5fLnNJDWtQkEugiHN1THyJUfm0oVQTfbVkrnFaUSwZHiovZ/s2rri1HNOdGnCm2wAA==
-example.com. 3600 RRSIG NSEC 13 2 3600 20241223152039 20240227135039 50687 example.com. 9e8McGcJuWOtJ6mYlMOcktb1yDeNFDElLhmE3ULKSeUu+Dyyaye/rlK33qPptzXDoODQKG/0CCXRyz/nRgZ70g==
-example.com. 3600 RRSIG NSEC 13 2 3600 20440222113630 20240227100630 50687 example.com. akUd7/c8/sJTqB04KO3kQZwwb0i/7l8mvg10e7Somtc5nP5/gKsBpFDPGpvchZpVrlXME+eq+oRNfp3fQfBmvA==
-example.com. 3600 RRSIG DNSKEY 13 2 3600 20241223152039 20240227135039 50687 example.com. W9K24FgSjnUjv2lVyrC/ddZJfBMwkiu/NQsC2BpG2Sg69RUkI5FEnwZT7g1AfJEO+QWAqjNdZ/5iep+Lhpi3ow==
-dns1.example.com. 3600 RRSIG A 13 3 3600 20241223152039 20240227135039 50687 example.com. JBBpxjsn+PETEDb//cbGfyaMuoOAuHcK6dX0MpJXTHl6WgNT05hFkfsW87BrG5VUv9Ffdg9wmECaiGQ1G4LXQA==
-dns1.example.com. 3600 RRSIG A 13 3 3600 20440222113630 20240227100630 50687 example.com. Y8vvqbd55jo7zKx0uDVwaWScpGqti8sPXodjItsrN8gjA3d3A+7TVW71L9FSwww/Usl8cyXIC4ZUR5c7JIFNHQ==
-dns1.example.com. 3600 RRSIG NSEC 13 3 3600 20241223152039 20240227135039 50687 example.com. Kn7GEREsUJqmgNyUKPhmlm1PRzIlhP2pORHCw+x699aDv/xtVprIT2d73SUWKW0PoCSU7SecsKiLPYx/t9ymIw==
-dns1.example.com. 3600 RRSIG NSEC 13 3 3600 20440222113630 20240227100630 50687 example.com. Opl4Clj6bRS/iTsJdEpJMX76XAGVt/OJQS3hRdpwDROdaskd69ENPPtdnOR0aNlG6NeMBXzH8HkMOIDv6k50kg==
+example.com. 3600 RRSIG NS 13 2 3600 20440814105153 20240819092153 8746 example.com. /ThrfNIP7sega/pbpnvkmmaRwzzVs+dxd34g0GMWtOXUXiSTBsDn2JLXogt9MZM98hyf9JWpjIhKtq8BJ2m8Ug==
+example.com. 3600 RRSIG SOA 13 2 3600 20440814105153 20240819092153 8746 example.com. 9u55SiuKcXCHv5qXdjS8SG3I/b7eyDvlKhxo9Vkjb0zqZ90MtjK4Egu+j6Q7uhbGFbYqhilFO36vfhnH7gjn5g==
+example.com. 3600 RRSIG NSEC 13 2 3600 20440814105153 20240819092153 8746 example.com. Oo4+DRECB5iwh0iHtgdsUKJqoVKibzDlwkoVzCBW6SiWNZG6u29lkIOn3NZrae9QHkDitBlLwB0+HkgV6US9ng==
+example.com. 3600 RRSIG DNSKEY 13 2 3600 20440814105153 20240819092153 8746 example.com. tyXZXQm725nL/jDvbtuDjD4wMzM3Dv98TQmVn0xFnbmW950Vn2CpTOv2ZVyvWtOOFZUx7oh1j0LoZiXm/J0uKg==
+dns1.example.com. 3600 RRSIG A 13 3 3600 20440814105153 20240819092153 8746 example.com. sfOJTECqDkVimZGLOAOT+TnuwF+ezLgA1sE/fPnrnV/0TZmYVojhTYFocvkhMlN1vTAC+U60X9WOw/IjjYh4Nw==
+dns1.example.com. 3600 RRSIG NSEC 13 3 3600 20440814105153 20240819092153 8746 example.com. nY3y3MDThe2htlGGXVItiP+GYr2FAe8uRkgZF/WoEeyANRwydP91hZI4Ms7EPEApnHqOZtZ5fuElOHhflRsUfA==
;; DNSSEC NSEC chain
example.com. 3600 NSEC dns1.example.com. NS SOA RRSIG NSEC DNSKEY
dns1.example.com. 3600 NSEC example.com. A RRSIG NSEC
-;; Written 19 records
-;; Time 2024-02-27 16:20:39 CET
+;; Written 14 records
+;; Time 2024-08-19 13:01:16 CEST
diff --git a/tests/knot/semantic_check_data/nsec_nonauth.invalid b/tests/knot/semantic_check_data/nsec_nonauth.invalid
new file mode 100644
index 0000000..ce5ee4d
--- /dev/null
+++ b/tests/knot/semantic_check_data/nsec_nonauth.invalid
@@ -0,0 +1,27 @@
+;; Zone dump (Knot DNS 3.4.dev0+1720175447.11b935381)
+example.com. 3600 SOA dns1.example.com. hostmaster.example.com. 2010111214 21600 3600 604800 86400
+example.com. 3600 NS dns1.example.com.
+example.com. 3600 DNSKEY 256 3 13 4t69Zp7W+FQCRVjSjaLlmYuzHp14ljBcUSEcpfSwtl3w6LVb+vzPdjhbdX2Mmzdg+MZBWwnRMDspGl16gmoXig==
+example.com. 3600 DNSKEY 257 3 13 kamWKsByy8ilBkCfW1fZ9hn+At61Zjf90Ou6lshQeXS3WkeJO/5vuRNZdjv9C5tyb5CBA2QOvSM1Eg/7Cx4ztA==
+example.com. 0 CDS 3310 13 2 E9C99BE505F97345832D2433034A79ED22EB062F99666A026818F7D35B710821
+example.com. 0 CDNSKEY 257 3 13 kamWKsByy8ilBkCfW1fZ9hn+At61Zjf90Ou6lshQeXS3WkeJO/5vuRNZdjv9C5tyb5CBA2QOvSM1Eg/7Cx4ztA==
+deleg.example.com. 3600 A 127.0.0.1
+deleg.example.com. 3600 NS deleg.example.com.
+dns1.example.com. 3600 A 192.0.2.1
+;; DNSSEC signatures
+example.com. 3600 RRSIG NS 13 2 3600 20240725130051 20240711113051 60718 example.com. 5KpS/T4LhDDAm/rtOUZ7R8ScH/mMZpWFcR+054OicV4t4JPGoqwgmogroFRd4k/WOF7cmQ31CEvN52Pga7kf9Q==
+example.com. 3600 RRSIG SOA 13 2 3600 20240725125558 20240711112558 60718 example.com. iLCQshkoeAPmc8ZP/0ynzw0zbIyZeTlomFunmsZuu//ZbGwYOC1gwRpHzfLpgeYx3jTD4qgUKoJuIzEnfrowrw==
+example.com. 3600 RRSIG NSEC 13 2 3600 20240725130247 20240711113247 60718 example.com. E+LTzopR5J1G+2RWDrUcGwOlzFtgUf4GwQltM1F4Z8AFSK3ZEk6xYbbhX2WlIQYyDodxcwgy08kuaeNHegv00w==
+example.com. 3600 RRSIG DNSKEY 13 2 3600 20240725125558 20240711112558 3310 example.com. dhFqMNl6AXJu/6uBWjNFjnf1JP8dbOu/VpRHAf4NwM3RlvUCSRZ6qZVQWA0/BvJ+E4iZyfsRYCDTaXEm7i8ZKA==
+example.com. 0 RRSIG CDS 13 2 0 20240725125558 20240711112558 3310 example.com. fWiN+LE02kX+kazNZbxBd6BJ88bq/IiwQ6+RsOEYsuC9yFxCa/9dcMF4Z9GN/qn5JFFfnJodQWR0O5iKFE+MBQ==
+example.com. 0 RRSIG CDNSKEY 13 2 0 20240725125558 20240711112558 3310 example.com. tsJ9oklWeJUWOnVW84GIKo/nVJNaqd/PWTVWaRBamSmJwiZusppsBxNTGqsQP+2W2cM1FtiuLiDsMm/zWfrppg==
+deleg.example.com. 3600 RRSIG NSEC 13 3 3600 20240725130247 20240711113247 60718 example.com. 5mvvVAdpVBKEtGxxFU3fKXl8pMGbyuqwMolOV2eRicPo851BZSeY3Cn1eCCHMn5E4GBglTW6Ugna5AnPoYKVRA==
+dns1.example.com. 3600 RRSIG A 13 3 3600 20240725125558 20240711112558 60718 example.com. O26Wir77dSZhE6vmuN2ktFvB+5DHxti3EeHUt56bByREQBHWVrZfLh6KJnmkzR9r7AnwQbIDrcP/9QYXK8Mjgw==
+dns1.example.com. 3600 RRSIG NSEC 13 3 3600 20240725130051 20240711113051 60718 example.com. wdfKi+OK0NDMUgrBZ6HBFNRGfXdFGh/OAaQJYbmkEuU/tPmp2Qhpb6EI0clFwALpa5H0MetTIRCKrpT2KlDLDQ==
+;; DNSSEC NSEC chain
+example.com. 3600 NSEC deleg.example.com. NS SOA RRSIG NSEC DNSKEY CDS CDNSKEY
+deleg.example.com. 3600 NSEC dns1.example.com. NS RRSIG NSEC
+dns1.example.com. 3600 NSEC example.com. A RRSIG NSEC
+
+;; NSEC for a node for which this zone is not authoritative
+nonauth.deleg.example.com. 3600 NSEC dns1.example.com. NS RRSIG NSEC
diff --git a/tests/knot/semantic_check_data/soa.duplicate b/tests/knot/semantic_check_data/soa.duplicate
new file mode 100644
index 0000000..8b84745
--- /dev/null
+++ b/tests/knot/semantic_check_data/soa.duplicate
@@ -0,0 +1,5 @@
+$ORIGIN example.com.
+
+@ SOA dns1 hostmaster 1 1000 360 10000 7200
+@ NS example.net.
+@ SOA dns1 hostmaster 1 1000 360 10000 7200
diff --git a/tests/knot/semantic_check_data/soa.missing b/tests/knot/semantic_check_data/soa.missing
new file mode 100644
index 0000000..cda9e84
--- /dev/null
+++ b/tests/knot/semantic_check_data/soa.missing
@@ -0,0 +1,3 @@
+$ORIGIN example.com.
+
+@ NS example.net.
diff --git a/tests/knot/semantic_check_data/soa.multiple b/tests/knot/semantic_check_data/soa.multiple
new file mode 100644
index 0000000..f41485c
--- /dev/null
+++ b/tests/knot/semantic_check_data/soa.multiple
@@ -0,0 +1,5 @@
+$ORIGIN example.com.
+
+@ SOA dns1 hostmaster 1 1000 360 10000 7200
+@ NS example.net.
+@ SOA dns1 hostmaster 2 1000 360 10000 7200
diff --git a/tests/knot/test_confdb.c b/tests/knot/test_confdb.c
index e149f8d..28e4e0e 100644
--- a/tests/knot/test_confdb.c
+++ b/tests/knot/test_confdb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -392,7 +392,7 @@ static void test_conf_db_unset(conf_t *conf, knot_db_txn_t *txn)
// Unset multivalued item with id - all data at one step (non-null data!).
check_unset(conf, txn, C_ZONE, C_MASTER, (uint8_t *)"id", 2, KNOT_EOK,
- NULL + 1, 0, NULL, 0);
+ (void *)8, 0, NULL, 0);
// Unset group id.
check_unset(conf, txn, C_ZONE, NULL, (uint8_t *)"id", 2, KNOT_EOK,
diff --git a/tests/knot/test_confio.c b/tests/knot/test_confio.c
index 44bc7c5..07bad05 100644
--- a/tests/knot/test_confio.c
+++ b/tests/knot/test_confio.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -999,7 +999,7 @@ static const yp_item_t desc_server[] = {
static const yp_item_t desc_xdp[] = {
{ C_UDP, YP_TBOOL, YP_VNONE },
{ C_TCP, YP_TBOOL, YP_VNONE },
- { C_QUIC, YP_TBOOL, YP_VNONE },
+ { C_QUIC, YP_TBOOL, YP_VNONE },
{ C_TCP_MAX_CLIENTS, YP_TINT, YP_VNONE },
{ C_TCP_INBUF_MAX_SIZE, YP_TINT, YP_VNONE },
{ C_TCP_OUTBUF_MAX_SIZE,YP_TINT, YP_VNONE },
@@ -1007,6 +1007,9 @@ static const yp_item_t desc_xdp[] = {
{ C_TCP_IDLE_RESET, YP_TINT, YP_VNONE },
{ C_TCP_RESEND, YP_TINT, YP_VNONE },
{ C_ROUTE_CHECK, YP_TBOOL, YP_VNONE },
+ { C_RING_SIZE, YP_TINT, YP_VNONE },
+ { C_BUSYPOLL_BUDGET, YP_TINT, YP_VNONE },
+ { C_BUSYPOLL_TIMEOUT, YP_TINT, YP_VNONE },
{ NULL }
};
diff --git a/tests/knot/test_journal.c b/tests/knot/test_journal.c
index 748ab02..750fad8 100644
--- a/tests/knot/test_journal.c
+++ b/tests/knot/test_journal.c
@@ -557,7 +557,7 @@ static knot_dname_t *tm_owner(const char *prefix, const knot_dname_t *apex)
static knot_dname_t *tm_owner_int(int x, const knot_dname_t *apex)
{
- char buf[12] = { 0 };
+ char buf[13] = { 0 };
(void)snprintf(buf, sizeof(buf), "i%d", x);
return tm_owner(buf, apex);
}
diff --git a/tests/knot/test_query_module.c b/tests/knot/test_query_module.c
index 4ab14d2..d31fa7c 100644
--- a/tests/knot/test_query_module.c
+++ b/tests/knot/test_query_module.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,11 +20,10 @@
#include "libknot/libknot.h"
#include "knot/nameserver/query_module.h"
-#include "libknot/packet/pkt.h"
/* Universal processing stage. */
-unsigned state_visit(unsigned state, knot_pkt_t *pkt, knotd_qdata_t *qdata,
- knotd_mod_t *mod)
+knotd_state_t state_visit(knotd_state_t state, knot_pkt_t *pkt, knotd_qdata_t *qdata,
+ knotd_mod_t *mod)
{
/* Visit current state */
bool *state_map = (bool *)mod;
@@ -49,8 +48,8 @@ int main(int argc, char *argv[])
/* Register all stage visits. */
int ret = KNOT_EOK;
- for (unsigned stage = KNOTD_STAGE_BEGIN; stage < KNOTD_STAGES; ++stage) {
- ret = query_plan_step(plan, stage, state_visit, state_map);
+ for (unsigned stage = KNOTD_STAGE_PROTO_BEGIN; stage < KNOTD_STAGES; ++stage) {
+ ret = query_plan_step(plan, stage, QUERY_HOOK_TYPE_GENERAL, state_visit, state_map);
if (ret != KNOT_EOK) {
break;
}
@@ -59,10 +58,10 @@ int main(int argc, char *argv[])
/* Execute the plan. */
int state = 0, next_state = 0;
- for (unsigned stage = KNOTD_STAGE_BEGIN; stage < KNOTD_STAGES; ++stage) {
+ for (unsigned stage = KNOTD_STAGE_PROTO_BEGIN; stage < KNOTD_STAGES; ++stage) {
struct query_step *step = NULL;
WALK_LIST(step, plan->stage[stage]) {
- next_state = step->process(state, NULL, NULL, step->ctx);
+ next_state = step->general_hook(state, NULL, NULL, step->ctx);
if (next_state != state + 1) {
break;
}
diff --git a/tests/knot/test_semantic_check.in b/tests/knot/test_semantic_check.in
index 7675896..e91e9dc 100644
--- a/tests/knot/test_semantic_check.in
+++ b/tests/knot/test_semantic_check.in
@@ -48,6 +48,8 @@ if [ ! -x $KZONECHECK ]; then
fi
# error messages exported from knot/src/zone/semantic-check.c
+SOA_NONE="missing SOA at the zone apex"
+SOA_MULTIPLE="multiple SOA records"
CDNSKEY_NONE="missing CDNSKEY"
CDNSKEY_NO_CDS="CDNSKEY without corresponding CDS"
CDNSKEY_DELETE="invalid CDNSKEY/CDS for DNSSEC delete algorithm"
@@ -66,6 +68,7 @@ NSEC3PARAM_FLAGS="invalid flags in NSEC3PARAM"
NSEC_NONE="missing NSEC\(3\) record"
NSEC_RDATA_BITMAP="wrong NSEC\(3\) bitmap"
NSEC_RDATA_CHAIN="inconsistent NSEC\(3\) chain"
+NSEC_EXTRA="superfluous NSEC\(3\)"
NSEC3_INSECURE_DELEGATION_OPT="wrong NSEC3 opt-out"
NS_APEX="missing NS at the zone apex"
NS_GLUE="missing glue record"
@@ -73,6 +76,8 @@ RRSIG_UNVERIFIABLE="no valid signature for a record"
plan_lazy
+expect_error "soa.missing" 1 1 "$SOA_MISSING"
+expect_error "soa.multiple" 1 1 "$SOA_MULTIPLE"
expect_error "cname_extra_01.zone" 1 1 "$CNAME_EXTRA_RECORDS"
expect_error "cname_extra_02.signed" 1 1 "$CNAME_EXTRA_RECORDS"
expect_error "cname_multiple.zone" 1 1 "$CNAME_MULTIPLE"
@@ -124,7 +129,9 @@ expect_error "cdnskey.orphan.cdnskey" 0 1 "$CDNSKEY_NO_CDS"
expect_error "cdnskey.delete.invalid.cds" 0 1 "$CDNSKEY_DELETE"
expect_error "cdnskey.delete.invalid.cdnskey" 0 1 "$CDNSKEY_DELETE"
expect_error "delegation.signed" 0 1 "$NSEC_RDATA_BITMAP"
+expect_error "nsec_nonauth.invalid" 0 1 "$NSEC_EXTRA"
+test_correct "soa.duplicate"
test_correct "rrsig_ttl.signed"
test_correct "no_error_delegation_bitmap.signed"
test_correct "no_error_nsec3_optout.signed"
diff --git a/tests/libdnssec/test_key.c b/tests/libdnssec/test_key.c
index c3643f0..effbe1a 100644
--- a/tests/libdnssec/test_key.c
+++ b/tests/libdnssec/test_key.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
#include "error.h"
#include "key.h"
-#include "sample_keys.h"
+#include "libdnssec/sample_keys.h"
#define check_attr_scalar(key, type, name, def_val, set_val) { \
type value = dnssec_key_get_##name(key); \
@@ -192,9 +192,7 @@ int main(void)
static const keyinfo_t keys[] = {
{ "RSA", &SAMPLE_RSA_KEY },
{ "ECDSA", &SAMPLE_ECDSA_KEY },
-#ifdef HAVE_ED25519
{ "ED25519", &SAMPLE_ED25519_KEY },
-#endif
#ifdef HAVE_ED448
{ "ED448", &SAMPLE_ED448_KEY },
#endif
diff --git a/tests/libdnssec/test_key_algorithm.c b/tests/libdnssec/test_key_algorithm.c
index 6c62106..75eace7 100644
--- a/tests/libdnssec/test_key_algorithm.c
+++ b/tests/libdnssec/test_key_algorithm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -59,9 +59,7 @@ static void check_defaults(void)
{
is_int(2048, dnssec_algorithm_key_size_default(DNSSEC_KEY_ALGORITHM_RSA_SHA1_NSEC3), "rsa default");
is_int(256, dnssec_algorithm_key_size_default(DNSSEC_KEY_ALGORITHM_ECDSA_P256_SHA256), "ecc default");
-#ifdef HAVE_ED25519
is_int(256, dnssec_algorithm_key_size_default(DNSSEC_KEY_ALGORITHM_ED25519), "ed25519 default");
-#endif
#ifdef HAVE_ED448
is_int(456, dnssec_algorithm_key_size_default(DNSSEC_KEY_ALGORITHM_ED448), "ed448 default");
#endif
@@ -74,9 +72,7 @@ int main(void)
// ranges
ok_range(DNSSEC_KEY_ALGORITHM_RSA_SHA512, 1024, 4096, "RSA/SHA256");
ok_range(DNSSEC_KEY_ALGORITHM_ECDSA_P384_SHA384, 384, 384, "ECDSA/SHA384");
-#ifdef HAVE_ED25519
ok_range(DNSSEC_KEY_ALGORITHM_ED25519, 256, 256, "ED25519");
-#endif
#ifdef HAVE_ED448
ok_range(DNSSEC_KEY_ALGORITHM_ED448, 456, 456, "ED448");
#endif
diff --git a/tests/libdnssec/test_key_ds.c b/tests/libdnssec/test_key_ds.c
index fbc6327..e076243 100644
--- a/tests/libdnssec/test_key_ds.c
+++ b/tests/libdnssec/test_key_ds.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
#include "libdnssec/crypto.h"
#include "libdnssec/error.h"
#include "libdnssec/key.h"
-#include "sample_keys.h"
+#include "libdnssec/sample_keys.h"
static void test_key(const char *name, const struct key_parameters *params)
{
@@ -101,17 +101,13 @@ int main(int argc, char *argv[])
test_key("RSA", &SAMPLE_RSA_KEY);
test_key("ECDSA", &SAMPLE_ECDSA_KEY);
-#ifdef HAVE_ED25519
test_key("ED25519", &SAMPLE_ED25519_KEY);
-#endif
#ifdef HAVE_ED448
test_key("ED448", &SAMPLE_ED448_KEY);
#endif
test_errors(&SAMPLE_ECDSA_KEY);
-#ifdef HAVE_ED25519
test_errors(&SAMPLE_ED25519_KEY);
-#endif
#ifdef HAVE_ED448
test_errors(&SAMPLE_ED448_KEY);
#endif
diff --git a/tests/libdnssec/test_keystore_pkcs11.c b/tests/libdnssec/test_keystore_pkcs11.c
index 9828fce..5227d55 100644
--- a/tests/libdnssec/test_keystore_pkcs11.c
+++ b/tests/libdnssec/test_keystore_pkcs11.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -28,10 +28,9 @@
#include "libdnssec/crypto.h"
#include "libdnssec/error.h"
#include "libdnssec/keystore.h"
+#include "libdnssec/sample_keys.h"
#include "libdnssec/sign.h"
-#include "sample_keys.h"
-
#define ENV_SOFTHSM_DSO "KNOT_SOFTHSM2_DSO"
#define ENV_SOFTHSM_UTIL "KNOT_SOFTHSM2_UTIL"
diff --git a/tests/libdnssec/test_sign.c b/tests/libdnssec/test_sign.c
index 8f57a41..933206f 100644
--- a/tests/libdnssec/test_sign.c
+++ b/tests/libdnssec/test_sign.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,14 +17,14 @@
#include <string.h>
#include <tap/basic.h>
-#include "sample_keys.h"
-
#include "binary.h"
#include "crypto.h"
#include "error.h"
#include "key.h"
#include "sign.h"
+#include "libdnssec/sample_keys.h"
+
static const dnssec_binary_t input_data = {
.size = 25,
.data = (uint8_t *)"Very good, young padawan."
@@ -57,7 +57,6 @@ static const dnssec_binary_t signed_ecdsa = { .size = 64, .data = (uint8_t []) {
0xad, 0x2f,
}};
-#ifdef HAVE_ED25519
static const dnssec_binary_t signed_ed25519 = { .size = 64, .data = (uint8_t []) {
0x0a, 0x9e, 0x51, 0x5f, 0x16, 0x89, 0x49, 0x27,
0x0e, 0x98, 0x34, 0xd3, 0x48, 0xef, 0x5a, 0x6e,
@@ -67,8 +66,7 @@ static const dnssec_binary_t signed_ed25519 = { .size = 64, .data = (uint8_t [])
0x1d, 0x08, 0x10, 0x20, 0x1c, 0x01, 0x77, 0x1b,
0x5a, 0x48, 0xd6, 0xe5, 0x1c, 0xf9, 0xe3, 0xe0,
0x70, 0x34, 0x5e, 0x02, 0x49, 0xfb, 0x9e, 0x05,
- }};
-#endif
+}};
#ifdef HAVE_ED448
static const dnssec_binary_t signed_ed448 = { .size = 114, .data = (uint8_t []) {
@@ -82,7 +80,7 @@ static const dnssec_binary_t signed_ed448 = { .size = 114, .data = (uint8_t [])
0xe9, 0xb9, 0x76, 0xb8, 0xa6, 0xa9, 0x0a, 0x4f, 0x18, 0xe1, 0x62, 0x27,
0x74, 0x99, 0x01, 0x98, 0x5f, 0xdb, 0xea, 0xdf, 0xab, 0x59, 0x6c, 0x79,
0xe2, 0xc2, 0x2a, 0x91, 0x29, 0x00
- }};
+}};
#endif
static dnssec_binary_t binary_set_string(char *str)
@@ -188,10 +186,8 @@ int main(void)
check_key(&SAMPLE_RSA_KEY, &input_data, &signed_rsa, true);
diag("ECDSA signing");
check_key(&SAMPLE_ECDSA_KEY, &input_data, &signed_ecdsa, false);
-#ifdef HAVE_ED25519
diag("ED25519 signing");
check_key(&SAMPLE_ED25519_KEY, &input_data, &signed_ed25519, true);
-#endif
#ifdef HAVE_ED448
diag("ED448 signing");
check_key(&SAMPLE_ED448_KEY, &input_data, &signed_ed448, true);
diff --git a/tests/libknot/test_control.c b/tests/libknot/test_control.c
index 3846f31..3467be4 100644
--- a/tests/libknot/test_control.c
+++ b/tests/libknot/test_control.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -109,7 +109,7 @@ static void ctl_server(const char *socket, size_t argc, knot_ctl_data_t *argv)
knot_ctl_t *ctl = knot_ctl_alloc();
ok(ctl != NULL, "Allocate control");
- int ret = knot_ctl_bind(ctl, socket);
+ int ret = knot_ctl_bind(ctl, socket, 5);
is_int(KNOT_EOK, ret, "Bind control socket");
ret = knot_ctl_accept(ctl);
diff --git a/tests/libknot/test_xdp_tcp.c b/tests/libknot/test_xdp_tcp.c
index f6b11b0..4e02f57 100644
--- a/tests/libknot/test_xdp_tcp.c
+++ b/tests/libknot/test_xdp_tcp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -213,7 +213,7 @@ void test_syn(void)
knot_xdp_msg_t msg;
knot_tcp_relay_t rl = { 0 };
prepare_msg(&msg, KNOT_XDP_MSG_SYN, 1, 2);
- int ret = knot_tcp_recv(&rl, &msg, 1, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ int ret = knot_tcp_recv(&rl, &msg, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
is_int(KNOT_EOK, ret, "SYN: relay OK");
ret = knot_tcp_send(test_sock, &rl, 1, 1);
is_int(KNOT_EOK, ret, "SYN: send OK");
@@ -236,13 +236,27 @@ void test_syn(void)
test_conn = conn;
}
+void test_syn_ack_no(void)
+{
+ knot_xdp_msg_t msg;
+ knot_tcp_relay_t rl = { 0 };
+ prepare_msg(&msg, KNOT_XDP_MSG_SYN | KNOT_XDP_MSG_ACK, 1, 2);
+ int ret = knot_tcp_recv(&rl, &msg, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ is_int(KNOT_EOK, ret, "SYN+ACK deny: relay OK");
+ is_int(XDP_TCP_NOOP, rl.auto_answer, "SYN+ACK deny: no auto answer");
+ is_int(XDP_TCP_NOOP, rl.answer, "SYN+ACK deny: no answer");
+ is_int(0, test_table->usage, "SYN+ACK deny: no connection in normal table");
+ is_int(1, test_syn_table->usage, "SYN+ACK deny: one connection in SYN table");
+ knot_tcp_cleanup(test_syn_table, &rl, 1);
+}
+
void test_establish(void)
{
knot_xdp_msg_t msg;
knot_tcp_relay_t rl = { 0 };
prepare_msg(&msg, KNOT_XDP_MSG_ACK, 1, 2);
prepare_seqack(&msg, 0, 1);
- int ret = knot_tcp_recv(&rl, &msg, 1, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ int ret = knot_tcp_recv(&rl, &msg, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
is_int(KNOT_EOK, ret, "establish: relay OK");
is_int(0, test_syn_table->usage, "SYN: no connection in SYN table");
is_int(1, test_table->usage, "SYN: one connection in normal table");
@@ -260,7 +274,7 @@ void test_syn_ack(void)
knot_xdp_msg_t msg;
knot_tcp_relay_t rl = { 0 };
prepare_msg(&msg, KNOT_XDP_MSG_SYN | KNOT_XDP_MSG_ACK, 1000, 2000);
- int ret = knot_tcp_recv(&rl, &msg, 1, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ int ret = knot_tcp_recv(&rl, &msg, test_table, NULL, XDP_TCP_IGNORE_NONE);
is_int(KNOT_EOK, ret, "SYN+ACK: relay OK");
ret = knot_tcp_send(test_sock, &rl, 1, 1);
is_int(KNOT_EOK, ret, "SYN+ACK: send OK");
@@ -301,7 +315,10 @@ void test_data_fragments(void)
prepare_data(&msgs[3], "\x02""AB""\xff\xff""abcdefghijklmnopqrstuvwxyz...", 34);
assert(test_table);
- int ret = knot_tcp_recv(rls, msgs, CONNS, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ int ret = KNOT_EOK;
+ for (int i = 0; i < CONNS && ret == KNOT_EOK; i++) {
+ ret = knot_tcp_recv(&rls[i], &msgs[i], test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ }
is_int(KNOT_EOK, ret, "fragments: relay OK");
assert(test_sock);
ret = knot_tcp_send(test_sock, rls, CONNS, CONNS);
@@ -360,7 +377,7 @@ void test_close(void)
knot_xdp_msg_t wrong = msg;
wrong.seqno += INT32_MAX;
wrong.ackno += INT32_MAX;
- int ret = knot_tcp_recv(&rl, &wrong, 1, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ int ret = knot_tcp_recv(&rl, &wrong, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
is_int(KNOT_EOK, ret, "close: relay 0 OK");
is_int(KNOT_XDP_MSG_RST, rl.auto_answer, "close: reset wrong ackno");
is_int(rl.auto_seqno, wrong.ackno, "close: reset seqno");
@@ -369,7 +386,7 @@ void test_close(void)
check_sent(0, 1, 0, 0);
is_int(sent_seqno, wrong.ackno, "close: reset seqno sent");
- ret = knot_tcp_recv(&rl, &msg, 1, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ ret = knot_tcp_recv(&rl, &msg, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
is_int(KNOT_EOK, ret, "close: relay 1 OK");
ret = knot_tcp_send(test_sock, &rl, 1, 1);
is_int(KNOT_EOK, ret, "close: send OK");
@@ -381,7 +398,7 @@ void test_close(void)
msg.flags &= ~KNOT_XDP_MSG_FIN;
prepare_seqack(&msg, 0, 0);
- ret = knot_tcp_recv(&rl, &msg, 1, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ ret = knot_tcp_recv(&rl, &msg, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
is_int(KNOT_EOK, ret, "close: relay 2 OK");
ret = knot_tcp_send(test_sock, &rl, 1, 1);
is_int(KNOT_EOK, ret, "close: send 2 OK");
@@ -404,7 +421,10 @@ void test_many(void)
}
knot_tcp_relay_t *rls = malloc(CONNS * sizeof(*rls));
- int ret = knot_tcp_recv(rls, msgs, CONNS, test_table, NULL, XDP_TCP_IGNORE_NONE);
+ int ret = KNOT_EOK;
+ for (int i = 0; i < CONNS && ret == KNOT_EOK; i++) {
+ ret = knot_tcp_recv(&rls[i], &msgs[i], test_table, NULL, XDP_TCP_IGNORE_NONE);
+ }
is_int(KNOT_EOK, ret, "many: relay OK");
ret = knot_tcp_send(test_sock, rls, CONNS, CONNS);
is_int(KNOT_EOK, ret, "many: relay send OK");
@@ -421,7 +441,7 @@ void test_many(void)
fix_seqack(survive);
prepare_data(survive, "\x00\x00", 2);
assert(test_table);
- ret = knot_tcp_recv(&surv_rl, survive, 1, test_table, NULL, XDP_TCP_IGNORE_NONE);
+ ret = knot_tcp_recv(&surv_rl, survive, test_table, NULL, XDP_TCP_IGNORE_NONE);
is_int(KNOT_EOK, ret, "many/survivor: OK");
clean_sent();
@@ -465,7 +485,10 @@ void test_ibufs_size(void)
for (int i = 0; i < CONNS; i++) {
prepare_msg(&msgs[i], KNOT_XDP_MSG_SYN, i + 2000, 1);
}
- int ret = knot_tcp_recv(rls, msgs, CONNS, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ int ret = KNOT_EOK;
+ for (int i = 0; i < CONNS && ret == KNOT_EOK; i++) {
+ ret = knot_tcp_recv(&rls[i], &msgs[i], test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ }
is_int(KNOT_EOK, ret, "ibufs: open OK");
ret = knot_tcp_send(test_sock, rls, CONNS, CONNS);
is_int(KNOT_EOK, ret, "ibufs: first send OK");
@@ -474,14 +497,16 @@ void test_ibufs_size(void)
msgs[i].flags = KNOT_XDP_MSG_TCP | KNOT_XDP_MSG_ACK;
}
fix_seqacks(msgs, CONNS);
- (void)knot_tcp_recv(rls, msgs, CONNS, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ for (int i = 0; i < CONNS && ret == KNOT_EOK; i++) {
+ ret = knot_tcp_recv(&rls[i], &msgs[i], test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ }
is_int(0, test_table->inbufs_total, "inbufs: initial total zero");
// first connection will start a fragment buf then finish it
fix_seqack(&msgs[0]);
prepare_data(&msgs[0], "\x00\x0a""lorem", 7);
- ret = knot_tcp_recv(&rls[0], &msgs[0], 1, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ ret = knot_tcp_recv(&rls[0], &msgs[0], test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
is_int(KNOT_EOK, ret, "ibufs: must be OK");
ret = knot_tcp_send(test_sock, &rls[0], 1, 1);
is_int(KNOT_EOK, ret, "ibufs: must send OK");
@@ -495,7 +520,9 @@ void test_ibufs_size(void)
prepare_data(&msgs[1], "\x00\xff""12345", 7);
prepare_data(&msgs[2], "\xff\xff""abcde", 7);
prepare_data(&msgs[3], "\xff\xff""abcde", 7);
- ret = knot_tcp_recv(rls, msgs, CONNS, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ for (int i = 0; i < CONNS && ret == KNOT_EOK; i++) {
+ ret = knot_tcp_recv(&rls[i], &msgs[i], test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ }
is_int(KNOT_EOK, ret, "inbufs: relay OK");
ret = knot_tcp_send(test_sock, rls, CONNS, CONNS);
is_int(KNOT_EOK, ret, "inbufs: send OK");
@@ -532,11 +559,11 @@ void test_obufs(void)
knot_tcp_relay_t rl = { 0 };
prepare_msg(&msg, KNOT_XDP_MSG_SYN, 1, 2);
- (void)knot_tcp_recv(&rl, &msg, 1, test_table, test_syn_table, XDP_TCP_IGNORE_NONE); // SYN
+ (void)knot_tcp_recv(&rl, &msg, test_table, test_syn_table, XDP_TCP_IGNORE_NONE); // SYN
(void)knot_tcp_send(test_sock, &rl, 1, 1); // SYN+ACK
prepare_msg(&msg, KNOT_XDP_MSG_ACK, 1, 2);
prepare_seqack(&msg, 0, 1);
- (void)knot_tcp_recv(&rl, &msg, 1, test_table, test_syn_table, XDP_TCP_IGNORE_NONE); // ACK
+ (void)knot_tcp_recv(&rl, &msg, test_table, test_syn_table, XDP_TCP_IGNORE_NONE); // ACK
size_t TEST_MSS = 1111;
size_t DATA_LEN = 65535; // with 2-byte len prefix, this is > 64k == window_size
@@ -574,7 +601,7 @@ void test_obufs(void)
memset(&rl, 0, sizeof(rl));
prepare_seqack(&msg, 0, TEST_MSS);
- ret = knot_tcp_recv(&rl, &msg, 1, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
+ ret = knot_tcp_recv(&rl, &msg, test_table, test_syn_table, XDP_TCP_IGNORE_NONE);
is_int(KNOT_EOK, ret, "obufs: ACKed data");
assert(rl.conn);
rl.conn->window_size = 65536;
@@ -613,6 +640,7 @@ int main(int argc, char *argv[])
init_mock(&test_sock, mock_send);
test_syn();
+ test_syn_ack_no();
test_establish();
test_syn_ack();
diff --git a/tests/libknot/test_yptrafo.c b/tests/libknot/test_yptrafo.c
index cd26632..d76dbc4 100644
--- a/tests/libknot/test_yptrafo.c
+++ b/tests/libknot/test_yptrafo.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -326,7 +326,10 @@ int main(int argc, char *argv[])
int_test("11s", 11LL * 1, YP_STIME, min, max);
int_test("11m", 11LL * 60, YP_STIME, min, max);
int_test("11h", 11LL * 3600, YP_STIME, min, max);
- int_test("11d", 11LL * 24 * 3600, YP_STIME, min, max);
+ int_test("6d", 6LL * 24 * 3600, YP_STIME, min, max);
+ int_test("4w", 4LL * 7 * 24 * 3600, YP_STIME, min, max);
+ int_test("11M", 11LL * 30 * 24 * 3600, YP_STIME, min, max);
+ int_test("2y", 2LL * 365 * 24 * 3600, YP_STIME, min, max);
int_test("1025B", 1025LL, YP_SSIZE, min, max);
int_test("61s", 61LL, YP_STIME, min, max);
int_bad_test("20000000001", KNOT_ERANGE, YP_SNONE, min, max);
diff --git a/tests/libzscanner/TESTS b/tests/libzscanner/TESTS
index 227cdb4..1ac5755 100644
--- a/tests/libzscanner/TESTS
+++ b/tests/libzscanner/TESTS
@@ -84,3 +84,4 @@
56_ZONEMD
57_SVCB
58_HTTPS
+59_WALLET
diff --git a/tests/libzscanner/data/57_SVCB.in b/tests/libzscanner/data/57_SVCB.in
index 78c07a6..e726aa4 100644
--- a/tests/libzscanner/data/57_SVCB.in
+++ b/tests/libzscanner/data/57_SVCB.in
@@ -20,7 +20,10 @@ $TTL 1
@ SVCB 1 . ech="Zm9vYg=="
@ SVCB 1 . ipv6hint=::1
@ SVCB 1 . ipv6hint="::1"
-@ SVCB 1 . key7
+@ SVCB 1 . dohpath=/q{?dns}
+@ SVCB 1 . dohpath="/dns-query{?dns}"
+@ SVCB 1 . ohttp
+@ SVCB 1 . key707
@ SVCB 1 . key65535
@ SVCB 1 . key65535=a
@ SVCB 1 . key65535="a"
@@ -90,6 +93,10 @@ example.com. SVCB 16 foo.example.org. alpn=f\\\092oo\092,bar,h2
@ SVCB 1 . ipv6hint=
@ SVCB 1 . ipv6hint=::1,,::2
@ SVCB 1 . ipv6hint=::W
+@ SVCB 1 . dohpath
+@ SVCB 1 . dohpath=
+@ SVCB 1 . ohttp=
+@ SVCB 1 . ohttp=x
; RFC KO examples
example.com. SVCB 1 foo.example.com. (
diff --git a/tests/libzscanner/data/57_SVCB.out b/tests/libzscanner/data/57_SVCB.out
index 3b701d2..33e1ffb 100644
--- a/tests/libzscanner/data/57_SVCB.out
+++ b/tests/libzscanner/data/57_SVCB.out
@@ -110,7 +110,25 @@ OWNER=00
CLASS=0001
RRTTL=00000001
RTYPE=0040
-RDATA=00010000070000
+RDATA=000100000700082F717B3F646E737D
+------
+OWNER=00
+CLASS=0001
+RRTTL=00000001
+RTYPE=0040
+RDATA=000100000700102F646E732D71756572797B3F646E737D
+------
+OWNER=00
+CLASS=0001
+RRTTL=00000001
+RTYPE=0040
+RDATA=00010000080000
+------
+OWNER=00
+CLASS=0001
+RRTTL=00000001
+RTYPE=0040
+RDATA=00010002C30000
------
OWNER=00
CLASS=0001
@@ -300,6 +318,14 @@ WARNG=ZS_BAD_ADDRESS_CHAR
------
WARNG=ZS_BAD_ADDRESS_CHAR
------
+WARNG=ZS_BAD_SVCB_PARAM
+------
+WARNG=ZS_BAD_SVCB_PARAM
+------
+WARNG=ZS_BAD_SVCB_PARAM
+------
+WARNG=ZS_BAD_SVCB_PARAM
+------
WARNG=ZS_DUPLICATE_SVCB_KEY
------
WARNG=ZS_BAD_SVCB_PARAM
diff --git a/tests/libzscanner/data/59_WALLET.in b/tests/libzscanner/data/59_WALLET.in
new file mode 100644
index 0000000..9767506
--- /dev/null
+++ b/tests/libzscanner/data/59_WALLET.in
@@ -0,0 +1,14 @@
+$ORIGIN .
+$TTL 1
+
+; The WALLET is the same as the TXT, so there are the differences and basics only.
+
+; OK
+@ WALLET "" "test1" "\255" test2 ; Array of text strings
+@ WALLET \# 1 00 ; Hexadecimal rdata
+@ TYPE262 \# 1 00 ; TYPE + Hexadecimal rdata
+@ TYPE262 "" ; TYPE
+@ wallet "" ; Type in lower-case
+
+; KO
+@ WALLET
diff --git a/tests/libzscanner/data/59_WALLET.out b/tests/libzscanner/data/59_WALLET.out
new file mode 100644
index 0000000..11e6425
--- /dev/null
+++ b/tests/libzscanner/data/59_WALLET.out
@@ -0,0 +1,32 @@
+OWNER=00
+CLASS=0001
+RRTTL=00000001
+RTYPE=0106
+RDATA=0005746573743101FF057465737432
+------
+OWNER=00
+CLASS=0001
+RRTTL=00000001
+RTYPE=0106
+RDATA=00
+------
+OWNER=00
+CLASS=0001
+RRTTL=00000001
+RTYPE=0106
+RDATA=00
+------
+OWNER=00
+CLASS=0001
+RRTTL=00000001
+RTYPE=0106
+RDATA=00
+------
+OWNER=00
+CLASS=0001
+RRTTL=00000001
+RTYPE=0106
+RDATA=00
+------
+WARNG=ZS_BAD_RDATA
+------
diff --git a/tests/libzscanner/test_zscanner.in b/tests/libzscanner/test_zscanner.in
index 10d2b5c..8cc9008 100644
--- a/tests/libzscanner/test_zscanner.in
+++ b/tests/libzscanner/test_zscanner.in
@@ -11,7 +11,7 @@ TMPDIR=$(test_tmpdir)
TESTS_DIR="$SOURCE"/data
ZSCANNER_TOOL="$BUILD"/zscanner-tool
-plan 86
+plan 87
mkdir -p "$TMPDIR"/includes/
for a in 1 2 3 4 5 6; do
diff --git a/tests/modules/test_rrl.c b/tests/modules/test_rrl.c
index 6a5210f..448ff9a 100644
--- a/tests/modules/test_rrl.c
+++ b/tests/modules/test_rrl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,164 +15,404 @@
*/
#include <tap/basic.h>
+#include <pthread.h>
+#include <sched.h>
+#include <stdio.h>
+#include <stdatomic.h>
#include "libdnssec/crypto.h"
#include "libdnssec/random.h"
#include "libknot/libknot.h"
+#include "contrib/openbsd/siphash.h"
#include "contrib/sockaddr.h"
+
+#include "time.h"
+int fakeclock_gettime(clockid_t clockid, struct timespec *tp);
+#define clock_gettime fakeclock_gettime
#include "knot/modules/rrl/functions.c"
-#include "stdio.h"
-
-/* Enable time-dependent tests. */
-//#define ENABLE_TIMED_TESTS
-#define RRL_SIZE 196613
-#define RRL_THREADS 8
-#define RRL_INSERTS (RRL_SIZE/(5*RRL_THREADS)) /* lf = 1/5 */
-
-/* Disabled as default as it depends on random input.
- * Table may be consistent even if some collision occur (and they may occur).
- * Note: Disabled due to reported problems when running on VMs due to time
- * flow inconsistencies. Should work alright on a host machine.
- */
-#ifdef ENABLE_TIMED_TESTS
-struct bucketmap {
- unsigned i;
- uint64_t x;
+#undef clock_gettime
+
+#define RRL_THREADS 4
+//#define RRL_SYNC_WITH_REAL_TIME
+
+#define BATCH_QUERIES_LOG 3 // threads acquire queries in batches of 8
+#define HOSTS_LOG 3 // at most 6 attackers + 2 wildcard addresses for normal users
+#define TICK_QUERIES_LOG 13 // at most 1024 queries per host per tick
+
+// Accessing RRL configuration of INSTANT/RATE limits for V4/V6 and specific prefix.
+#define LIMIT(type, Vx, prefix) (RRL_MULT(Vx, prefix) * RRL_ ## type ## _LIMIT)
+
+#define RRL_CONFIG(Vx, name) RRL_ ## Vx ## _ ## name
+#define RRL_MULT(Vx, prefix) get_mult(RRL_CONFIG(Vx, PREFIXES), RRL_CONFIG(Vx, RATE_MULT), RRL_CONFIG(Vx, PREFIXES_CNT), prefix)
+static inline kru_price_t get_mult(uint8_t prefixes[], kru_price_t mults[], size_t cnt, uint8_t wanted_prefix) {
+ for (size_t i = 0; i < cnt; i++)
+ if (prefixes[i] == wanted_prefix)
+ return mults[i];
+ assert(0);
+ return 0;
+}
+
+// Macro correction depending on the table mode.
+int DIFF = 0;
+
+// Instant limits and rate limits per msec.
+#define INST(Vx, prefix) (LIMIT(INSTANT, Vx, prefix) + DIFF)
+#define RATEM(Vx, prefix) (LIMIT(RATE, Vx, prefix) / 1000 + DIFF)
+
+// Expected range of limits for parallel test.
+#define RANGE_INST(Vx, prefix) INST(Vx, prefix) - 1, INST(Vx, prefix) + RRL_THREADS - 1
+#define RANGE_RATEM(Vx, prefix) RATEM(Vx, prefix) - 1 - DIFF, RATEM(Vx, prefix) + RRL_THREADS - DIFF
+#define RANGE_UNLIM(queries) queries, queries
+
+/* Fix seed for randomness in RLL module. Change if improbable collisions arise. (one byte) */
+#define RRL_SEED_GENERIC 1
+#define RRL_SEED_AVX2 1
+
+struct kru_generic {
+ SIPHASH_KEY hash_key;
+ // ...
+};
+struct kru_avx2 {
+ _Alignas(32) char hash_key[48];
+ // ...
+};
+
+/* Override time in RRL module. */
+struct timespec fakeclock_start;
+uint32_t fakeclock_tick = 0;
+
+void fakeclock_init(void)
+{
+ clock_gettime(CLOCK_MONOTONIC_COARSE, &fakeclock_start);
+ fakeclock_tick = 0;
+}
+
+int fakeclock_gettime(clockid_t clockid, struct timespec *tp)
+{
+ uint32_t inc_msec = fakeclock_tick;
+ tp->tv_sec = fakeclock_start.tv_sec + (fakeclock_start.tv_nsec / 1000000 + inc_msec) / 1000;
+ tp->tv_nsec = (fakeclock_start.tv_nsec + (inc_msec % 1000) * 1000000) % 1000000000;
+ return 0;
+}
+
+struct host {
+ uint32_t queries_per_tick;
+ int addr_family;
+ char *addr_format;
+ uint32_t min_passed, max_passed;
+ _Atomic uint32_t passed;
+};
+
+struct stage {
+ uint32_t first_tick, last_tick;
+ struct host hosts[1 << HOSTS_LOG];
};
-/*! \brief Unit runnable. */
struct runnable_data {
- int passed;
rrl_table_t *rrl;
- struct sockaddr_storage *addr;
- rrl_req_t *rq;
- knot_dname_t *zone;
+ int prime;
+ _Atomic uint32_t *queries_acquired, *queries_done;
+ struct stage *stages;
};
-static void* rrl_runnable(void *arg)
+static void *rrl_runnable(void *arg)
{
struct runnable_data *d = (struct runnable_data *)arg;
+ size_t si = 0;
+
+ char addr_str[40];
struct sockaddr_storage addr;
- memcpy(&addr, d->addr, sizeof(struct sockaddr_storage));
- int lock = -1;
- uint32_t now = time(NULL);
- struct bucketmap *m = malloc(RRL_INSERTS * sizeof(struct bucketmap));
- for (unsigned i = 0; i < RRL_INSERTS; ++i) {
- m[i].i = dnssec_random_uint32_t();
- ((struct sockaddr_in *) &addr)->sin_addr.s_addr = m[i].i;
- rrl_item_t *b = rrl_hash(d->rrl, &addr, d->rq, d->zone, now, &lock);
- rrl_unlock(d->rrl, lock);
- m[i].x = b->netblk;
+
+ while (true) {
+ uint32_t qi1 = atomic_fetch_add(d->queries_acquired, 1 << BATCH_QUERIES_LOG);
+
+ /* increment time if needed; sync on incrementing using spinlock */
+ uint32_t tick = qi1 >> TICK_QUERIES_LOG;
+ for (size_t i = 1; tick != fakeclock_tick; i++) {
+ if ((*d->queries_done >> TICK_QUERIES_LOG) >= tick) {
+ fakeclock_tick = tick;
+ }
+ if (i % (1<<14) == 0) sched_yield();
+ __sync_synchronize();
+ }
+
+ /* increment stage if needed */
+ while (tick > d->stages[si].last_tick) {
+ ++si;
+ if (!d->stages[si].first_tick) return NULL;
+ }
+
+#ifdef RRL_SYNC_WITH_REAL_TIME
+ {
+ struct timespec ts_fake, ts_real;
+ do {
+ fakeclock_gettime(CLOCK_MONOTONIC_COARSE, &ts_fake);
+ clock_gettime(CLOCK_MONOTONIC_COARSE, &ts_real);
+ } while (!((ts_real.tv_sec > ts_fake.tv_sec) ||
+ ((ts_real.tv_sec == ts_fake.tv_sec) && (ts_real.tv_nsec >= ts_fake.tv_nsec))));
+ }
+#endif
+
+ if (tick >= d->stages[si].first_tick) {
+ uint32_t qi2 = 0;
+ do {
+ uint32_t qi = qi1 + qi2;
+
+ /* perform query qi */
+ uint32_t hi = qi % (1 << HOSTS_LOG);
+ if (!d->stages[si].hosts[hi].queries_per_tick) continue;
+ uint32_t hqi = (qi % (1 << TICK_QUERIES_LOG)) >> HOSTS_LOG; // host query index within tick
+ if (hqi >= d->stages[si].hosts[hi].queries_per_tick) continue;
+ hqi += (qi >> TICK_QUERIES_LOG) * d->stages[si].hosts[hi].queries_per_tick; // across ticks
+ (void)snprintf(addr_str, sizeof(addr_str), d->stages[si].hosts[hi].addr_format,
+ hqi % 0xff, (hqi >> 8) % 0xff, (hqi >> 16) % 0xff);
+ sockaddr_set(&addr, d->stages[si].hosts[hi].addr_family, addr_str, 0);
+
+ if (rrl_query(d->rrl, &addr, NULL) == KNOT_EOK) {
+ atomic_fetch_add(&d->stages[si].hosts[hi].passed, 1);
+ if (!d->rrl->rw_mode) {
+ rrl_update(d->rrl, &addr, 1);
+ }
+ }
+
+ } while ((qi2 = (qi2 + d->prime) % (1 << BATCH_QUERIES_LOG)));
+ }
+ atomic_fetch_add(d->queries_done, 1 << BATCH_QUERIES_LOG);
}
- for (unsigned i = 0; i < RRL_INSERTS; ++i) {
- ((struct sockaddr_in *) &addr)->sin_addr.s_addr = m[i].i;
- rrl_item_t *b = rrl_hash(d->rrl, &addr, d->rq, d->zone, now, &lock);
- rrl_unlock(d->rrl, lock);
- if (b->netblk != m[i].x) {
- d->passed = 0;
+}
+
+char *impl_name = "";
+rrl_table_t *rrl = NULL;
+
+void count_test(char *desc, int expected_passing, double margin_fract,
+ int addr_family, char *addr_format, uint32_t min_value, uint32_t max_value)
+{
+ uint32_t max_queries = expected_passing > 0 ? 2 * expected_passing : -expected_passing;
+ struct sockaddr_storage addr;
+ char addr_str[40];
+ int cnt = -1;
+
+ for (size_t i = 0; i < max_queries; i++) {
+ (void)snprintf(addr_str, sizeof(addr_str), addr_format,
+ i % (max_value - min_value + 1) + min_value,
+ i / (max_value - min_value + 1) % 256);
+ sockaddr_set(&addr, addr_family, addr_str, 0);
+ if (rrl_query(rrl, &addr, NULL) != KNOT_EOK) {
+ cnt = i;
+ break;
}
+ if (!rrl->rw_mode) {
+ rrl_update(rrl, &addr, 1);
+ }
+ }
+
+ if (expected_passing < 0) expected_passing = -1;
+ if (margin_fract == 0) {
+ is_int(expected_passing, cnt, "rrl(%s): %-48s [%7d ]", impl_name, desc, expected_passing);
+ } else {
+ int max_diff = expected_passing * margin_fract;
+ ok((expected_passing - max_diff <= cnt) && (cnt <= expected_passing + max_diff),
+ "rrl(%s): %-48s [%7d <=%7d <=%7d ]", impl_name, desc,
+ expected_passing - max_diff, cnt, expected_passing + max_diff);
}
- free(m);
- return NULL;
}
-static void rrl_hopscotch(struct runnable_data* rd)
+void test_rrl(bool rw_mode)
{
- rd->passed = 1;
+ size_t RRL_TABLE_SIZE = (1 << 20);
+ uint32_t RRL_INSTANT_LIMIT = (1 << 7);
+ uint32_t RRL_RATE_LIMIT = (1 << 16);
+ if (rw_mode) {
+ RRL_INSTANT_LIMIT = (1 << 8);
+ RRL_RATE_LIMIT = (1 << 17);
+ }
+
+ fakeclock_init();
+
+ /* create rrl table */
+ rrl = rrl_create(RRL_TABLE_SIZE, RRL_INSTANT_LIMIT, RRL_RATE_LIMIT, rw_mode, 0);
+ ok(rrl != NULL, "rrl(%s): create", impl_name);
+ assert(rrl);
+
+ if (KRU.initialize == KRU_GENERIC.initialize) {
+ struct kru_generic *kru = (struct kru_generic *) rrl->kru;
+ memset(&kru->hash_key, RRL_SEED_GENERIC, sizeof(kru->hash_key));
+ } else if (KRU.initialize == KRU_AVX2.initialize) {
+ struct kru_avx2 *kru = (struct kru_avx2 *) rrl->kru;
+ memset(&kru->hash_key, RRL_SEED_AVX2, sizeof(kru->hash_key));
+ } else {
+ assert(0);
+ }
+
+ /* IPv4 multi-prefix tests */
+ static_assert(RRL_V4_PREFIXES_CNT == 4,
+ "There are no more IPv4 limited prefixes (/32, /24, /20, /18 will be tested).");
+
+ count_test("IPv4 instant limit /32", INST(V4, 32), 0,
+ AF_INET, "128.0.0.0", 0, 0);
+
+ count_test("IPv4 instant limit /32 not applied on /31", -1, 0,
+ AF_INET, "128.0.0.1", 0, 0);
+
+ count_test("IPv4 instant limit /24", INST(V4, 24) - INST(V4, 32) - 1, 0,
+ AF_INET, "128.0.0.%d", 2, 255);
+
+ count_test("IPv4 instant limit /24 not applied on /23", -1, 0,
+ AF_INET, "128.0.1.0", 0, 0);
+
+ count_test("IPv4 instant limit /20", INST(V4, 20) - INST(V4, 24) - 1, 0.001,
+ AF_INET, "128.0.%d.%d", 2, 15);
+
+ count_test("IPv4 instant limit /20 not applied on /19", -1, 0,
+ AF_INET, "128.0.16.0", 0, 0);
+
+ count_test("IPv4 instant limit /18", INST(V4, 18) - INST(V4, 20) - 1, 0.01,
+ AF_INET, "128.0.%d.%d", 17, 63);
+
+ count_test("IPv4 instant limit /18 not applied on /17", -1, 0,
+ AF_INET, "128.0.64.0", 0, 0);
+
+ /* IPv6 multi-prefix tests */
+ static_assert(RRL_V6_PREFIXES_CNT == 5,
+ "There are no more IPv6 limited prefixes (/128, /64, /56, /48, /32 will be tested).");
+
+ count_test("IPv6 instant limit /128, independent to IPv4", INST(V6, 128), 0,
+ AF_INET6, "8000::", 0, 0);
+
+ count_test("IPv6 instant limit /128 not applied on /127", -1, 0,
+ AF_INET6, "8000::1", 0, 0);
+
+ count_test("IPv6 instant limit /64", INST(V6, 64) - INST(V6, 128) - 1, 0,
+ AF_INET6, "8000:0:0:0:%02x%02x::", 0x01, 0xff);
+
+ count_test("IPv6 instant limit /64 not applied on /63", -1, 0,
+ AF_INET6, "8000:0:0:1::", 0, 0);
+
+ count_test("IPv6 instant limit /56", INST(V6, 56) - INST(V6, 64) - 1, rw_mode ? 0 : 0.01,
+ AF_INET6, "8000:0:0:00%02x:%02x00::", 0x02, 0xff);
+
+ count_test("IPv6 instant limit /56 not applied on /55", -1, 0,
+ AF_INET6, "8000:0:0:0100::", 0, 0);
+
+ count_test("IPv6 instant limit /48", INST(V6, 48) - INST(V6, 56) - 1, 0.01,
+ AF_INET6, "8000:0:0:%02x%02x::", 0x02, 0xff);
+
+ count_test("IPv6 instant limit /48 not applied on /47", -1, 0,
+ AF_INET6, "8000:0:1::", 0, 0);
+
+ count_test("IPv6 instant limit /32", INST(V6, 32) - INST(V6, 48) - 1, rw_mode ? 0.001 : 0,
+ AF_INET6, "8000:0:%02x%02x::", 0x02, 0xff);
+
+ count_test("IPv6 instant limit /32 not applied on /31", -1, 0,
+ AF_INET6, "8000:1::", 0, 0);
+
+ /* limit after 1 msec */
+ fakeclock_tick++;
+
+ count_test("IPv4 rate limit /32 after 1 msec", RATEM(V4, 32), 0,
+ AF_INET, "128.0.0.0", 0, 0);
+
+ count_test("IPv6 rate limit /128 after 1 msec", RATEM(V6, 128), 0,
+ AF_INET6, "8000::", 0, 0);
+
+ /* parallel tests */
+ struct stage stages[] = {
+ /* first tick, last tick, hosts */
+ {32, 32, {
+ /* queries per tick, family, address, min passed, max passed */
+ {1024, AF_INET, "%d.%d.%d.1", RANGE_UNLIM ( 1024 )},
+ {1024, AF_INET, "3.3.3.3", RANGE_INST ( V4, 32 )},
+ { 512, AF_INET, "4.4.4.4", RANGE_INST ( V4, 32 )},
+ {1024, AF_INET6, "%x%x:%x00::1", RANGE_UNLIM ( 1024 )},
+ {1024, AF_INET6, "3333::3333", RANGE_INST ( V6, 128 )},
+ { 512, AF_INET6, "4444::4444", RANGE_INST ( V6, 128 )}
+ }},
+ {33, 255, {
+ {1024, AF_INET, "%d.%d.%d.1", RANGE_UNLIM ( 1024 )},
+ {1024, AF_INET, "3.3.3.3", RANGE_RATEM ( V4, 32 )},
+ { 512, AF_INET, "4.4.4.4", RANGE_RATEM ( V4, 32 )},
+ {1024, AF_INET6, "%x%x:%x00::1", RANGE_UNLIM ( 1024 )},
+ {1024, AF_INET6, "3333::3333", RANGE_RATEM ( V6, 128 )},
+ { 512, AF_INET6, "4444::4444", RANGE_RATEM ( V6, 128 )},
+ }},
+ {256, 511, {
+ {1024, AF_INET, "3.3.3.3", RANGE_RATEM ( V4, 32 )},
+ {1024, AF_INET6, "3333::3333", RANGE_RATEM ( V6, 128 )}
+ }},
+ {512, 512, {
+ {1024, AF_INET, "%d.%d.%d.1", RANGE_UNLIM ( 1024 )},
+ {1024, AF_INET, "3.3.3.3", RANGE_RATEM ( V4, 32 )},
+ { 512, AF_INET, "4.4.4.4", RANGE_INST ( V4, 32 )},
+ {1024, AF_INET6, "%x%x:%x00::1", RANGE_UNLIM ( 1024 )},
+ {1024, AF_INET6, "3333::3333", RANGE_RATEM ( V6, 128 )},
+ { 512, AF_INET6, "4444::4444", RANGE_INST ( V6, 128 )}
+ }},
+ {0}
+ };
+
pthread_t thr[RRL_THREADS];
+ struct runnable_data rd[RRL_THREADS];
+ _Atomic uint32_t queries_acquired = 0, queries_done = 0;
+ int primes[] = {3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61};
+ assert(sizeof(primes)/sizeof(*primes) >= RRL_THREADS);
+
for (unsigned i = 0; i < RRL_THREADS; ++i) {
- pthread_create(thr + i, NULL, &rrl_runnable, rd);
+ rd[i].rrl = rrl;
+ rd[i].queries_acquired = &queries_acquired;
+ rd[i].queries_done = &queries_done;
+ rd[i].prime = primes[i];
+ rd[i].stages = stages;
+ pthread_create(thr + i, NULL, &rrl_runnable, rd + i);
}
for (unsigned i = 0; i < RRL_THREADS; ++i) {
pthread_join(thr[i], NULL);
}
-}
-#endif
-int main(int argc, char *argv[])
-{
- plan_lazy();
+ unsigned si = 0;
+ do {
+ struct host * const h = stages[si].hosts;
+ uint32_t ticks = stages[si].last_tick - stages[si].first_tick + 1;
+ for (size_t i = 0; h[i].queries_per_tick; i++) {
+ ok( h[i].min_passed * ticks <= h[i].passed && h[i].passed <= h[i].max_passed * ticks,
+ "rrl(%s): parallel stage %d, addr %-25s [%7d <=%12.4f <=%7d ]", impl_name,
+ si, h[i].addr_format, h[i].min_passed, (double)h[i].passed / ticks, h[i].max_passed);
+ }
+ } while (stages[++si].first_tick);
- dnssec_crypto_init();
+ rrl_destroy(rrl);
+}
- /* Prepare query. */
- knot_pkt_t *query = knot_pkt_new(NULL, 512, NULL);
- if (query == NULL) {
- return KNOT_ERROR; /* Fatal */
+void test_rrl_mode(bool test_avx2, bool rw_mode)
+{
+ if (!rw_mode) {
+ DIFF = 1;
}
- knot_dname_t *qname = knot_dname_from_str_alloc("beef.");
- int ret = knot_pkt_put_question(query, qname, KNOT_CLASS_IN, KNOT_RRTYPE_A);
- knot_dname_free(qname, NULL);
- if (ret != KNOT_EOK) {
- knot_pkt_free(query);
- return KNOT_ERROR; /* Fatal */
- }
+ KRU = KRU_GENERIC;
+ impl_name = "KRU_GENERIC";
+ test_rrl(rw_mode);
- /* Prepare response */
- uint8_t rbuf[65535];
- size_t rlen = sizeof(rbuf);
- memcpy(rbuf, query->wire, query->size);
- knot_wire_flags_set_qr(rbuf);
+ if (test_avx2) {
+ KRU = KRU_AVX2;
+ impl_name = "KRU_AVX2";
+ test_rrl(rw_mode);
+ } else {
+ diag("AVX2 NOT available");
+ }
+}
- rrl_req_t rq;
- rq.wire = rbuf;
- rq.len = rlen;
- rq.query = query;
- rq.flags = 0;
+int main(int argc, char *argv[])
+{
+ plan_lazy();
- /* 1. create rrl table */
- const uint32_t rate = 10;
- rrl_table_t *rrl = rrl_create(RRL_SIZE, rate);
- ok(rrl != NULL, "rrl: create");
+ dnssec_crypto_init();
- /* 2. N unlimited requests. */
- knot_dname_t *zone = knot_dname_from_str_alloc("rrl.");
+ assert(KRU_GENERIC.initialize != KRU_AVX2.initialize);
+ bool test_avx2 = (KRU.initialize == KRU_AVX2.initialize);
- struct sockaddr_storage addr;
- struct sockaddr_storage addr6;
- sockaddr_set(&addr, AF_INET, "1.2.3.4", 0);
- sockaddr_set(&addr6, AF_INET6, "1122:3344:5566:7788::aabb", 0);
- ret = 0;
- for (unsigned i = 0; i < rate * RRL_CAPACITY; ++i) {
- if (rrl_query(rrl, &addr, &rq, zone, NULL) != KNOT_EOK ||
- rrl_query(rrl, &addr6, &rq, zone, NULL) != KNOT_EOK) {
- ret = KNOT_ELIMIT;
- break;
- }
- }
- is_int(0, ret, "rrl: unlimited IPv4/v6 requests");
-
- /* 3. Endian-independent hash input buffer. */
- uint8_t buf[RRL_CLSBLK_MAXLEN];
- // CLS_LARGE + remote + dname wire.
- uint8_t expectedv4[] = "\x10\x01\x02\x03\x00\x00\x00\x00\x00\x04""beef";
- rrl_classify(buf, sizeof(buf), &addr, &rq, qname);
- is_int(0, memcmp(buf, expectedv4, sizeof(expectedv4)), "rrl: IPv4 hash input buffer");
- uint8_t expectedv6[] = "\x10\x11\x22\x33\x44\x55\x66\x77\x00\x04""beef";
- rrl_classify(buf, sizeof(buf), &addr6, &rq, qname);
- is_int(0, memcmp(buf, expectedv6, sizeof(expectedv6)), "rrl: IPv6 hash input buffer");
-
-#ifdef ENABLE_TIMED_TESTS
- /* 5. limited request */
- ret = rrl_query(rrl, &addr, &rq, zone, NULL);
- is_int(KNOT_ELIMIT, ret, "rrl: throttled IPv4 request");
-
- /* 6. limited IPv6 request */
- ret = rrl_query(rrl, &addr6, &rq, zone, NULL);
- is_int(KNOT_ELIMIT, ret, "rrl: throttled IPv6 request");
-
- /* 8. hopscotch test */
- struct runnable_data rd = {
- 1, rrl, &addr, &rq, zone
- };
- rrl_hopscotch(&rd);
- ok(rd.passed, "rrl: hashtable is ~ consistent");
-#endif
+ test_rrl_mode(test_avx2, true);
+ test_rrl_mode(test_avx2, false);
- knot_dname_free(zone, NULL);
- knot_pkt_free(query);
- rrl_destroy(rrl);
dnssec_crypto_cleanup();
return 0;
}
diff --git a/tests/tap/files.c b/tests/tap/files.c
index f979d07..ac85277 100644
--- a/tests/tap/files.c
+++ b/tests/tap/files.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -62,5 +62,5 @@ char *test_mkdtemp(void)
bool test_rm_rf(const char *path)
{
- return remove_path(path);
+ return (remove_path(path, false) == KNOT_EOK);
}